• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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