diff options
author | Peter Bergner <bergner@linux.ibm.com> | 2024-02-14 16:34:06 -0600 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2024-02-16 12:42:59 +1100 |
commit | 3281366a8e79a512956382885091565db1036b64 (patch) | |
tree | ef221596b99b983afb6184ff5e034d57759812b7 | |
parent | 4b26558415d628ad2c0d3d4ec65156a0c99eaf02 (diff) | |
download | linux-stable-3281366a8e79a512956382885091565db1036b64.tar.gz linux-stable-3281366a8e79a512956382885091565db1036b64.tar.bz2 linux-stable-3281366a8e79a512956382885091565db1036b64.zip |
uapi/auxvec: Define AT_HWCAP3 and AT_HWCAP4 aux vector, entries
The powerpc toolchain keeps a copy of the HWCAP bit masks in the TCB
for fast access by the __builtin_cpu_supports() built-in function. The
TCB space for the HWCAP entries - which are created in pairs - is an ABI
extension, so waiting to create the space for HWCAP3 and HWCAP4 until
they are needed is problematic. Define AT_HWCAP3 and AT_HWCAP4 in the
generic uapi header so they can be used in glibc to reserve space in the
powerpc TCB for their future use.
I scanned through the Linux and GLIBC source codes looking for unused
AT_* values and 29 and 30 did not seem to be used, so they are what I
went with.
Signed-off-by: Peter Bergner <bergner@linux.ibm.com>
Acked-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Acked-by: Nicholas Piggin <npiggin@gmail.com>
Acked-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/a406b535-dc55-4856-8ae9-5a063644a1af@linux.ibm.com
-rw-r--r-- | include/uapi/linux/auxvec.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/auxvec.h b/include/uapi/linux/auxvec.h index 6991c4b8ab18..cc61cb9b3e9a 100644 --- a/include/uapi/linux/auxvec.h +++ b/include/uapi/linux/auxvec.h @@ -32,6 +32,8 @@ #define AT_HWCAP2 26 /* extension of AT_HWCAP */ #define AT_RSEQ_FEATURE_SIZE 27 /* rseq supported feature size */ #define AT_RSEQ_ALIGN 28 /* rseq allocation alignment */ +#define AT_HWCAP3 29 /* extension of AT_HWCAP */ +#define AT_HWCAP4 30 /* extension of AT_HWCAP */ #define AT_EXECFN 31 /* filename of program */ |