diff options
author | Xiaotian Wu <wuxiaotian@loongson.cn> | 2021-02-09 15:39:13 +0800 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2023-02-18 22:07:30 -0500 |
commit | 6966ec77b195ac289ae168c7c5646d59a307f33f (patch) | |
tree | daa4e9a4febf1e891195a61c608b6fc0155967ff /tools | |
parent | 315f7b9ec6d8992035a2c0f652949ee34843db32 (diff) | |
download | libseccomp-6966ec77b195ac289ae168c7c5646d59a307f33f.tar.gz |
arch: Add 64-bit LoongArch support
Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
Signed-off-by: WANG Xuerui <git@xen0n.name>
Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/scmp_arch_detect.c | 3 | ||||
-rw-r--r-- | tools/scmp_bpf_disasm.c | 2 | ||||
-rw-r--r-- | tools/scmp_bpf_sim.c | 2 | ||||
-rw-r--r-- | tools/util.c | 2 | ||||
-rw-r--r-- | tools/util.h | 11 |
5 files changed, 20 insertions, 0 deletions
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 @@ -38,6 +38,17 @@ #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 */ #ifndef __AUDIT_ARCH_CONVENTION_MIPS64_N32 |