summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2024-02-14 16:34:06 -0600
committerMichael Ellerman <mpe@ellerman.id.au>2024-02-16 12:42:59 +1100
commit3281366a8e79a512956382885091565db1036b64 (patch)
treeef221596b99b983afb6184ff5e034d57759812b7
parent4b26558415d628ad2c0d3d4ec65156a0c99eaf02 (diff)
downloadlinux-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.h2
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 */