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