#ifndef _CONFIG_HAIKU_CONFIG_H
#define _CONFIG_HAIKU_CONFIG_H
#if defined(__i386__)
# define __HAIKU_ARCH x86
# if __GNUC__ == 2
# define __HAIKU_ARCH_ABI "x86_gcc2"
# else
# define __HAIKU_ARCH_ABI "x86"
# endif
# define __HAIKU_ARCH_X86 1
# define __HAIKU_ARCH_PHYSICAL_BITS 64
#elif defined(__x86_64__)
# define __HAIKU_ARCH x86_64
# define __HAIKU_ARCH_ABI "x86_64"
# define __HAIKU_ARCH_X86_64 1
# define __HAIKU_ARCH_BITS 64
#elif defined(__POWERPC__)
# define __HAIKU_ARCH ppc
# define __HAIKU_ARCH_ABI "ppc"
# define __HAIKU_ARCH_PPC 1
# define __HAIKU_ARCH_PHYSICAL_BITS 64
# define __HAIKU_BIG_ENDIAN 1
#elif defined(__M68K__)
# define __HAIKU_ARCH m68k
# define __HAIKU_ARCH_ABI "m68k"
# define __HAIKU_ARCH_M68K 1
# define __HAIKU_BIG_ENDIAN 1
#elif defined(__MIPSEL__)
# define __HAIKU_ARCH mipsel
# define __HAIKU_ARCH_ABI "mipsel"
# define __HAIKU_ARCH_MIPSEL 1
#elif defined(__ARMEL__) || defined(__arm__)
# define __HAIKU_ARCH arm
# define __HAIKU_ARCH_ABI "arm"
# define __HAIKU_ARCH_ARM 1
#elif defined(__ARMEB__)
# define __HAIKU_ARCH armeb
# define __HAIKU_ARCH_ABI "armeb"
# define __HAIKU_ARCH_ARM 1
# define __HAIKU_BIG_ENDIAN 1
#elif defined(__aarch64__) || defined(__arm64__)
# define __HAIKU_ARCH arm64
# define __HAIKU_ARCH_ABI "arm64"
# define __HAIKU_ARCH_ARM64 1
# define __HAIKU_ARCH_BITS 64
#elif (defined(__riscv) && __riscv_xlen == 32)
# define __HAIKU_ARCH riscv32
# define __HAIKU_ARCH_ABI "riscv32"
# define __HAIKU_ARCH_RISCV32 1
# define __HAIKU_ARCH_BITS 32
#elif (defined(__riscv) && __riscv_xlen == 64)
# define __HAIKU_ARCH riscv64
# define __HAIKU_ARCH_ABI "riscv64"
# define __HAIKU_ARCH_RISCV64 1
# define __HAIKU_ARCH_BITS 64
#elif (defined(__riscv) && __riscv_xlen == 128)
# define __HAIKU_ARCH riscv128
# define __HAIKU_ARCH_ABI "riscv128"
# define __HAIKU_ARCH_RISCV128 1
# define __HAIKU_ARCH_BITS 128
#elif defined(__sparc64__)
# define __HAIKU_ARCH sparc64
# define __HAIKU_ARCH_ABI "sparc"
# define __HAIKU_ARCH_SPARC 1
# define __HAIKU_ARCH_PHYSICAL_BITS 64
# define __HAIKU_BIG_ENDIAN 1
# define __HAIKU_ARCH_BITS 64
#else
# error Unsupported architecture!
#endif
#ifndef __HAIKU_ARCH_BITS
# define __HAIKU_ARCH_BITS 32
#endif
#if __HAIKU_ARCH_BITS == 32
# define __HAIKU_ARCH_32_BIT 1
#elif __HAIKU_ARCH_BITS == 64
# define __HAIKU_ARCH_64_BIT 1
#else
# error Unsupported bitness!
#endif
#ifndef __HAIKU_ARCH_PHYSICAL_BITS
# define __HAIKU_ARCH_PHYSICAL_BITS __HAIKU_ARCH_BITS
#endif
#if __HAIKU_ARCH_PHYSICAL_BITS == 32
# define __HAIKU_ARCH_PHYSICAL_32_BIT 1
#elif __HAIKU_ARCH_PHYSICAL_BITS == 64
# define __HAIKU_ARCH_PHYSICAL_64_BIT 1
#else
# error Unsupported physical bitness!
#endif
#ifndef __HAIKU_BIG_ENDIAN
# define __HAIKU_LITTLE_ENDIAN 1
#endif
#define __HAIKU_ARCH_HEADER(header) <arch/__HAIKU_ARCH/header>
#define __HAIKU_SUBDIR_ARCH_HEADER(subdir, header) \
<subdir/arch/__HAIKU_ARCH/header>
#if defined(__HAIKU_ARCH_X86) && __GNUC__ == 2
# define __HAIKU_BEOS_COMPATIBLE 1
#endif
#if defined(__HAIKU_ARCH_X86) && !defined(_KERNEL_MODE)
# define __HAIKU_BEOS_COMPATIBLE_TYPES 1
#endif
#endif