Home | History | Annotate | Download | only in minijail
      1 /* arch.h
      2  * Copyright 2014 The Chromium OS Authors. All rights reserved.
      3  * Use of this source code is governed by a BSD-style license that can be
      4  * found in the LICENSE file.
      5  *
      6  * ARCH_NR #define's.
      7  */
      8 
      9 #ifndef ARCH_H
     10 #define ARCH_H
     11 
     12 #include <linux/audit.h>
     13 
     14 /* clang-format off */
     15 #if defined(__i386__)
     16 #  define ARCH_NR AUDIT_ARCH_I386
     17 #  define ARCH_NAME "x86"
     18 #elif defined(__x86_64__)
     19 #  define ARCH_NR AUDIT_ARCH_X86_64
     20 #  define ARCH_NAME "x86_64"
     21 #elif defined(__arm__)
     22 /*
     23  * <linux/audit.h> includes <linux/elf-em.h>, which does not define EM_ARM.
     24  * <linux/elf.h> only includes <asm/elf.h> if we're in the kernel.
     25  */
     26 #  ifndef EM_ARM
     27 #    define EM_ARM 40
     28 #  endif
     29 #  define ARCH_NR AUDIT_ARCH_ARM
     30 #  define ARCH_NAME "arm"
     31 #elif defined(__aarch64__)
     32 #  define ARCH_NR AUDIT_ARCH_AARCH64
     33 #  define ARCH_NAME "arm64"
     34 #elif defined(__hppa__)
     35 #  define ARCH_NR AUDIT_ARCH_PARISC
     36 #  define ARCH_NAME "parisc"
     37 #elif defined(__ia64__)
     38 #  define ARCH_NR AUDIT_ARCH_IA64
     39 #  define ARCH_NAME "ia64"
     40 #elif defined(__mips__)
     41 #  if defined(__mips64)
     42 #    if defined(__MIPSEB__)
     43 #      define ARCH_NR AUDIT_ARCH_MIPS64
     44 #      define ARCH_NAME "mips64"
     45 #    else
     46 #      define ARCH_NR AUDIT_ARCH_MIPSEL64
     47 #      define ARCH_NAME "mipsel64"
     48 #    endif
     49 #  else
     50 #    if defined(__MIPSEB__)
     51 #      define ARCH_NR AUDIT_ARCH_MIPS
     52 #      define ARCH_NAME "mips"
     53 #    else
     54 #      define ARCH_NR AUDIT_ARCH_MIPSEL
     55 #      define ARCH_NAME "mipsel"
     56 #    endif
     57 #  endif
     58 #elif defined(__powerpc64__)
     59 #  define ARCH_NR AUDIT_ARCH_PPC64
     60 #  define ARCH_NAME "ppc64"
     61 #elif defined(__powerpc__)
     62 #  define ARCH_NR AUDIT_ARCH_PPC
     63 #  define ARCH_NAME "ppc"
     64 #elif defined(__s390x__)
     65 #  define ARCH_NR AUDIT_ARCH_S390X
     66 #  define ARCH_NAME "s390x"
     67 #elif defined(__s390__)
     68 #  define ARCH_NR AUDIT_ARCH_S390
     69 #  define ARCH_NAME "s390"
     70 #elif defined(__sparc__)
     71 #  if defined(__arch64__)
     72 #    define AUDIT_ARCH_SPARC64
     73 #    define ARCH_NAME "sparc64"
     74 #  else
     75 #    define AUDIT_ARCH_SPARC
     76 #    define ARCH_NAME "sparc"
     77 #  endif
     78 #else
     79 #  error "AUDIT_ARCH value unavailable"
     80 #endif
     81 /* clang-format on */
     82 
     83 #endif /* ARCH_H */
     84