/* Generated by ./xlat/gen.sh from ./xlat/audit_arch.in; do not edit. */
#ifdef EM_ARM
#endif
#ifdef EM_FRV
#endif
#ifdef EM_MICROBLAZE
#endif
#ifdef EM_OPENRISC
#endif

#ifdef IN_MPERS

extern const struct xlat audit_arch[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat audit_arch[] = {
/* linux used to have linux/elf-em.h out of sync with linux/audit.h */
#if defined(AUDIT_ARCH_AARCH64) || (defined(HAVE_DECL_AUDIT_ARCH_AARCH64) && HAVE_DECL_AUDIT_ARCH_AARCH64)
  XLAT(AUDIT_ARCH_AARCH64),
#endif
#if defined(AUDIT_ARCH_ALPHA) || (defined(HAVE_DECL_AUDIT_ARCH_ALPHA) && HAVE_DECL_AUDIT_ARCH_ALPHA)
  XLAT(AUDIT_ARCH_ALPHA),
#endif
#ifdef EM_ARM
#if defined(AUDIT_ARCH_ARM) || (defined(HAVE_DECL_AUDIT_ARCH_ARM) && HAVE_DECL_AUDIT_ARCH_ARM)
  XLAT(AUDIT_ARCH_ARM),
#endif
#if defined(AUDIT_ARCH_ARMEB) || (defined(HAVE_DECL_AUDIT_ARCH_ARMEB) && HAVE_DECL_AUDIT_ARCH_ARMEB)
  XLAT(AUDIT_ARCH_ARMEB),
#endif
#endif
#if defined(AUDIT_ARCH_CRIS) || (defined(HAVE_DECL_AUDIT_ARCH_CRIS) && HAVE_DECL_AUDIT_ARCH_CRIS)
  XLAT(AUDIT_ARCH_CRIS),
#endif
#ifdef EM_FRV
#if defined(AUDIT_ARCH_FRV) || (defined(HAVE_DECL_AUDIT_ARCH_FRV) && HAVE_DECL_AUDIT_ARCH_FRV)
  XLAT(AUDIT_ARCH_FRV),
#endif
#endif
#if defined(AUDIT_ARCH_I386) || (defined(HAVE_DECL_AUDIT_ARCH_I386) && HAVE_DECL_AUDIT_ARCH_I386)
  XLAT(AUDIT_ARCH_I386),
#endif
#if defined(AUDIT_ARCH_IA64) || (defined(HAVE_DECL_AUDIT_ARCH_IA64) && HAVE_DECL_AUDIT_ARCH_IA64)
  XLAT(AUDIT_ARCH_IA64),
#endif
#if defined(AUDIT_ARCH_M32R) || (defined(HAVE_DECL_AUDIT_ARCH_M32R) && HAVE_DECL_AUDIT_ARCH_M32R)
  XLAT(AUDIT_ARCH_M32R),
#endif
#if defined(AUDIT_ARCH_M68K) || (defined(HAVE_DECL_AUDIT_ARCH_M68K) && HAVE_DECL_AUDIT_ARCH_M68K)
  XLAT(AUDIT_ARCH_M68K),
#endif
#ifdef EM_MICROBLAZE
#if defined(AUDIT_ARCH_MICROBLAZE) || (defined(HAVE_DECL_AUDIT_ARCH_MICROBLAZE) && HAVE_DECL_AUDIT_ARCH_MICROBLAZE)
  XLAT(AUDIT_ARCH_MICROBLAZE),
#endif
#endif
#if defined(AUDIT_ARCH_MIPS) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS) && HAVE_DECL_AUDIT_ARCH_MIPS)
  XLAT(AUDIT_ARCH_MIPS),
#endif
#if defined(AUDIT_ARCH_MIPS64) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS64) && HAVE_DECL_AUDIT_ARCH_MIPS64)
  XLAT(AUDIT_ARCH_MIPS64),
#endif
#if defined(AUDIT_ARCH_MIPS64N32) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS64N32) && HAVE_DECL_AUDIT_ARCH_MIPS64N32)
  XLAT(AUDIT_ARCH_MIPS64N32),
#endif
#if defined(AUDIT_ARCH_MIPSEL) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL) && HAVE_DECL_AUDIT_ARCH_MIPSEL)
  XLAT(AUDIT_ARCH_MIPSEL),
#endif
#if defined(AUDIT_ARCH_MIPSEL64) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL64) && HAVE_DECL_AUDIT_ARCH_MIPSEL64)
  XLAT(AUDIT_ARCH_MIPSEL64),
#endif
#if defined(AUDIT_ARCH_MIPSEL64N32) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL64N32) && HAVE_DECL_AUDIT_ARCH_MIPSEL64N32)
  XLAT(AUDIT_ARCH_MIPSEL64N32),
#endif
#ifdef EM_OPENRISC
#if defined(AUDIT_ARCH_OPENRISC) || (defined(HAVE_DECL_AUDIT_ARCH_OPENRISC) && HAVE_DECL_AUDIT_ARCH_OPENRISC)
  XLAT(AUDIT_ARCH_OPENRISC),
#endif
#endif
#if defined(AUDIT_ARCH_PARISC) || (defined(HAVE_DECL_AUDIT_ARCH_PARISC) && HAVE_DECL_AUDIT_ARCH_PARISC)
  XLAT(AUDIT_ARCH_PARISC),
#endif
#if defined(AUDIT_ARCH_PARISC64) || (defined(HAVE_DECL_AUDIT_ARCH_PARISC64) && HAVE_DECL_AUDIT_ARCH_PARISC64)
  XLAT(AUDIT_ARCH_PARISC64),
#endif
#if defined(AUDIT_ARCH_PPC) || (defined(HAVE_DECL_AUDIT_ARCH_PPC) && HAVE_DECL_AUDIT_ARCH_PPC)
  XLAT(AUDIT_ARCH_PPC),
#endif
#if defined(AUDIT_ARCH_PPC64) || (defined(HAVE_DECL_AUDIT_ARCH_PPC64) && HAVE_DECL_AUDIT_ARCH_PPC64)
  XLAT(AUDIT_ARCH_PPC64),
#endif
#if defined(AUDIT_ARCH_PPC64LE) || (defined(HAVE_DECL_AUDIT_ARCH_PPC64LE) && HAVE_DECL_AUDIT_ARCH_PPC64LE)
  XLAT(AUDIT_ARCH_PPC64LE),
#endif
#if defined(AUDIT_ARCH_S390) || (defined(HAVE_DECL_AUDIT_ARCH_S390) && HAVE_DECL_AUDIT_ARCH_S390)
  XLAT(AUDIT_ARCH_S390),
#endif
#if defined(AUDIT_ARCH_S390X) || (defined(HAVE_DECL_AUDIT_ARCH_S390X) && HAVE_DECL_AUDIT_ARCH_S390X)
  XLAT(AUDIT_ARCH_S390X),
#endif
#if defined(AUDIT_ARCH_SH) || (defined(HAVE_DECL_AUDIT_ARCH_SH) && HAVE_DECL_AUDIT_ARCH_SH)
  XLAT(AUDIT_ARCH_SH),
#endif
#if defined(AUDIT_ARCH_SH64) || (defined(HAVE_DECL_AUDIT_ARCH_SH64) && HAVE_DECL_AUDIT_ARCH_SH64)
  XLAT(AUDIT_ARCH_SH64),
#endif
#if defined(AUDIT_ARCH_SHEL) || (defined(HAVE_DECL_AUDIT_ARCH_SHEL) && HAVE_DECL_AUDIT_ARCH_SHEL)
  XLAT(AUDIT_ARCH_SHEL),
#endif
#if defined(AUDIT_ARCH_SHEL64) || (defined(HAVE_DECL_AUDIT_ARCH_SHEL64) && HAVE_DECL_AUDIT_ARCH_SHEL64)
  XLAT(AUDIT_ARCH_SHEL64),
#endif
#if defined(AUDIT_ARCH_SPARC) || (defined(HAVE_DECL_AUDIT_ARCH_SPARC) && HAVE_DECL_AUDIT_ARCH_SPARC)
  XLAT(AUDIT_ARCH_SPARC),
#endif
#if defined(AUDIT_ARCH_SPARC64) || (defined(HAVE_DECL_AUDIT_ARCH_SPARC64) && HAVE_DECL_AUDIT_ARCH_SPARC64)
  XLAT(AUDIT_ARCH_SPARC64),
#endif
#if defined(AUDIT_ARCH_X86_64) || (defined(HAVE_DECL_AUDIT_ARCH_X86_64) && HAVE_DECL_AUDIT_ARCH_X86_64)
  XLAT(AUDIT_ARCH_X86_64),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
