summaryrefslogtreecommitdiff
path: root/include/lib
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2023-03-22 13:25:00 +0000
committerAndre Przywara <andre.przywara@arm.com>2023-03-22 13:33:22 +0000
commitd7f3ed3655b85223583d8c2d9e719f364266ef26 (patch)
tree053daae5ab14ac72abd729c591778bbbee693c67 /include/lib
parent1f8be7fc66fb59b197dde3b4ea83314b1728c6b8 (diff)
downloadarm-trusted-firmware-d7f3ed3655b85223583d8c2d9e719f364266ef26.tar.gz
fix(cpufeat): make stub enable functions "static inline"
For builds where we don't have a certain feature enabled, we provide empty stub xxx_enable() functions in a header file. This way we avoid #ifdef's in the code, and can call the enable function unconditionally. When compiling with -O1 or higher, the compiler will even optimise out the whole call, so the symbol will never make it into any object file. When compiling with optimisations turned off, the function stub will survive, and could make it into multiple object files, which would lead to a multiple definitons error. Avoid this by defining those stub functions as "static inline". The "static" will avoid the multiple definitions problems, the "inline" will avoid a potential compiler warning about unused functions. This patterns is used extensively in the Linux kernel. Change-Id: Iad07bb946aab372587c83f2423b4983bf3817990 Reported-by: Chris Kay <chris.kay@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'include/lib')
-rw-r--r--include/lib/extensions/brbe.h2
-rw-r--r--include/lib/extensions/mpam.h2
-rw-r--r--include/lib/extensions/spe.h4
-rw-r--r--include/lib/extensions/trbe.h2
-rw-r--r--include/lib/extensions/trf.h2
5 files changed, 6 insertions, 6 deletions
diff --git a/include/lib/extensions/brbe.h b/include/lib/extensions/brbe.h
index aee208d04..9ee2444f6 100644
--- a/include/lib/extensions/brbe.h
+++ b/include/lib/extensions/brbe.h
@@ -10,7 +10,7 @@
#if ENABLE_BRBE_FOR_NS
void brbe_enable(void);
#else
-void brbe_enable(void)
+static inline void brbe_enable(void)
{
}
#endif /* ENABLE_BRBE_FOR_NS */
diff --git a/include/lib/extensions/mpam.h b/include/lib/extensions/mpam.h
index 120a921d1..4327278e0 100644
--- a/include/lib/extensions/mpam.h
+++ b/include/lib/extensions/mpam.h
@@ -12,7 +12,7 @@
#if ENABLE_MPAM_FOR_LOWER_ELS
void mpam_enable(bool el2_unused);
#else
-void mpam_enable(bool el2_unused)
+static inline void mpam_enable(bool el2_unused)
{
}
#endif
diff --git a/include/lib/extensions/spe.h b/include/lib/extensions/spe.h
index d443f18fb..02fccae92 100644
--- a/include/lib/extensions/spe.h
+++ b/include/lib/extensions/spe.h
@@ -13,10 +13,10 @@
void spe_enable(bool el2_unused);
void spe_disable(void);
#else
-void spe_enable(bool el2_unused)
+static inline void spe_enable(bool el2_unused)
{
}
-void spe_disable(void)
+static inline void spe_disable(void)
{
}
#endif
diff --git a/include/lib/extensions/trbe.h b/include/lib/extensions/trbe.h
index 0eff7c4ee..861a4ad65 100644
--- a/include/lib/extensions/trbe.h
+++ b/include/lib/extensions/trbe.h
@@ -10,7 +10,7 @@
#if ENABLE_TRBE_FOR_NS
void trbe_enable(void);
#else
-void trbe_enable(void)
+static inline void trbe_enable(void)
{
}
#endif /* ENABLE_TRBE_FOR_NS */
diff --git a/include/lib/extensions/trf.h b/include/lib/extensions/trf.h
index a440abd4b..91a96153c 100644
--- a/include/lib/extensions/trf.h
+++ b/include/lib/extensions/trf.h
@@ -10,7 +10,7 @@
#if ENABLE_TRF_FOR_NS
void trf_enable(void);
#else
-void trf_enable(void)
+static inline void trf_enable(void)
{
}
#endif /* ENABLE_TRF_FOR_NS */