/* arch.h * Copyright 2014 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * * MINIJAIL_ARCH_NR #define's. */ #ifndef ARCH_H #define ARCH_H #include #include /* clang-format off */ #if defined(__i386__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_I386 # define MINIJAIL_ARCH_NAME "x86" #elif defined(__x86_64__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_X86_64 # define MINIJAIL_ARCH_NAME "x86_64" #elif defined(__arm__) /* * includes , which does not define EM_ARM. * only includes if we're in the kernel. */ # ifndef EM_ARM # define EM_ARM 40 # endif # define MINIJAIL_ARCH_NR AUDIT_ARCH_ARM # define MINIJAIL_ARCH_NAME "arm" #elif defined(__aarch64__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_AARCH64 # define MINIJAIL_ARCH_NAME "arm64" #elif defined(__hppa__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_PARISC # define MINIJAIL_ARCH_NAME "parisc" #elif defined(__ia64__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_IA64 # define MINIJAIL_ARCH_NAME "ia64" #elif defined(__mips__) # if defined(__mips64) # if defined(__MIPSEB__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_MIPS64 # define MINIJAIL_ARCH_NAME "mips64" # else # define MINIJAIL_ARCH_NR AUDIT_ARCH_MIPSEL64 # define MINIJAIL_ARCH_NAME "mipsel64" # endif # else # if defined(__MIPSEB__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_MIPS # define MINIJAIL_ARCH_NAME "mips" # else # define MINIJAIL_ARCH_NR AUDIT_ARCH_MIPSEL # define MINIJAIL_ARCH_NAME "mipsel" # endif # endif #elif defined(__powerpc64__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_PPC64 # define MINIJAIL_ARCH_NAME "ppc64" #elif defined(__powerpc__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_PPC # define MINIJAIL_ARCH_NAME "ppc" #elif defined(__riscv) # if defined(__riscv_xlen) # if (__riscv_xlen == 64) # define MINIJAIL_ARCH_NR AUDIT_ARCH_RISCV64 # define MINIJAIL_ARCH_NAME "riscv64" # else # error "Only 64bit riscv is supported" # endif # else # error "AUDIT_ARCH value unavailable" # endif #elif defined(__s390x__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_S390X # define MINIJAIL_ARCH_NAME "s390x" #elif defined(__s390__) # define MINIJAIL_ARCH_NR AUDIT_ARCH_S390 # define MINIJAIL_ARCH_NAME "s390" #elif defined(__sparc__) # if defined(__arch64__) # define AUDIT_ARCH_SPARC64 # define MINIJAIL_ARCH_NAME "sparc64" # else # define AUDIT_ARCH_SPARC # define MINIJAIL_ARCH_NAME "sparc" # endif #else # error "AUDIT_ARCH value unavailable" #endif /* clang-format on */ #define MINIJAIL_ARCH_BITS sizeof(uintptr_t) * 8 #endif /* ARCH_H */