include!(concat!(env!("OUT_DIR"), "/const.rs"));
const ARCHS: &[(&str, u32)] = &[
("aarch64", 0xc00000b7),
("alpha", 0xc0009026),
("arcompact", 0x4000005d),
("arcompactbe", 0x0000005d),
("arcv2", 0x400000c3),
("arcv2be", 0x000000c3),
("arm", 0x40000028),
("armeb", 0x00000028),
("c6x", 0x4000008c),
("c6xbe", 0x0000008c),
("cris", 0x4000004c),
("csky", 0x400000fc),
("frv", 0x00005441),
("h8300", 0x0000002e),
("hexagon", 0x000000a4),
("i386", 0x40000003),
("ia64", 0xc0000032),
("loongarch32", 0x40000102),
("loongarch64", 0xc0000102),
("m32r", 0x00000058),
("m68k", 0x00000004),
("microblaze", 0x000000bd),
("mips", 0x00000008),
("mips64", 0x80000008),
("mips64n32", 0xa0000008),
("mipsel", 0x40000008),
("mipsel64", 0xc0000008),
("mipsel64n32", 0xe0000008),
("nds32", 0x400000a7),
("nds32be", 0x000000a7),
("nios2", 0x40000071),
("openrisc", 0x0000005c),
("parisc", 0x0000000f),
("parisc64", 0x8000000f),
("ppc", 0x00000014),
("ppc64", 0x80000015),
("ppc64le", 0xc0000015),
("riscv32", 0x400000f3),
("riscv64", 0xc00000f3),
("s390", 0x00000016),
("s390x", 0x80000016),
("sh", 0x0000002a),
("sh64", 0x8000002a),
("shel", 0x4000002a),
("shel64", 0xc000002a),
("sparc", 0x00000002),
("sparc64", 0x8000002b),
("tilegx", 0xc00000bf),
("tilegx32", 0x400000bf),
("tilepro", 0x400000bc),
("unicore", 0x4000006e),
("x86_64", 0xc000003e),
("xtensa", 0x0000005e),
];
lazy_static! {
pub static ref ARCH_IDS: HashMap<&'static str, u32> = {
let mut hm = HashMap::with_capacity(ARCHS.len());
for (name, value) in ARCHS {
hm.insert(*name, *value);
}
hm
};
pub static ref ARCH_NAMES: HashMap<u32, &'static str> = {
let mut hm = HashMap::with_capacity(ARCHS.len());
for (name, value) in ARCHS {
hm.insert(*value, *name);
}
hm
};
}
pub fn initialize() {
lazy_static::initialize(&SYSCALL_NAMES);
lazy_static::initialize(&ARCH_IDS);
}