/* arch.h
* Copyright 2014 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* ARCH_NR #define's.
*/
#ifndef ARCH_H
#define ARCH_H
#include <linux/audit.h>
#if defined(__i386__)
# define ARCH_NR AUDIT_ARCH_I386
#elif defined(__x86_64__)
# define ARCH_NR AUDIT_ARCH_X86_64
#elif defined(__arm__)
/*
* <linux/audit.h> includes <linux/elf-em.h>, which does not define EM_ARM.
* <linux/elf.h> only includes <asm/elf.h> if we're in the kernel.
*/
# ifndef EM_ARM
# define EM_ARM 40
# endif
# define ARCH_NR AUDIT_ARCH_ARM
#elif defined(__aarch64__)
# define ARCH_NR AUDIT_ARCH_AARCH64
#elif defined(__hppa__)
# define ARCH_NR AUDIT_ARCH_PARISC
#elif defined(__ia64__)
# define ARCH_NR AUDIT_ARCH_IA64
#elif defined(__mips__)
# if defined(__mips64)
# if defined(__MIPSEB__)
# define ARCH_NR AUDIT_ARCH_MIPS64
# else
# define ARCH_NR AUDIT_ARCH_MIPSEL64
# endif
# else
# if defined(__MIPSEB__)
# define ARCH_NR AUDIT_ARCH_MIPS
# else
# define ARCH_NR AUDIT_ARCH_MIPSEL
# endif
# endif
#elif defined(__powerpc64__)
# define ARCH_NR AUDIT_ARCH_PPC64
#elif defined(__powerpc__)
# define ARCH_NR AUDIT_ARCH_PPC
#elif defined(__s390x__)
# define ARCH_NR AUDIT_ARCH_S390X
#elif defined(__s390__)
# define ARCH_NR AUDIT_ARCH_S390
#elif defined(__sparc__)
# if defined(__arch64__)
# define AUDIT_ARCH_SPARC64
# else
# define AUDIT_ARCH_SPARC
# endif
#else
# error "AUDIT_ARCH value unavailable"
#endif
#endif /* ARCH_H */