| From becd0cbc4168534e311f47dda6f67450ad0006b5 Mon Sep 17 00:00:00 2001 |
| From: Waldemar Brodkorb <wbx@openadk.org> |
| Date: Tue, 8 Aug 2023 13:47:27 +0200 |
| Subject: [PATCH] aarch64: add hwcap header file |
| |
| Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> |
| Upstream: https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=becd0cbc4168534e311f47dda6f67450ad0006b5 |
| --- |
| include/sys/auxv.h | 1 + |
| libc/sysdeps/linux/aarch64/bits/hwcap.h | 99 +++++++++++++++++++++++++ |
| libc/sysdeps/linux/common/bits/hwcap.h | 22 ++++++ |
| 3 files changed, 122 insertions(+) |
| create mode 100644 libc/sysdeps/linux/aarch64/bits/hwcap.h |
| create mode 100644 libc/sysdeps/linux/common/bits/hwcap.h |
| |
| diff --git a/include/sys/auxv.h b/include/sys/auxv.h |
| index f35196423..b07026457 100644 |
| --- a/include/sys/auxv.h |
| +++ b/include/sys/auxv.h |
| @@ -20,6 +20,7 @@ |
| |
| #include <features.h> |
| #include <elf.h> |
| +#include <bits/hwcap.h> |
| |
| __BEGIN_DECLS |
| |
| diff --git a/libc/sysdeps/linux/aarch64/bits/hwcap.h b/libc/sysdeps/linux/aarch64/bits/hwcap.h |
| new file mode 100644 |
| index 000000000..20061f5d1 |
| --- /dev/null |
| +++ b/libc/sysdeps/linux/aarch64/bits/hwcap.h |
| @@ -0,0 +1,99 @@ |
| +/* Defines for bits in AT_HWCAP. AArch64 Linux version. |
| + Copyright (C) 2016-2023 Free Software Foundation, Inc. |
| + |
| + The GNU C Library is free software; you can redistribute it and/or |
| + modify it under the terms of the GNU Lesser General Public |
| + License as published by the Free Software Foundation; either |
| + version 2.1 of the License, or (at your option) any later version. |
| + |
| + The GNU C Library is distributed in the hope that it will be useful, |
| + but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| + Lesser General Public License for more details. |
| + |
| + You should have received a copy of the GNU Lesser General Public |
| + License along with the GNU C Library; if not, see |
| + <https://www.gnu.org/licenses/>. */ |
| + |
| +#if !defined (_SYS_AUXV_H) |
| +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." |
| +#endif |
| + |
| +/* The following must match the kernel's <asm/hwcap.h> and update the |
| + list together with sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c. */ |
| +#define HWCAP_FP (1 << 0) |
| +#define HWCAP_ASIMD (1 << 1) |
| +#define HWCAP_EVTSTRM (1 << 2) |
| +#define HWCAP_AES (1 << 3) |
| +#define HWCAP_PMULL (1 << 4) |
| +#define HWCAP_SHA1 (1 << 5) |
| +#define HWCAP_SHA2 (1 << 6) |
| +#define HWCAP_CRC32 (1 << 7) |
| +#define HWCAP_ATOMICS (1 << 8) |
| +#define HWCAP_FPHP (1 << 9) |
| +#define HWCAP_ASIMDHP (1 << 10) |
| +#define HWCAP_CPUID (1 << 11) |
| +#define HWCAP_ASIMDRDM (1 << 12) |
| +#define HWCAP_JSCVT (1 << 13) |
| +#define HWCAP_FCMA (1 << 14) |
| +#define HWCAP_LRCPC (1 << 15) |
| +#define HWCAP_DCPOP (1 << 16) |
| +#define HWCAP_SHA3 (1 << 17) |
| +#define HWCAP_SM3 (1 << 18) |
| +#define HWCAP_SM4 (1 << 19) |
| +#define HWCAP_ASIMDDP (1 << 20) |
| +#define HWCAP_SHA512 (1 << 21) |
| +#define HWCAP_SVE (1 << 22) |
| +#define HWCAP_ASIMDFHM (1 << 23) |
| +#define HWCAP_DIT (1 << 24) |
| +#define HWCAP_USCAT (1 << 25) |
| +#define HWCAP_ILRCPC (1 << 26) |
| +#define HWCAP_FLAGM (1 << 27) |
| +#define HWCAP_SSBS (1 << 28) |
| +#define HWCAP_SB (1 << 29) |
| +#define HWCAP_PACA (1 << 30) |
| +#define HWCAP_PACG (1UL << 31) |
| + |
| +#define HWCAP2_DCPODP (1 << 0) |
| +#define HWCAP2_SVE2 (1 << 1) |
| +#define HWCAP2_SVEAES (1 << 2) |
| +#define HWCAP2_SVEPMULL (1 << 3) |
| +#define HWCAP2_SVEBITPERM (1 << 4) |
| +#define HWCAP2_SVESHA3 (1 << 5) |
| +#define HWCAP2_SVESM4 (1 << 6) |
| +#define HWCAP2_FLAGM2 (1 << 7) |
| +#define HWCAP2_FRINT (1 << 8) |
| +#define HWCAP2_SVEI8MM (1 << 9) |
| +#define HWCAP2_SVEF32MM (1 << 10) |
| +#define HWCAP2_SVEF64MM (1 << 11) |
| +#define HWCAP2_SVEBF16 (1 << 12) |
| +#define HWCAP2_I8MM (1 << 13) |
| +#define HWCAP2_BF16 (1 << 14) |
| +#define HWCAP2_DGH (1 << 15) |
| +#define HWCAP2_RNG (1 << 16) |
| +#define HWCAP2_BTI (1 << 17) |
| +#define HWCAP2_MTE (1 << 18) |
| +#define HWCAP2_ECV (1 << 19) |
| +#define HWCAP2_AFP (1 << 20) |
| +#define HWCAP2_RPRES (1 << 21) |
| +#define HWCAP2_MTE3 (1 << 22) |
| +#define HWCAP2_SME (1 << 23) |
| +#define HWCAP2_SME_I16I64 (1 << 24) |
| +#define HWCAP2_SME_F64F64 (1 << 25) |
| +#define HWCAP2_SME_I8I32 (1 << 26) |
| +#define HWCAP2_SME_F16F32 (1 << 27) |
| +#define HWCAP2_SME_B16F32 (1 << 28) |
| +#define HWCAP2_SME_F32F32 (1 << 29) |
| +#define HWCAP2_SME_FA64 (1 << 30) |
| +#define HWCAP2_WFXT (1UL << 31) |
| +#define HWCAP2_EBF16 (1UL << 32) |
| +#define HWCAP2_SVE_EBF16 (1UL << 33) |
| +#define HWCAP2_CSSC (1UL << 34) |
| +#define HWCAP2_RPRFM (1UL << 35) |
| +#define HWCAP2_SVE2P1 (1UL << 36) |
| +#define HWCAP2_SME2 (1UL << 37) |
| +#define HWCAP2_SME2P1 (1UL << 38) |
| +#define HWCAP2_SME_I16I32 (1UL << 39) |
| +#define HWCAP2_SME_BI32I32 (1UL << 40) |
| +#define HWCAP2_SME_B16B16 (1UL << 41) |
| +#define HWCAP2_SME_F16F16 (1UL << 42) |
| diff --git a/libc/sysdeps/linux/common/bits/hwcap.h b/libc/sysdeps/linux/common/bits/hwcap.h |
| new file mode 100644 |
| index 000000000..e7b899df0 |
| --- /dev/null |
| +++ b/libc/sysdeps/linux/common/bits/hwcap.h |
| @@ -0,0 +1,22 @@ |
| +/* Defines for bits in AT_HWCAP. |
| + Copyright (C) 2012-2023 Free Software Foundation, Inc. |
| + |
| + The GNU C Library is free software; you can redistribute it and/or |
| + modify it under the terms of the GNU Lesser General Public |
| + License as published by the Free Software Foundation; either |
| + version 2.1 of the License, or (at your option) any later version. |
| + |
| + The GNU C Library is distributed in the hope that it will be useful, |
| + but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| + Lesser General Public License for more details. |
| + |
| + You should have received a copy of the GNU Lesser General Public |
| + License along with the GNU C Library; if not, see |
| + <https://www.gnu.org/licenses/>. */ |
| + |
| +#ifndef _SYS_AUXV_H |
| +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." |
| +#endif |
| + |
| +/* No bits defined for this architecture. */ |
| -- |
| 2.30.2 |
| |