From 6966ec77b195ac289ae168c7c5646d59a307f33f Mon Sep 17 00:00:00 2001 From: Xiaotian Wu Date: Tue, 9 Feb 2021 15:39:13 +0800 Subject: arch: Add 64-bit LoongArch support Signed-off-by: Xiaotian Wu Signed-off-by: WANG Xuerui Acked-by: Tom Hromatka 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 | 11 +++++++++++ 5 files changed, 20 insertions(+) (limited to 'tools') diff --git a/tools/scmp_arch_detect.c b/tools/scmp_arch_detect.c index b6bd2bb..c23cf7f 100644 --- a/tools/scmp_arch_detect.c +++ b/tools/scmp_arch_detect.c @@ -81,6 +81,9 @@ int main(int argc, char *argv[]) case SCMP_ARCH_AARCH64: printf("aarch64\n"); break; + case SCMP_ARCH_LOONGARCH64: + printf("loongarch64\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 b682de7..4572659 100644 --- a/tools/scmp_bpf_disasm.c +++ b/tools/scmp_bpf_disasm.c @@ -484,6 +484,8 @@ int main(int argc, char *argv[]) arch = AUDIT_ARCH_ARM; else if (strcmp(optarg, "aarch64") == 0) arch = AUDIT_ARCH_AARCH64; + else if (strcmp(optarg, "loongarch64") == 0) + arch = AUDIT_ARCH_LOONGARCH64; 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 04edfbc..7d31d79 100644 --- a/tools/scmp_bpf_sim.c +++ b/tools/scmp_bpf_sim.c @@ -259,6 +259,8 @@ int main(int argc, char *argv[]) arch = AUDIT_ARCH_ARM; else if (strcmp(optarg, "aarch64") == 0) arch = AUDIT_ARCH_AARCH64; + else if (strcmp(optarg, "loongarch64") == 0) + arch = AUDIT_ARCH_LOONGARCH64; 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 afea6c9..327fc14 100644 --- a/tools/util.c +++ b/tools/util.c @@ -44,6 +44,8 @@ #define ARCH_NATIVE AUDIT_ARCH_ARM #elif __aarch64__ #define ARCH_NATIVE AUDIT_ARCH_AARCH64 +#elif __loongarch64 +#define ARCH_NATIVE AUDIT_ARCH_LOONGARCH64 #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 6c2ca33..24b9ed6 100644 --- a/tools/util.h +++ b/tools/util.h @@ -37,6 +37,17 @@ #define AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif /* AUDIT_ARCH_AARCH64 */ +/** + * The 64-bit LoongArch architecture tokens + */ +/* 64-bit LoongArch audit support is upstream as of 5.19-rc1 */ +#ifndef AUDIT_ARCH_LOONGARCH64 +#ifndef EM_LOONGARCH +#define EM_LOONGARCH 258 +#endif /* EM_LOONGARCH */ +#define AUDIT_ARCH_LOONGARCH64 (EM_LOONGARCH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif /* AUDIT_ARCH_LOONGARCH64 */ + /** * The MIPS architecture tokens */ -- cgit v1.2.1