summaryrefslogtreecommitdiff
path: root/usr/src/tools/smatch/src/machine.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/tools/smatch/src/machine.h')
-rw-r--r--usr/src/tools/smatch/src/machine.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/usr/src/tools/smatch/src/machine.h b/usr/src/tools/smatch/src/machine.h
new file mode 100644
index 0000000000..b46383ac1d
--- /dev/null
+++ b/usr/src/tools/smatch/src/machine.h
@@ -0,0 +1,83 @@
+#ifndef MACHINE_H
+#define MACHINE_H
+
+#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define ARCH_BIG_ENDIAN 1
+#else
+#define ARCH_BIG_ENDIAN 0
+#endif
+
+
+enum {
+ ARCH_LP32,
+ ARCH_X32,
+ ARCH_LP64,
+ ARCH_LLP64,
+};
+
+#ifdef __LP64__
+#define ARCH_M64_DEFAULT ARCH_LP64
+#elif defined(__x86_64__) || defined(__x86_64)
+#define ARCH_M64_DEFAULT ARCH_X32
+#else
+#define ARCH_M64_DEFAULT ARCH_LP32
+#endif
+
+
+enum machine {
+ MACH_ARM,
+ MACH_ARM64,
+ MACH_I386,
+ MACH_X86_64,
+ MACH_MIPS32,
+ MACH_MIPS64,
+ MACH_PPC32,
+ MACH_PPC64,
+ MACH_RISCV32,
+ MACH_RISCV64,
+ MACH_SPARC32,
+ MACH_SPARC64,
+ MACH_M68K,
+ MACH_S390X,
+ MACH_UNKNOWN
+};
+
+#if defined(__aarch64__)
+#define MACH_NATIVE MACH_ARM64
+#elif defined(__arm__)
+#define MACH_NATIVE MACH_ARM
+#elif defined(__x86_64__) || defined(__x86_64)
+#define MACH_NATIVE MACH_X86_64
+#elif defined(__i386__) || defined(__i386)
+#define MACH_NATIVE MACH_I386
+#elif defined(__mips64__) || (defined(__mips) && __mips == 64)
+#define MACH_NATIVE MACH_MIPS64
+#elif defined(__mips__) || defined(__mips)
+#define MACH_NATIVE MACH_MIPS32
+#elif defined(__powerpc64__) || defined(__ppc64__)
+#define MACH_NATIVE MACH_PPC64
+#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__)
+#define MACH_NATIVE MACH_PPC32
+#elif defined(__riscv) && (__riscv_xlen == 64)
+#define MACH_NATIVE MACH_RISCV64
+#elif defined(__riscv) && (__riscv_xlen == 32)
+#define MACH_NATIVE MACH_RISCV32
+#elif defined(__sparc_v9__)
+#define MACH_NATIVE MACH_SPARC64
+#elif defined(__sparc__) || defined(__sparc)
+#define MACH_NATIVE MACH_SPARC32
+#elif defined(__m68k__)
+#define MACH_NATIVE MACH_M68K
+#elif defined(__s390x__) || defined(__zarch__)
+#define MACH_NATIVE MACH_S390X
+#else
+#define MACH_NATIVE MACH_UNKNOWN
+#endif
+
+#if defined(__CHAR_UNSIGNED__)
+#define UNSIGNED_CHAR 1
+#else
+#define UNSIGNED_CHAR 0
+#endif
+
+#endif