aboutsummaryrefslogtreecommitdiffstats
path: root/docs/getting_started/build-options.rst
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2020-03-26 13:18:48 +0900
committerMasahiro Yamada <yamada.masahiro@socionext.com>2020-03-31 11:51:56 +0900
commitfd092be23982c160a3855f1e396b7311b5225bf9 (patch)
treeccb25a69b9729692c67157705c6ff0f430803c6e /docs/getting_started/build-options.rst
parentd5e97a1d2c79121a68ed1c68bd079e80a5f4540a (diff)
downloadplatform_external_arm-trusted-firmware-fd092be23982c160a3855f1e396b7311b5225bf9.tar.gz
platform_external_arm-trusted-firmware-fd092be23982c160a3855f1e396b7311b5225bf9.tar.bz2
platform_external_arm-trusted-firmware-fd092be23982c160a3855f1e396b7311b5225bf9.zip
Add get_current_el_maybe_constant()
There are some cases where we want to run EL-dependent code in the shared code. We could use #ifdef, but it leaves slight possibility where we do not know the exception level at the build-time (e.g. library code). The counter approach is to use get_current_el(), but it is run-time detection, so all EL code is linked, some of which might be unneeded. This commit adds get_current_el_maybe_constant(). This is a static inline function that returns a constant value if we know the exception level at build-time. This is mostly the case. if (get_current_el_maybe_constant() == 1) { /* do something for EL1 */ } else if (get_current_el_maybe_constant() == 3) { /* do something for EL3 */ } If get_current_el_maybe_constant() is build-time constant, the compiler will optimize out the unreachable code. If such code is included from the library code, it is not built-time constant. In this case, it falls back to get_current_el(), so it still works. Change-Id: Idb03c20342a5b5173fe2d6b40e1fac7998675ad3 Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'docs/getting_started/build-options.rst')
0 files changed, 0 insertions, 0 deletions