diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2020-12-21 15:03:03 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@arm.com> | 2020-12-21 15:25:25 +0000 |
commit | bde4949b6b342641681a22cf6092dbc2f9d1d2c7 (patch) | |
tree | b6cb43ddcf9bf866afc095863da036cae1d6003c /sysdeps/unix/sysv/linux/aarch64/bits | |
parent | 0d1bafdcb62187a1535618c71b840672308ba07d (diff) | |
download | glibc-bde4949b6b342641681a22cf6092dbc2f9d1d2c7.tar glibc-bde4949b6b342641681a22cf6092dbc2f9d1d2c7.tar.gz glibc-bde4949b6b342641681a22cf6092dbc2f9d1d2c7.tar.bz2 glibc-bde4949b6b342641681a22cf6092dbc2f9d1d2c7.zip |
aarch64: Add sysv specific enabling code for memory tagging
Add various defines and stubs for enabling MTE on AArch64 sysv-like
systems such as Linux. The HWCAP feature bit is copied over in the
same way as other feature bits. Similarly we add a new wrapper header
for mman.h to define the PROT_MTE flag that can be used with mmap and
related functions.
We add a new field to struct cpu_features that can be used, for
example, to check whether or not certain ifunc'd routines should be
bound to MTE-safe versions.
Finally, if we detect that MTE should be enabled (ie via the glibc
tunable); we enable MTE during startup as required.
Support in the Linux kernel was added in version 5.10.
Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/aarch64/bits')
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/bits/mman.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h index af90d8a626..389852f1d9 100644 --- a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h @@ -73,3 +73,4 @@ #define HWCAP2_DGH (1 << 15) #define HWCAP2_RNG (1 << 16) #define HWCAP2_BTI (1 << 17) +#define HWCAP2_MTE (1 << 18) diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h index ecae046344..c5ec0aa7d0 100644 --- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h @@ -24,6 +24,7 @@ arch/arm64/include/uapi/asm/mman.h. */ #define PROT_BTI 0x10 +#define PROT_MTE 0x20 #include <bits/mman-map-flags-generic.h> |