From ab63dc7fec3d4e5552bf5f363231c3fe1a7436d7 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Thu, 21 Aug 2014 17:30:40 +0200 Subject: arch: Add AArch64 support This patch adds support for AArch64 (64-bit ARM) architecture. Signed-off-by: Marcin Juszkiewicz (Additional fixes/corrections/etc.) Signed-off-by: Paul Moore --- tools/scmp_arch_detect.c | 3 +++ tools/scmp_bpf_disasm.c | 2 ++ tools/scmp_bpf_sim.c | 2 ++ tools/util.c | 2 ++ tools/util.h | 6 ++++++ 5 files changed, 15 insertions(+) (limited to 'tools') diff --git a/tools/scmp_arch_detect.c b/tools/scmp_arch_detect.c index d7f91b3..5a87252 100644 --- a/tools/scmp_arch_detect.c +++ b/tools/scmp_arch_detect.c @@ -78,6 +78,9 @@ int main(int argc, char *argv[]) case SCMP_ARCH_ARM: printf("arm\n"); break; + case SCMP_ARCH_AARCH64: + printf("aarch64\n"); + break; case SCMP_ARCH_MIPS: printf("mips\n"); break; diff --git a/tools/scmp_bpf_disasm.c b/tools/scmp_bpf_disasm.c index 98021dc..349b8a8 100644 --- a/tools/scmp_bpf_disasm.c +++ b/tools/scmp_bpf_disasm.c @@ -320,6 +320,8 @@ int main(int argc, char *argv[]) arch = AUDIT_ARCH_X86_64; else if (strcmp(optarg, "arm") == 0) arch = AUDIT_ARCH_ARM; + else if (strcmp(optarg, "aarch64") == 0) + arch = AUDIT_ARCH_AARCH64; else if (strcmp(optarg, "mips") == 0) arch = AUDIT_ARCH_MIPS; else if (strcmp(optarg, "mipsel") == 0) diff --git a/tools/scmp_bpf_sim.c b/tools/scmp_bpf_sim.c index c9333f3..bb3a2e7 100644 --- a/tools/scmp_bpf_sim.c +++ b/tools/scmp_bpf_sim.c @@ -235,6 +235,8 @@ int main(int argc, char *argv[]) arch = AUDIT_ARCH_X86_64; else if (strcmp(optarg, "arm") == 0) arch = AUDIT_ARCH_ARM; + else if (strcmp(optarg, "aarch64") == 0) + arch = AUDIT_ARCH_AARCH64; else if (strcmp(optarg, "mips") == 0) arch = AUDIT_ARCH_MIPS; else if (strcmp(optarg, "mipsel") == 0) diff --git a/tools/util.c b/tools/util.c index 4927faa..9b58bbb 100644 --- a/tools/util.c +++ b/tools/util.c @@ -42,6 +42,8 @@ #endif /* __ILP32__ */ #elif __arm__ #define ARCH_NATIVE AUDIT_ARCH_ARM +#elif __aarch64__ +#define ARCH_NATIVE AUDIT_ARCH_AARCH64 #elif __mips__ && _MIPS_SIM == _MIPS_SIM_ABI32 #if __MIPSEB__ #define ARCH_NATIVE AUDIT_ARCH_MIPS diff --git a/tools/util.h b/tools/util.h index 6564472..13ef59f 100644 --- a/tools/util.h +++ b/tools/util.h @@ -23,6 +23,7 @@ #define _UTIL_H #include +#include #ifndef __AUDIT_ARCH_CONVENTION_MIPS64_N32 #define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 @@ -40,6 +41,11 @@ __AUDIT_ARCH_CONVENTION_MIPS64_N32) #endif +#ifndef AUDIT_ARCH_AARCH64 +/* AArch64 support for audit was merged in 3.17-rc1 */ +#define AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif + extern uint32_t arch; void exit_usage(const char *program); -- cgit v1.2.1