1#include <asm/hwcap.h>
2#include <asm/mman.h>
3#include <sys/auxv.h>
4#include <sys/mman.h>
5#include <sys/prctl.h>
6#include <unistd.h>
7
8int main(int argc, char const *argv[]) {
9 if (!(getauxval(AT_HWCAP2) & HWCAP2_MTE))
10 return 1;
11
12 int got = prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0);
13 if (got)
14 return 1;
15
16 void *the_page = mmap(addr: 0, len: sysconf(_SC_PAGESIZE), prot: PROT_MTE,
17 MAP_PRIVATE | MAP_ANONYMOUS, fd: -1, offset: 0);
18 if (the_page == MAP_FAILED)
19 return 1;
20
21 return 0; // Set break point at this line.
22}
23

source code of lldb/test/API/linux/aarch64/mte_memory_region/main.c