[MTE] add mte_enabled function am: fcdbee3221
Original change: https://android-review.googlesource.com/c/platform/bionic/+/3531278
Change-Id: I89cbcdee75e3c4ccf89cf5be671a21f9d3f20f14
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libc/platform/bionic/mte.h b/libc/platform/bionic/mte.h
index 610cb45..27cbae1 100644
--- a/libc/platform/bionic/mte.h
+++ b/libc/platform/bionic/mte.h
@@ -50,6 +50,16 @@
return supported;
}
+static inline bool mte_enabled() {
+#ifdef __aarch64__
+ int level = prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0);
+ return level >= 0 && (level & PR_TAGGED_ADDR_ENABLE) &&
+ (level & PR_MTE_TCF_MASK) != PR_MTE_TCF_NONE;
+#else
+ return false;
+#endif
+}
+
inline void* get_tagged_address(const void* ptr) {
#if defined(__aarch64__)
if (mte_supported()) {