18b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes/* arch.h
28b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * Copyright 2014 The Chromium OS Authors. All rights reserved.
38b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * Use of this source code is governed by a BSD-style license that can be
48b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * found in the LICENSE file.
58b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes *
68b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * ARCH_NR #define's.
78b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes */
88b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes
98b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#ifndef ARCH_H
108b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#define ARCH_H
118b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes
128b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#include <linux/audit.h>
138b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes
148b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#if defined(__i386__)
158b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_I386
168b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__x86_64__)
178b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_X86_64
188b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__arm__)
198b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes/*
208b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * <linux/audit.h> includes <linux/elf-em.h>, which does not define EM_ARM.
218b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes * <linux/elf.h> only includes <asm/elf.h> if we're in the kernel.
228b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes */
238b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  ifndef EM_ARM
248b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    define EM_ARM 40
258b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  endif
268b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_ARM
27a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#elif defined(__aarch64__)
28a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_AARCH64
298b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__hppa__)
308b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_PARISC
318b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__ia64__)
328b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_IA64
338b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__mips__)
348b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  if defined(__mips64)
358b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    if defined(__MIPSEB__)
368b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#      define ARCH_NR AUDIT_ARCH_MIPS64
378b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    else
388b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#      define ARCH_NR AUDIT_ARCH_MIPSEL64
398b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    endif
408b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  else
418b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    if defined(__MIPSEB__)
428b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#      define ARCH_NR AUDIT_ARCH_MIPS
438b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    else
448b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#      define ARCH_NR AUDIT_ARCH_MIPSEL
458b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    endif
468b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  endif
478b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__powerpc64__)
488b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_PPC64
498b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__powerpc__)
508b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_PPC
518b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__s390x__)
528b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_S390X
538b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__s390__)
548b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  define ARCH_NR AUDIT_ARCH_S390
558b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#elif defined(__sparc__)
568b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  if defined(__arch64__)
578b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    define AUDIT_ARCH_SPARC64
588b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  else
598b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#    define AUDIT_ARCH_SPARC
608b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  endif
618b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#else
628b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#  error "AUDIT_ARCH value unavailable"
638b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#endif
648b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes
658b488a5b1f0b5eab62516b50e638c1484409bb87Jorge Lucangeli Obes#endif /* ARCH_H */
66