From d60cd92a945a9e8a3fb6f7d569d5b29346cfe97a Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Mon, 28 Jun 2021 18:45:30 -0500 Subject: [PATCH] reading header --- Cargo.lock | 11 +- elf/Cargo.toml | 2 +- elf/src/constants.rs | 5982 ++++++++++++++++++++++++++++++++++++++++++ elf/src/elf.rs | 37 + elf/src/header.rs | 81 + elf/src/lib.rs | 65 +- src/link.rs | 1 + src/utils.rs | 4 +- 8 files changed, 6150 insertions(+), 33 deletions(-) create mode 100644 elf/src/constants.rs create mode 100644 elf/src/elf.rs create mode 100644 elf/src/header.rs diff --git a/Cargo.lock b/Cargo.lock index 17eceec..9531ce6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,6 +40,15 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "byteordered" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32687ee8ab498526e3ef07dfbede151650ce202dc83c53494645a24677d89b37" +dependencies = [ + "byteorder", +] + [[package]] name = "clap" version = "2.33.3" @@ -60,7 +69,7 @@ name = "elf" version = "0.1.0" dependencies = [ "anyhow", - "byteorder", + "byteordered", ] [[package]] diff --git a/elf/Cargo.toml b/elf/Cargo.toml index 68dee33..6104f70 100644 --- a/elf/Cargo.toml +++ b/elf/Cargo.toml @@ -5,4 +5,4 @@ edition = "2018" [dependencies] anyhow = "1.0.41" -byteorder = "1.4.3" +byteordered = "0.5.0" diff --git a/elf/src/constants.rs b/elf/src/constants.rs new file mode 100644 index 0000000..c1f16cf --- /dev/null +++ b/elf/src/constants.rs @@ -0,0 +1,5982 @@ +/* automatically generated by rust-bindgen 0.58.1 */ + +pub const _ELF_H: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 33; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; +pub const _BITS_TYPES_H: u32 = 1; +pub const __TIMESIZE: u32 = 64; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_TIME64_H: u32 = 1; +pub const _BITS_WCHAR_H: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const EI_NIDENT: usize = 16; +pub const EI_MAG0: usize = 0; +pub const ELFMAG0: u8 = 127; +pub const EI_MAG1: usize = 1; +pub const ELFMAG1: u8 = 69u8; +pub const EI_MAG2: usize = 2; +pub const ELFMAG2: u8 = 76u8; +pub const EI_MAG3: usize = 3; +pub const ELFMAG3: u8 = 70u8; +pub const ELFMAG: &'static [u8; 5usize] = b"\x7FELF\0"; +pub const SELFMAG: u32 = 4; +pub const EI_CLASS: usize = 4; +pub const ELFCLASSNONE: u8 = 0; +pub const ELFCLASS32: u8 = 1; +pub const ELFCLASS64: u8 = 2; +pub const ELFCLASSNUM: u32 = 3; +pub const EI_DATA: usize = 5; +pub const ELFDATANONE: u32 = 0; +pub const ELFDATA2LSB: u8 = 1; +pub const ELFDATA2MSB: u8 = 2; +pub const ELFDATANUM: u32 = 3; +pub const EI_VERSION: u32 = 6; +pub const EI_OSABI: u32 = 7; +pub const ELFOSABI_NONE: u32 = 0; +pub const ELFOSABI_SYSV: u32 = 0; +pub const ELFOSABI_HPUX: u32 = 1; +pub const ELFOSABI_NETBSD: u32 = 2; +pub const ELFOSABI_GNU: u32 = 3; +pub const ELFOSABI_LINUX: u32 = 3; +pub const ELFOSABI_SOLARIS: u32 = 6; +pub const ELFOSABI_AIX: u32 = 7; +pub const ELFOSABI_IRIX: u32 = 8; +pub const ELFOSABI_FREEBSD: u32 = 9; +pub const ELFOSABI_TRU64: u32 = 10; +pub const ELFOSABI_MODESTO: u32 = 11; +pub const ELFOSABI_OPENBSD: u32 = 12; +pub const ELFOSABI_ARM_AEABI: u32 = 64; +pub const ELFOSABI_ARM: u32 = 97; +pub const ELFOSABI_STANDALONE: u32 = 255; +pub const EI_ABIVERSION: u32 = 8; +pub const EI_PAD: u32 = 9; +pub const ET_NONE: u32 = 0; +pub const ET_REL: u32 = 1; +pub const ET_EXEC: u32 = 2; +pub const ET_DYN: u32 = 3; +pub const ET_CORE: u32 = 4; +pub const ET_NUM: u32 = 5; +pub const ET_LOOS: u32 = 65024; +pub const ET_HIOS: u32 = 65279; +pub const ET_LOPROC: u32 = 65280; +pub const ET_HIPROC: u32 = 65535; +pub const EM_NONE: u32 = 0; +pub const EM_M32: u32 = 1; +pub const EM_SPARC: u32 = 2; +pub const EM_386: u32 = 3; +pub const EM_68K: u32 = 4; +pub const EM_88K: u32 = 5; +pub const EM_IAMCU: u32 = 6; +pub const EM_860: u32 = 7; +pub const EM_MIPS: u32 = 8; +pub const EM_S370: u32 = 9; +pub const EM_MIPS_RS3_LE: u32 = 10; +pub const EM_PARISC: u32 = 15; +pub const EM_VPP500: u32 = 17; +pub const EM_SPARC32PLUS: u32 = 18; +pub const EM_960: u32 = 19; +pub const EM_PPC: u32 = 20; +pub const EM_PPC64: u32 = 21; +pub const EM_S390: u32 = 22; +pub const EM_SPU: u32 = 23; +pub const EM_V800: u32 = 36; +pub const EM_FR20: u32 = 37; +pub const EM_RH32: u32 = 38; +pub const EM_RCE: u32 = 39; +pub const EM_ARM: u32 = 40; +pub const EM_FAKE_ALPHA: u32 = 41; +pub const EM_SH: u32 = 42; +pub const EM_SPARCV9: u32 = 43; +pub const EM_TRICORE: u32 = 44; +pub const EM_ARC: u32 = 45; +pub const EM_H8_300: u32 = 46; +pub const EM_H8_300H: u32 = 47; +pub const EM_H8S: u32 = 48; +pub const EM_H8_500: u32 = 49; +pub const EM_IA_64: u32 = 50; +pub const EM_MIPS_X: u32 = 51; +pub const EM_COLDFIRE: u32 = 52; +pub const EM_68HC12: u32 = 53; +pub const EM_MMA: u32 = 54; +pub const EM_PCP: u32 = 55; +pub const EM_NCPU: u32 = 56; +pub const EM_NDR1: u32 = 57; +pub const EM_STARCORE: u32 = 58; +pub const EM_ME16: u32 = 59; +pub const EM_ST100: u32 = 60; +pub const EM_TINYJ: u32 = 61; +pub const EM_X86_64: u32 = 62; +pub const EM_PDSP: u32 = 63; +pub const EM_PDP10: u32 = 64; +pub const EM_PDP11: u32 = 65; +pub const EM_FX66: u32 = 66; +pub const EM_ST9PLUS: u32 = 67; +pub const EM_ST7: u32 = 68; +pub const EM_68HC16: u32 = 69; +pub const EM_68HC11: u32 = 70; +pub const EM_68HC08: u32 = 71; +pub const EM_68HC05: u32 = 72; +pub const EM_SVX: u32 = 73; +pub const EM_ST19: u32 = 74; +pub const EM_VAX: u32 = 75; +pub const EM_CRIS: u32 = 76; +pub const EM_JAVELIN: u32 = 77; +pub const EM_FIREPATH: u32 = 78; +pub const EM_ZSP: u32 = 79; +pub const EM_MMIX: u32 = 80; +pub const EM_HUANY: u32 = 81; +pub const EM_PRISM: u32 = 82; +pub const EM_AVR: u32 = 83; +pub const EM_FR30: u32 = 84; +pub const EM_D10V: u32 = 85; +pub const EM_D30V: u32 = 86; +pub const EM_V850: u32 = 87; +pub const EM_M32R: u32 = 88; +pub const EM_MN10300: u32 = 89; +pub const EM_MN10200: u32 = 90; +pub const EM_PJ: u32 = 91; +pub const EM_OPENRISC: u32 = 92; +pub const EM_ARC_COMPACT: u32 = 93; +pub const EM_XTENSA: u32 = 94; +pub const EM_VIDEOCORE: u32 = 95; +pub const EM_TMM_GPP: u32 = 96; +pub const EM_NS32K: u32 = 97; +pub const EM_TPC: u32 = 98; +pub const EM_SNP1K: u32 = 99; +pub const EM_ST200: u32 = 100; +pub const EM_IP2K: u32 = 101; +pub const EM_MAX: u32 = 102; +pub const EM_CR: u32 = 103; +pub const EM_F2MC16: u32 = 104; +pub const EM_MSP430: u32 = 105; +pub const EM_BLACKFIN: u32 = 106; +pub const EM_SE_C33: u32 = 107; +pub const EM_SEP: u32 = 108; +pub const EM_ARCA: u32 = 109; +pub const EM_UNICORE: u32 = 110; +pub const EM_EXCESS: u32 = 111; +pub const EM_DXP: u32 = 112; +pub const EM_ALTERA_NIOS2: u32 = 113; +pub const EM_CRX: u32 = 114; +pub const EM_XGATE: u32 = 115; +pub const EM_C166: u32 = 116; +pub const EM_M16C: u32 = 117; +pub const EM_DSPIC30F: u32 = 118; +pub const EM_CE: u32 = 119; +pub const EM_M32C: u32 = 120; +pub const EM_TSK3000: u32 = 131; +pub const EM_RS08: u32 = 132; +pub const EM_SHARC: u32 = 133; +pub const EM_ECOG2: u32 = 134; +pub const EM_SCORE7: u32 = 135; +pub const EM_DSP24: u32 = 136; +pub const EM_VIDEOCORE3: u32 = 137; +pub const EM_LATTICEMICO32: u32 = 138; +pub const EM_SE_C17: u32 = 139; +pub const EM_TI_C6000: u32 = 140; +pub const EM_TI_C2000: u32 = 141; +pub const EM_TI_C5500: u32 = 142; +pub const EM_TI_ARP32: u32 = 143; +pub const EM_TI_PRU: u32 = 144; +pub const EM_MMDSP_PLUS: u32 = 160; +pub const EM_CYPRESS_M8C: u32 = 161; +pub const EM_R32C: u32 = 162; +pub const EM_TRIMEDIA: u32 = 163; +pub const EM_QDSP6: u32 = 164; +pub const EM_8051: u32 = 165; +pub const EM_STXP7X: u32 = 166; +pub const EM_NDS32: u32 = 167; +pub const EM_ECOG1X: u32 = 168; +pub const EM_MAXQ30: u32 = 169; +pub const EM_XIMO16: u32 = 170; +pub const EM_MANIK: u32 = 171; +pub const EM_CRAYNV2: u32 = 172; +pub const EM_RX: u32 = 173; +pub const EM_METAG: u32 = 174; +pub const EM_MCST_ELBRUS: u32 = 175; +pub const EM_ECOG16: u32 = 176; +pub const EM_CR16: u32 = 177; +pub const EM_ETPU: u32 = 178; +pub const EM_SLE9X: u32 = 179; +pub const EM_L10M: u32 = 180; +pub const EM_K10M: u32 = 181; +pub const EM_AARCH64: u32 = 183; +pub const EM_AVR32: u32 = 185; +pub const EM_STM8: u32 = 186; +pub const EM_TILE64: u32 = 187; +pub const EM_TILEPRO: u32 = 188; +pub const EM_MICROBLAZE: u32 = 189; +pub const EM_CUDA: u32 = 190; +pub const EM_TILEGX: u32 = 191; +pub const EM_CLOUDSHIELD: u32 = 192; +pub const EM_COREA_1ST: u32 = 193; +pub const EM_COREA_2ND: u32 = 194; +pub const EM_ARCV2: u32 = 195; +pub const EM_OPEN8: u32 = 196; +pub const EM_RL78: u32 = 197; +pub const EM_VIDEOCORE5: u32 = 198; +pub const EM_78KOR: u32 = 199; +pub const EM_56800EX: u32 = 200; +pub const EM_BA1: u32 = 201; +pub const EM_BA2: u32 = 202; +pub const EM_XCORE: u32 = 203; +pub const EM_MCHP_PIC: u32 = 204; +pub const EM_KM32: u32 = 210; +pub const EM_KMX32: u32 = 211; +pub const EM_EMX16: u32 = 212; +pub const EM_EMX8: u32 = 213; +pub const EM_KVARC: u32 = 214; +pub const EM_CDP: u32 = 215; +pub const EM_COGE: u32 = 216; +pub const EM_COOL: u32 = 217; +pub const EM_NORC: u32 = 218; +pub const EM_CSR_KALIMBA: u32 = 219; +pub const EM_Z80: u32 = 220; +pub const EM_VISIUM: u32 = 221; +pub const EM_FT32: u32 = 222; +pub const EM_MOXIE: u32 = 223; +pub const EM_AMDGPU: u32 = 224; +pub const EM_RISCV: u32 = 243; +pub const EM_BPF: u32 = 247; +pub const EM_CSKY: u32 = 252; +pub const EM_NUM: u32 = 253; +pub const EM_ARC_A5: u32 = 93; +pub const EM_ALPHA: u32 = 36902; +pub const EV_NONE: u32 = 0; +pub const EV_CURRENT: u32 = 1; +pub const EV_NUM: u32 = 2; +pub const SHN_UNDEF: u32 = 0; +pub const SHN_LORESERVE: u32 = 65280; +pub const SHN_LOPROC: u32 = 65280; +pub const SHN_BEFORE: u32 = 65280; +pub const SHN_AFTER: u32 = 65281; +pub const SHN_HIPROC: u32 = 65311; +pub const SHN_LOOS: u32 = 65312; +pub const SHN_HIOS: u32 = 65343; +pub const SHN_ABS: u32 = 65521; +pub const SHN_COMMON: u32 = 65522; +pub const SHN_XINDEX: u32 = 65535; +pub const SHN_HIRESERVE: u32 = 65535; +pub const SHT_NULL: u32 = 0; +pub const SHT_PROGBITS: u32 = 1; +pub const SHT_SYMTAB: u32 = 2; +pub const SHT_STRTAB: u32 = 3; +pub const SHT_RELA: u32 = 4; +pub const SHT_HASH: u32 = 5; +pub const SHT_DYNAMIC: u32 = 6; +pub const SHT_NOTE: u32 = 7; +pub const SHT_NOBITS: u32 = 8; +pub const SHT_REL: u32 = 9; +pub const SHT_SHLIB: u32 = 10; +pub const SHT_DYNSYM: u32 = 11; +pub const SHT_INIT_ARRAY: u32 = 14; +pub const SHT_FINI_ARRAY: u32 = 15; +pub const SHT_PREINIT_ARRAY: u32 = 16; +pub const SHT_GROUP: u32 = 17; +pub const SHT_SYMTAB_SHNDX: u32 = 18; +pub const SHT_NUM: u32 = 19; +pub const SHT_LOOS: u32 = 1610612736; +pub const SHT_GNU_ATTRIBUTES: u32 = 1879048181; +pub const SHT_GNU_HASH: u32 = 1879048182; +pub const SHT_GNU_LIBLIST: u32 = 1879048183; +pub const SHT_CHECKSUM: u32 = 1879048184; +pub const SHT_LOSUNW: u32 = 1879048186; +pub const SHT_SUNW_move: u32 = 1879048186; +pub const SHT_SUNW_COMDAT: u32 = 1879048187; +pub const SHT_SUNW_syminfo: u32 = 1879048188; +pub const SHT_GNU_verdef: u32 = 1879048189; +pub const SHT_GNU_verneed: u32 = 1879048190; +pub const SHT_GNU_versym: u32 = 1879048191; +pub const SHT_HISUNW: u32 = 1879048191; +pub const SHT_HIOS: u32 = 1879048191; +pub const SHT_LOPROC: u32 = 1879048192; +pub const SHT_HIPROC: u32 = 2147483647; +pub const SHT_LOUSER: u32 = 2147483648; +pub const SHT_HIUSER: u32 = 2415919103; +pub const SHF_WRITE: u32 = 1; +pub const SHF_ALLOC: u32 = 2; +pub const SHF_EXECINSTR: u32 = 4; +pub const SHF_MERGE: u32 = 16; +pub const SHF_STRINGS: u32 = 32; +pub const SHF_INFO_LINK: u32 = 64; +pub const SHF_LINK_ORDER: u32 = 128; +pub const SHF_OS_NONCONFORMING: u32 = 256; +pub const SHF_GROUP: u32 = 512; +pub const SHF_TLS: u32 = 1024; +pub const SHF_COMPRESSED: u32 = 2048; +pub const SHF_MASKOS: u32 = 267386880; +pub const SHF_MASKPROC: u32 = 4026531840; +pub const SHF_GNU_RETAIN: u32 = 2097152; +pub const SHF_ORDERED: u32 = 1073741824; +pub const SHF_EXCLUDE: u32 = 2147483648; +pub const ELFCOMPRESS_ZLIB: u32 = 1; +pub const ELFCOMPRESS_LOOS: u32 = 1610612736; +pub const ELFCOMPRESS_HIOS: u32 = 1879048191; +pub const ELFCOMPRESS_LOPROC: u32 = 1879048192; +pub const ELFCOMPRESS_HIPROC: u32 = 2147483647; +pub const GRP_COMDAT: u32 = 1; +pub const SYMINFO_BT_SELF: u32 = 65535; +pub const SYMINFO_BT_PARENT: u32 = 65534; +pub const SYMINFO_BT_LOWRESERVE: u32 = 65280; +pub const SYMINFO_FLG_DIRECT: u32 = 1; +pub const SYMINFO_FLG_PASSTHRU: u32 = 2; +pub const SYMINFO_FLG_COPY: u32 = 4; +pub const SYMINFO_FLG_LAZYLOAD: u32 = 8; +pub const SYMINFO_NONE: u32 = 0; +pub const SYMINFO_CURRENT: u32 = 1; +pub const SYMINFO_NUM: u32 = 2; +pub const STB_LOCAL: u32 = 0; +pub const STB_GLOBAL: u32 = 1; +pub const STB_WEAK: u32 = 2; +pub const STB_NUM: u32 = 3; +pub const STB_LOOS: u32 = 10; +pub const STB_GNU_UNIQUE: u32 = 10; +pub const STB_HIOS: u32 = 12; +pub const STB_LOPROC: u32 = 13; +pub const STB_HIPROC: u32 = 15; +pub const STT_NOTYPE: u32 = 0; +pub const STT_OBJECT: u32 = 1; +pub const STT_FUNC: u32 = 2; +pub const STT_SECTION: u32 = 3; +pub const STT_FILE: u32 = 4; +pub const STT_COMMON: u32 = 5; +pub const STT_TLS: u32 = 6; +pub const STT_NUM: u32 = 7; +pub const STT_LOOS: u32 = 10; +pub const STT_GNU_IFUNC: u32 = 10; +pub const STT_HIOS: u32 = 12; +pub const STT_LOPROC: u32 = 13; +pub const STT_HIPROC: u32 = 15; +pub const STN_UNDEF: u32 = 0; +pub const STV_DEFAULT: u32 = 0; +pub const STV_INTERNAL: u32 = 1; +pub const STV_HIDDEN: u32 = 2; +pub const STV_PROTECTED: u32 = 3; +pub const PN_XNUM: u32 = 65535; +pub const PT_NULL: u32 = 0; +pub const PT_LOAD: u32 = 1; +pub const PT_DYNAMIC: u32 = 2; +pub const PT_INTERP: u32 = 3; +pub const PT_NOTE: u32 = 4; +pub const PT_SHLIB: u32 = 5; +pub const PT_PHDR: u32 = 6; +pub const PT_TLS: u32 = 7; +pub const PT_NUM: u32 = 8; +pub const PT_LOOS: u32 = 1610612736; +pub const PT_GNU_EH_FRAME: u32 = 1685382480; +pub const PT_GNU_STACK: u32 = 1685382481; +pub const PT_GNU_RELRO: u32 = 1685382482; +pub const PT_GNU_PROPERTY: u32 = 1685382483; +pub const PT_LOSUNW: u32 = 1879048186; +pub const PT_SUNWBSS: u32 = 1879048186; +pub const PT_SUNWSTACK: u32 = 1879048187; +pub const PT_HISUNW: u32 = 1879048191; +pub const PT_HIOS: u32 = 1879048191; +pub const PT_LOPROC: u32 = 1879048192; +pub const PT_HIPROC: u32 = 2147483647; +pub const PF_X: u32 = 1; +pub const PF_W: u32 = 2; +pub const PF_R: u32 = 4; +pub const PF_MASKOS: u32 = 267386880; +pub const PF_MASKPROC: u32 = 4026531840; +pub const NT_PRSTATUS: u32 = 1; +pub const NT_PRFPREG: u32 = 2; +pub const NT_FPREGSET: u32 = 2; +pub const NT_PRPSINFO: u32 = 3; +pub const NT_PRXREG: u32 = 4; +pub const NT_TASKSTRUCT: u32 = 4; +pub const NT_PLATFORM: u32 = 5; +pub const NT_AUXV: u32 = 6; +pub const NT_GWINDOWS: u32 = 7; +pub const NT_ASRS: u32 = 8; +pub const NT_PSTATUS: u32 = 10; +pub const NT_PSINFO: u32 = 13; +pub const NT_PRCRED: u32 = 14; +pub const NT_UTSNAME: u32 = 15; +pub const NT_LWPSTATUS: u32 = 16; +pub const NT_LWPSINFO: u32 = 17; +pub const NT_PRFPXREG: u32 = 20; +pub const NT_SIGINFO: u32 = 1397311305; +pub const NT_FILE: u32 = 1179208773; +pub const NT_PRXFPREG: u32 = 1189489535; +pub const NT_PPC_VMX: u32 = 256; +pub const NT_PPC_SPE: u32 = 257; +pub const NT_PPC_VSX: u32 = 258; +pub const NT_PPC_TAR: u32 = 259; +pub const NT_PPC_PPR: u32 = 260; +pub const NT_PPC_DSCR: u32 = 261; +pub const NT_PPC_EBB: u32 = 262; +pub const NT_PPC_PMU: u32 = 263; +pub const NT_PPC_TM_CGPR: u32 = 264; +pub const NT_PPC_TM_CFPR: u32 = 265; +pub const NT_PPC_TM_CVMX: u32 = 266; +pub const NT_PPC_TM_CVSX: u32 = 267; +pub const NT_PPC_TM_SPR: u32 = 268; +pub const NT_PPC_TM_CTAR: u32 = 269; +pub const NT_PPC_TM_CPPR: u32 = 270; +pub const NT_PPC_TM_CDSCR: u32 = 271; +pub const NT_PPC_PKEY: u32 = 272; +pub const NT_386_TLS: u32 = 512; +pub const NT_386_IOPERM: u32 = 513; +pub const NT_X86_XSTATE: u32 = 514; +pub const NT_S390_HIGH_GPRS: u32 = 768; +pub const NT_S390_TIMER: u32 = 769; +pub const NT_S390_TODCMP: u32 = 770; +pub const NT_S390_TODPREG: u32 = 771; +pub const NT_S390_CTRS: u32 = 772; +pub const NT_S390_PREFIX: u32 = 773; +pub const NT_S390_LAST_BREAK: u32 = 774; +pub const NT_S390_SYSTEM_CALL: u32 = 775; +pub const NT_S390_TDB: u32 = 776; +pub const NT_S390_VXRS_LOW: u32 = 777; +pub const NT_S390_VXRS_HIGH: u32 = 778; +pub const NT_S390_GS_CB: u32 = 779; +pub const NT_S390_GS_BC: u32 = 780; +pub const NT_S390_RI_CB: u32 = 781; +pub const NT_ARM_VFP: u32 = 1024; +pub const NT_ARM_TLS: u32 = 1025; +pub const NT_ARM_HW_BREAK: u32 = 1026; +pub const NT_ARM_HW_WATCH: u32 = 1027; +pub const NT_ARM_SYSTEM_CALL: u32 = 1028; +pub const NT_ARM_SVE: u32 = 1029; +pub const NT_ARM_PAC_MASK: u32 = 1030; +pub const NT_ARM_PACA_KEYS: u32 = 1031; +pub const NT_ARM_PACG_KEYS: u32 = 1032; +pub const NT_VMCOREDD: u32 = 1792; +pub const NT_MIPS_DSP: u32 = 2048; +pub const NT_MIPS_FP_MODE: u32 = 2049; +pub const NT_MIPS_MSA: u32 = 2050; +pub const NT_VERSION: u32 = 1; +pub const DT_NULL: u32 = 0; +pub const DT_NEEDED: u32 = 1; +pub const DT_PLTRELSZ: u32 = 2; +pub const DT_PLTGOT: u32 = 3; +pub const DT_HASH: u32 = 4; +pub const DT_STRTAB: u32 = 5; +pub const DT_SYMTAB: u32 = 6; +pub const DT_RELA: u32 = 7; +pub const DT_RELASZ: u32 = 8; +pub const DT_RELAENT: u32 = 9; +pub const DT_STRSZ: u32 = 10; +pub const DT_SYMENT: u32 = 11; +pub const DT_INIT: u32 = 12; +pub const DT_FINI: u32 = 13; +pub const DT_SONAME: u32 = 14; +pub const DT_RPATH: u32 = 15; +pub const DT_SYMBOLIC: u32 = 16; +pub const DT_REL: u32 = 17; +pub const DT_RELSZ: u32 = 18; +pub const DT_RELENT: u32 = 19; +pub const DT_PLTREL: u32 = 20; +pub const DT_DEBUG: u32 = 21; +pub const DT_TEXTREL: u32 = 22; +pub const DT_JMPREL: u32 = 23; +pub const DT_BIND_NOW: u32 = 24; +pub const DT_INIT_ARRAY: u32 = 25; +pub const DT_FINI_ARRAY: u32 = 26; +pub const DT_INIT_ARRAYSZ: u32 = 27; +pub const DT_FINI_ARRAYSZ: u32 = 28; +pub const DT_RUNPATH: u32 = 29; +pub const DT_FLAGS: u32 = 30; +pub const DT_ENCODING: u32 = 32; +pub const DT_PREINIT_ARRAY: u32 = 32; +pub const DT_PREINIT_ARRAYSZ: u32 = 33; +pub const DT_SYMTAB_SHNDX: u32 = 34; +pub const DT_NUM: u32 = 35; +pub const DT_LOOS: u32 = 1610612749; +pub const DT_HIOS: u32 = 1879044096; +pub const DT_LOPROC: u32 = 1879048192; +pub const DT_HIPROC: u32 = 2147483647; +pub const DT_VALRNGLO: u32 = 1879047424; +pub const DT_GNU_PRELINKED: u32 = 1879047669; +pub const DT_GNU_CONFLICTSZ: u32 = 1879047670; +pub const DT_GNU_LIBLISTSZ: u32 = 1879047671; +pub const DT_CHECKSUM: u32 = 1879047672; +pub const DT_PLTPADSZ: u32 = 1879047673; +pub const DT_MOVEENT: u32 = 1879047674; +pub const DT_MOVESZ: u32 = 1879047675; +pub const DT_FEATURE_1: u32 = 1879047676; +pub const DT_POSFLAG_1: u32 = 1879047677; +pub const DT_SYMINSZ: u32 = 1879047678; +pub const DT_SYMINENT: u32 = 1879047679; +pub const DT_VALRNGHI: u32 = 1879047679; +pub const DT_VALNUM: u32 = 12; +pub const DT_ADDRRNGLO: u32 = 1879047680; +pub const DT_GNU_HASH: u32 = 1879047925; +pub const DT_TLSDESC_PLT: u32 = 1879047926; +pub const DT_TLSDESC_GOT: u32 = 1879047927; +pub const DT_GNU_CONFLICT: u32 = 1879047928; +pub const DT_GNU_LIBLIST: u32 = 1879047929; +pub const DT_CONFIG: u32 = 1879047930; +pub const DT_DEPAUDIT: u32 = 1879047931; +pub const DT_AUDIT: u32 = 1879047932; +pub const DT_PLTPAD: u32 = 1879047933; +pub const DT_MOVETAB: u32 = 1879047934; +pub const DT_SYMINFO: u32 = 1879047935; +pub const DT_ADDRRNGHI: u32 = 1879047935; +pub const DT_ADDRNUM: u32 = 11; +pub const DT_VERSYM: u32 = 1879048176; +pub const DT_RELACOUNT: u32 = 1879048185; +pub const DT_RELCOUNT: u32 = 1879048186; +pub const DT_FLAGS_1: u32 = 1879048187; +pub const DT_VERDEF: u32 = 1879048188; +pub const DT_VERDEFNUM: u32 = 1879048189; +pub const DT_VERNEED: u32 = 1879048190; +pub const DT_VERNEEDNUM: u32 = 1879048191; +pub const DT_VERSIONTAGNUM: u32 = 16; +pub const DT_AUXILIARY: u32 = 2147483645; +pub const DT_FILTER: u32 = 2147483647; +pub const DT_EXTRANUM: u32 = 3; +pub const DF_ORIGIN: u32 = 1; +pub const DF_SYMBOLIC: u32 = 2; +pub const DF_TEXTREL: u32 = 4; +pub const DF_BIND_NOW: u32 = 8; +pub const DF_STATIC_TLS: u32 = 16; +pub const DF_1_NOW: u32 = 1; +pub const DF_1_GLOBAL: u32 = 2; +pub const DF_1_GROUP: u32 = 4; +pub const DF_1_NODELETE: u32 = 8; +pub const DF_1_LOADFLTR: u32 = 16; +pub const DF_1_INITFIRST: u32 = 32; +pub const DF_1_NOOPEN: u32 = 64; +pub const DF_1_ORIGIN: u32 = 128; +pub const DF_1_DIRECT: u32 = 256; +pub const DF_1_TRANS: u32 = 512; +pub const DF_1_INTERPOSE: u32 = 1024; +pub const DF_1_NODEFLIB: u32 = 2048; +pub const DF_1_NODUMP: u32 = 4096; +pub const DF_1_CONFALT: u32 = 8192; +pub const DF_1_ENDFILTEE: u32 = 16384; +pub const DF_1_DISPRELDNE: u32 = 32768; +pub const DF_1_DISPRELPND: u32 = 65536; +pub const DF_1_NODIRECT: u32 = 131072; +pub const DF_1_IGNMULDEF: u32 = 262144; +pub const DF_1_NOKSYMS: u32 = 524288; +pub const DF_1_NOHDR: u32 = 1048576; +pub const DF_1_EDITED: u32 = 2097152; +pub const DF_1_NORELOC: u32 = 4194304; +pub const DF_1_SYMINTPOSE: u32 = 8388608; +pub const DF_1_GLOBAUDIT: u32 = 16777216; +pub const DF_1_SINGLETON: u32 = 33554432; +pub const DF_1_STUB: u32 = 67108864; +pub const DF_1_PIE: u32 = 134217728; +pub const DF_1_KMOD: u32 = 268435456; +pub const DF_1_WEAKFILTER: u32 = 536870912; +pub const DF_1_NOCOMMON: u32 = 1073741824; +pub const DTF_1_PARINIT: u32 = 1; +pub const DTF_1_CONFEXP: u32 = 2; +pub const DF_P1_LAZYLOAD: u32 = 1; +pub const DF_P1_GROUPPERM: u32 = 2; +pub const VER_DEF_NONE: u32 = 0; +pub const VER_DEF_CURRENT: u32 = 1; +pub const VER_DEF_NUM: u32 = 2; +pub const VER_FLG_BASE: u32 = 1; +pub const VER_FLG_WEAK: u32 = 2; +pub const VER_NDX_LOCAL: u32 = 0; +pub const VER_NDX_GLOBAL: u32 = 1; +pub const VER_NDX_LORESERVE: u32 = 65280; +pub const VER_NDX_ELIMINATE: u32 = 65281; +pub const VER_NEED_NONE: u32 = 0; +pub const VER_NEED_CURRENT: u32 = 1; +pub const VER_NEED_NUM: u32 = 2; +pub const AT_NULL: u32 = 0; +pub const AT_IGNORE: u32 = 1; +pub const AT_EXECFD: u32 = 2; +pub const AT_PHDR: u32 = 3; +pub const AT_PHENT: u32 = 4; +pub const AT_PHNUM: u32 = 5; +pub const AT_PAGESZ: u32 = 6; +pub const AT_BASE: u32 = 7; +pub const AT_FLAGS: u32 = 8; +pub const AT_ENTRY: u32 = 9; +pub const AT_NOTELF: u32 = 10; +pub const AT_UID: u32 = 11; +pub const AT_EUID: u32 = 12; +pub const AT_GID: u32 = 13; +pub const AT_EGID: u32 = 14; +pub const AT_CLKTCK: u32 = 17; +pub const AT_PLATFORM: u32 = 15; +pub const AT_HWCAP: u32 = 16; +pub const AT_FPUCW: u32 = 18; +pub const AT_DCACHEBSIZE: u32 = 19; +pub const AT_ICACHEBSIZE: u32 = 20; +pub const AT_UCACHEBSIZE: u32 = 21; +pub const AT_IGNOREPPC: u32 = 22; +pub const AT_SECURE: u32 = 23; +pub const AT_BASE_PLATFORM: u32 = 24; +pub const AT_RANDOM: u32 = 25; +pub const AT_HWCAP2: u32 = 26; +pub const AT_EXECFN: u32 = 31; +pub const AT_SYSINFO: u32 = 32; +pub const AT_SYSINFO_EHDR: u32 = 33; +pub const AT_L1I_CACHESHAPE: u32 = 34; +pub const AT_L1D_CACHESHAPE: u32 = 35; +pub const AT_L2_CACHESHAPE: u32 = 36; +pub const AT_L3_CACHESHAPE: u32 = 37; +pub const AT_L1I_CACHESIZE: u32 = 40; +pub const AT_L1I_CACHEGEOMETRY: u32 = 41; +pub const AT_L1D_CACHESIZE: u32 = 42; +pub const AT_L1D_CACHEGEOMETRY: u32 = 43; +pub const AT_L2_CACHESIZE: u32 = 44; +pub const AT_L2_CACHEGEOMETRY: u32 = 45; +pub const AT_L3_CACHESIZE: u32 = 46; +pub const AT_L3_CACHEGEOMETRY: u32 = 47; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const ELF_NOTE_SOLARIS: &'static [u8; 13usize] = b"SUNW Solaris\0"; +pub const ELF_NOTE_GNU: &'static [u8; 4usize] = b"GNU\0"; +pub const ELF_NOTE_PAGESIZE_HINT: u32 = 1; +pub const NT_GNU_ABI_TAG: u32 = 1; +pub const ELF_NOTE_ABI: u32 = 1; +pub const ELF_NOTE_OS_LINUX: u32 = 0; +pub const ELF_NOTE_OS_GNU: u32 = 1; +pub const ELF_NOTE_OS_SOLARIS2: u32 = 2; +pub const ELF_NOTE_OS_FREEBSD: u32 = 3; +pub const NT_GNU_HWCAP: u32 = 2; +pub const NT_GNU_BUILD_ID: u32 = 3; +pub const NT_GNU_GOLD_VERSION: u32 = 4; +pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5; +pub const NOTE_GNU_PROPERTY_SECTION_NAME: &'static [u8; 19usize] = b".note.gnu.property\0"; +pub const GNU_PROPERTY_STACK_SIZE: u32 = 1; +pub const GNU_PROPERTY_NO_COPY_ON_PROTECTED: u32 = 2; +pub const GNU_PROPERTY_LOPROC: u32 = 3221225472; +pub const GNU_PROPERTY_HIPROC: u32 = 3758096383; +pub const GNU_PROPERTY_LOUSER: u32 = 3758096384; +pub const GNU_PROPERTY_HIUSER: u32 = 4294967295; +pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472; +pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1; +pub const GNU_PROPERTY_AARCH64_FEATURE_1_PAC: u32 = 2; +pub const GNU_PROPERTY_X86_ISA_1_USED: u32 = 3221291010; +pub const GNU_PROPERTY_X86_ISA_1_NEEDED: u32 = 3221258242; +pub const GNU_PROPERTY_X86_FEATURE_1_AND: u32 = 3221225474; +pub const GNU_PROPERTY_X86_ISA_1_BASELINE: u32 = 1; +pub const GNU_PROPERTY_X86_ISA_1_V2: u32 = 2; +pub const GNU_PROPERTY_X86_ISA_1_V3: u32 = 4; +pub const GNU_PROPERTY_X86_ISA_1_V4: u32 = 8; +pub const GNU_PROPERTY_X86_FEATURE_1_IBT: u32 = 1; +pub const GNU_PROPERTY_X86_FEATURE_1_SHSTK: u32 = 2; +pub const EF_CPU32: u32 = 8454144; +pub const R_68K_NONE: u32 = 0; +pub const R_68K_32: u32 = 1; +pub const R_68K_16: u32 = 2; +pub const R_68K_8: u32 = 3; +pub const R_68K_PC32: u32 = 4; +pub const R_68K_PC16: u32 = 5; +pub const R_68K_PC8: u32 = 6; +pub const R_68K_GOT32: u32 = 7; +pub const R_68K_GOT16: u32 = 8; +pub const R_68K_GOT8: u32 = 9; +pub const R_68K_GOT32O: u32 = 10; +pub const R_68K_GOT16O: u32 = 11; +pub const R_68K_GOT8O: u32 = 12; +pub const R_68K_PLT32: u32 = 13; +pub const R_68K_PLT16: u32 = 14; +pub const R_68K_PLT8: u32 = 15; +pub const R_68K_PLT32O: u32 = 16; +pub const R_68K_PLT16O: u32 = 17; +pub const R_68K_PLT8O: u32 = 18; +pub const R_68K_COPY: u32 = 19; +pub const R_68K_GLOB_DAT: u32 = 20; +pub const R_68K_JMP_SLOT: u32 = 21; +pub const R_68K_RELATIVE: u32 = 22; +pub const R_68K_TLS_GD32: u32 = 25; +pub const R_68K_TLS_GD16: u32 = 26; +pub const R_68K_TLS_GD8: u32 = 27; +pub const R_68K_TLS_LDM32: u32 = 28; +pub const R_68K_TLS_LDM16: u32 = 29; +pub const R_68K_TLS_LDM8: u32 = 30; +pub const R_68K_TLS_LDO32: u32 = 31; +pub const R_68K_TLS_LDO16: u32 = 32; +pub const R_68K_TLS_LDO8: u32 = 33; +pub const R_68K_TLS_IE32: u32 = 34; +pub const R_68K_TLS_IE16: u32 = 35; +pub const R_68K_TLS_IE8: u32 = 36; +pub const R_68K_TLS_LE32: u32 = 37; +pub const R_68K_TLS_LE16: u32 = 38; +pub const R_68K_TLS_LE8: u32 = 39; +pub const R_68K_TLS_DTPMOD32: u32 = 40; +pub const R_68K_TLS_DTPREL32: u32 = 41; +pub const R_68K_TLS_TPREL32: u32 = 42; +pub const R_68K_NUM: u32 = 43; +pub const R_386_NONE: u32 = 0; +pub const R_386_32: u32 = 1; +pub const R_386_PC32: u32 = 2; +pub const R_386_GOT32: u32 = 3; +pub const R_386_PLT32: u32 = 4; +pub const R_386_COPY: u32 = 5; +pub const R_386_GLOB_DAT: u32 = 6; +pub const R_386_JMP_SLOT: u32 = 7; +pub const R_386_RELATIVE: u32 = 8; +pub const R_386_GOTOFF: u32 = 9; +pub const R_386_GOTPC: u32 = 10; +pub const R_386_32PLT: u32 = 11; +pub const R_386_TLS_TPOFF: u32 = 14; +pub const R_386_TLS_IE: u32 = 15; +pub const R_386_TLS_GOTIE: u32 = 16; +pub const R_386_TLS_LE: u32 = 17; +pub const R_386_TLS_GD: u32 = 18; +pub const R_386_TLS_LDM: u32 = 19; +pub const R_386_16: u32 = 20; +pub const R_386_PC16: u32 = 21; +pub const R_386_8: u32 = 22; +pub const R_386_PC8: u32 = 23; +pub const R_386_TLS_GD_32: u32 = 24; +pub const R_386_TLS_GD_PUSH: u32 = 25; +pub const R_386_TLS_GD_CALL: u32 = 26; +pub const R_386_TLS_GD_POP: u32 = 27; +pub const R_386_TLS_LDM_32: u32 = 28; +pub const R_386_TLS_LDM_PUSH: u32 = 29; +pub const R_386_TLS_LDM_CALL: u32 = 30; +pub const R_386_TLS_LDM_POP: u32 = 31; +pub const R_386_TLS_LDO_32: u32 = 32; +pub const R_386_TLS_IE_32: u32 = 33; +pub const R_386_TLS_LE_32: u32 = 34; +pub const R_386_TLS_DTPMOD32: u32 = 35; +pub const R_386_TLS_DTPOFF32: u32 = 36; +pub const R_386_TLS_TPOFF32: u32 = 37; +pub const R_386_SIZE32: u32 = 38; +pub const R_386_TLS_GOTDESC: u32 = 39; +pub const R_386_TLS_DESC_CALL: u32 = 40; +pub const R_386_TLS_DESC: u32 = 41; +pub const R_386_IRELATIVE: u32 = 42; +pub const R_386_GOT32X: u32 = 43; +pub const R_386_NUM: u32 = 44; +pub const STT_SPARC_REGISTER: u32 = 13; +pub const EF_SPARCV9_MM: u32 = 3; +pub const EF_SPARCV9_TSO: u32 = 0; +pub const EF_SPARCV9_PSO: u32 = 1; +pub const EF_SPARCV9_RMO: u32 = 2; +pub const EF_SPARC_LEDATA: u32 = 8388608; +pub const EF_SPARC_EXT_MASK: u32 = 16776960; +pub const EF_SPARC_32PLUS: u32 = 256; +pub const EF_SPARC_SUN_US1: u32 = 512; +pub const EF_SPARC_HAL_R1: u32 = 1024; +pub const EF_SPARC_SUN_US3: u32 = 2048; +pub const R_SPARC_NONE: u32 = 0; +pub const R_SPARC_8: u32 = 1; +pub const R_SPARC_16: u32 = 2; +pub const R_SPARC_32: u32 = 3; +pub const R_SPARC_DISP8: u32 = 4; +pub const R_SPARC_DISP16: u32 = 5; +pub const R_SPARC_DISP32: u32 = 6; +pub const R_SPARC_WDISP30: u32 = 7; +pub const R_SPARC_WDISP22: u32 = 8; +pub const R_SPARC_HI22: u32 = 9; +pub const R_SPARC_22: u32 = 10; +pub const R_SPARC_13: u32 = 11; +pub const R_SPARC_LO10: u32 = 12; +pub const R_SPARC_GOT10: u32 = 13; +pub const R_SPARC_GOT13: u32 = 14; +pub const R_SPARC_GOT22: u32 = 15; +pub const R_SPARC_PC10: u32 = 16; +pub const R_SPARC_PC22: u32 = 17; +pub const R_SPARC_WPLT30: u32 = 18; +pub const R_SPARC_COPY: u32 = 19; +pub const R_SPARC_GLOB_DAT: u32 = 20; +pub const R_SPARC_JMP_SLOT: u32 = 21; +pub const R_SPARC_RELATIVE: u32 = 22; +pub const R_SPARC_UA32: u32 = 23; +pub const R_SPARC_PLT32: u32 = 24; +pub const R_SPARC_HIPLT22: u32 = 25; +pub const R_SPARC_LOPLT10: u32 = 26; +pub const R_SPARC_PCPLT32: u32 = 27; +pub const R_SPARC_PCPLT22: u32 = 28; +pub const R_SPARC_PCPLT10: u32 = 29; +pub const R_SPARC_10: u32 = 30; +pub const R_SPARC_11: u32 = 31; +pub const R_SPARC_64: u32 = 32; +pub const R_SPARC_OLO10: u32 = 33; +pub const R_SPARC_HH22: u32 = 34; +pub const R_SPARC_HM10: u32 = 35; +pub const R_SPARC_LM22: u32 = 36; +pub const R_SPARC_PC_HH22: u32 = 37; +pub const R_SPARC_PC_HM10: u32 = 38; +pub const R_SPARC_PC_LM22: u32 = 39; +pub const R_SPARC_WDISP16: u32 = 40; +pub const R_SPARC_WDISP19: u32 = 41; +pub const R_SPARC_GLOB_JMP: u32 = 42; +pub const R_SPARC_7: u32 = 43; +pub const R_SPARC_5: u32 = 44; +pub const R_SPARC_6: u32 = 45; +pub const R_SPARC_DISP64: u32 = 46; +pub const R_SPARC_PLT64: u32 = 47; +pub const R_SPARC_HIX22: u32 = 48; +pub const R_SPARC_LOX10: u32 = 49; +pub const R_SPARC_H44: u32 = 50; +pub const R_SPARC_M44: u32 = 51; +pub const R_SPARC_L44: u32 = 52; +pub const R_SPARC_REGISTER: u32 = 53; +pub const R_SPARC_UA64: u32 = 54; +pub const R_SPARC_UA16: u32 = 55; +pub const R_SPARC_TLS_GD_HI22: u32 = 56; +pub const R_SPARC_TLS_GD_LO10: u32 = 57; +pub const R_SPARC_TLS_GD_ADD: u32 = 58; +pub const R_SPARC_TLS_GD_CALL: u32 = 59; +pub const R_SPARC_TLS_LDM_HI22: u32 = 60; +pub const R_SPARC_TLS_LDM_LO10: u32 = 61; +pub const R_SPARC_TLS_LDM_ADD: u32 = 62; +pub const R_SPARC_TLS_LDM_CALL: u32 = 63; +pub const R_SPARC_TLS_LDO_HIX22: u32 = 64; +pub const R_SPARC_TLS_LDO_LOX10: u32 = 65; +pub const R_SPARC_TLS_LDO_ADD: u32 = 66; +pub const R_SPARC_TLS_IE_HI22: u32 = 67; +pub const R_SPARC_TLS_IE_LO10: u32 = 68; +pub const R_SPARC_TLS_IE_LD: u32 = 69; +pub const R_SPARC_TLS_IE_LDX: u32 = 70; +pub const R_SPARC_TLS_IE_ADD: u32 = 71; +pub const R_SPARC_TLS_LE_HIX22: u32 = 72; +pub const R_SPARC_TLS_LE_LOX10: u32 = 73; +pub const R_SPARC_TLS_DTPMOD32: u32 = 74; +pub const R_SPARC_TLS_DTPMOD64: u32 = 75; +pub const R_SPARC_TLS_DTPOFF32: u32 = 76; +pub const R_SPARC_TLS_DTPOFF64: u32 = 77; +pub const R_SPARC_TLS_TPOFF32: u32 = 78; +pub const R_SPARC_TLS_TPOFF64: u32 = 79; +pub const R_SPARC_GOTDATA_HIX22: u32 = 80; +pub const R_SPARC_GOTDATA_LOX10: u32 = 81; +pub const R_SPARC_GOTDATA_OP_HIX22: u32 = 82; +pub const R_SPARC_GOTDATA_OP_LOX10: u32 = 83; +pub const R_SPARC_GOTDATA_OP: u32 = 84; +pub const R_SPARC_H34: u32 = 85; +pub const R_SPARC_SIZE32: u32 = 86; +pub const R_SPARC_SIZE64: u32 = 87; +pub const R_SPARC_WDISP10: u32 = 88; +pub const R_SPARC_JMP_IREL: u32 = 248; +pub const R_SPARC_IRELATIVE: u32 = 249; +pub const R_SPARC_GNU_VTINHERIT: u32 = 250; +pub const R_SPARC_GNU_VTENTRY: u32 = 251; +pub const R_SPARC_REV32: u32 = 252; +pub const R_SPARC_NUM: u32 = 253; +pub const DT_SPARC_REGISTER: u32 = 1879048193; +pub const DT_SPARC_NUM: u32 = 2; +pub const EF_MIPS_NOREORDER: u32 = 1; +pub const EF_MIPS_PIC: u32 = 2; +pub const EF_MIPS_CPIC: u32 = 4; +pub const EF_MIPS_XGOT: u32 = 8; +pub const EF_MIPS_64BIT_WHIRL: u32 = 16; +pub const EF_MIPS_ABI2: u32 = 32; +pub const EF_MIPS_ABI_ON32: u32 = 64; +pub const EF_MIPS_FP64: u32 = 512; +pub const EF_MIPS_NAN2008: u32 = 1024; +pub const EF_MIPS_ARCH: u32 = 4026531840; +pub const EF_MIPS_ARCH_1: u32 = 0; +pub const EF_MIPS_ARCH_2: u32 = 268435456; +pub const EF_MIPS_ARCH_3: u32 = 536870912; +pub const EF_MIPS_ARCH_4: u32 = 805306368; +pub const EF_MIPS_ARCH_5: u32 = 1073741824; +pub const EF_MIPS_ARCH_32: u32 = 1342177280; +pub const EF_MIPS_ARCH_64: u32 = 1610612736; +pub const EF_MIPS_ARCH_32R2: u32 = 1879048192; +pub const EF_MIPS_ARCH_64R2: u32 = 2147483648; +pub const E_MIPS_ARCH_1: u32 = 0; +pub const E_MIPS_ARCH_2: u32 = 268435456; +pub const E_MIPS_ARCH_3: u32 = 536870912; +pub const E_MIPS_ARCH_4: u32 = 805306368; +pub const E_MIPS_ARCH_5: u32 = 1073741824; +pub const E_MIPS_ARCH_32: u32 = 1342177280; +pub const E_MIPS_ARCH_64: u32 = 1610612736; +pub const SHN_MIPS_ACOMMON: u32 = 65280; +pub const SHN_MIPS_TEXT: u32 = 65281; +pub const SHN_MIPS_DATA: u32 = 65282; +pub const SHN_MIPS_SCOMMON: u32 = 65283; +pub const SHN_MIPS_SUNDEFINED: u32 = 65284; +pub const SHT_MIPS_LIBLIST: u32 = 1879048192; +pub const SHT_MIPS_MSYM: u32 = 1879048193; +pub const SHT_MIPS_CONFLICT: u32 = 1879048194; +pub const SHT_MIPS_GPTAB: u32 = 1879048195; +pub const SHT_MIPS_UCODE: u32 = 1879048196; +pub const SHT_MIPS_DEBUG: u32 = 1879048197; +pub const SHT_MIPS_REGINFO: u32 = 1879048198; +pub const SHT_MIPS_PACKAGE: u32 = 1879048199; +pub const SHT_MIPS_PACKSYM: u32 = 1879048200; +pub const SHT_MIPS_RELD: u32 = 1879048201; +pub const SHT_MIPS_IFACE: u32 = 1879048203; +pub const SHT_MIPS_CONTENT: u32 = 1879048204; +pub const SHT_MIPS_OPTIONS: u32 = 1879048205; +pub const SHT_MIPS_SHDR: u32 = 1879048208; +pub const SHT_MIPS_FDESC: u32 = 1879048209; +pub const SHT_MIPS_EXTSYM: u32 = 1879048210; +pub const SHT_MIPS_DENSE: u32 = 1879048211; +pub const SHT_MIPS_PDESC: u32 = 1879048212; +pub const SHT_MIPS_LOCSYM: u32 = 1879048213; +pub const SHT_MIPS_AUXSYM: u32 = 1879048214; +pub const SHT_MIPS_OPTSYM: u32 = 1879048215; +pub const SHT_MIPS_LOCSTR: u32 = 1879048216; +pub const SHT_MIPS_LINE: u32 = 1879048217; +pub const SHT_MIPS_RFDESC: u32 = 1879048218; +pub const SHT_MIPS_DELTASYM: u32 = 1879048219; +pub const SHT_MIPS_DELTAINST: u32 = 1879048220; +pub const SHT_MIPS_DELTACLASS: u32 = 1879048221; +pub const SHT_MIPS_DWARF: u32 = 1879048222; +pub const SHT_MIPS_DELTADECL: u32 = 1879048223; +pub const SHT_MIPS_SYMBOL_LIB: u32 = 1879048224; +pub const SHT_MIPS_EVENTS: u32 = 1879048225; +pub const SHT_MIPS_TRANSLATE: u32 = 1879048226; +pub const SHT_MIPS_PIXIE: u32 = 1879048227; +pub const SHT_MIPS_XLATE: u32 = 1879048228; +pub const SHT_MIPS_XLATE_DEBUG: u32 = 1879048229; +pub const SHT_MIPS_WHIRL: u32 = 1879048230; +pub const SHT_MIPS_EH_REGION: u32 = 1879048231; +pub const SHT_MIPS_XLATE_OLD: u32 = 1879048232; +pub const SHT_MIPS_PDR_EXCEPTION: u32 = 1879048233; +pub const SHT_MIPS_XHASH: u32 = 1879048235; +pub const SHF_MIPS_GPREL: u32 = 268435456; +pub const SHF_MIPS_MERGE: u32 = 536870912; +pub const SHF_MIPS_ADDR: u32 = 1073741824; +pub const SHF_MIPS_STRINGS: u32 = 2147483648; +pub const SHF_MIPS_NOSTRIP: u32 = 134217728; +pub const SHF_MIPS_LOCAL: u32 = 67108864; +pub const SHF_MIPS_NAMES: u32 = 33554432; +pub const SHF_MIPS_NODUPE: u32 = 16777216; +pub const STO_MIPS_DEFAULT: u32 = 0; +pub const STO_MIPS_INTERNAL: u32 = 1; +pub const STO_MIPS_HIDDEN: u32 = 2; +pub const STO_MIPS_PROTECTED: u32 = 3; +pub const STO_MIPS_PLT: u32 = 8; +pub const STO_MIPS_SC_ALIGN_UNUSED: u32 = 255; +pub const STB_MIPS_SPLIT_COMMON: u32 = 13; +pub const ODK_NULL: u32 = 0; +pub const ODK_REGINFO: u32 = 1; +pub const ODK_EXCEPTIONS: u32 = 2; +pub const ODK_PAD: u32 = 3; +pub const ODK_HWPATCH: u32 = 4; +pub const ODK_FILL: u32 = 5; +pub const ODK_TAGS: u32 = 6; +pub const ODK_HWAND: u32 = 7; +pub const ODK_HWOR: u32 = 8; +pub const OEX_FPU_MIN: u32 = 31; +pub const OEX_FPU_MAX: u32 = 7936; +pub const OEX_PAGE0: u32 = 65536; +pub const OEX_SMM: u32 = 131072; +pub const OEX_FPDBUG: u32 = 262144; +pub const OEX_PRECISEFP: u32 = 262144; +pub const OEX_DISMISS: u32 = 524288; +pub const OEX_FPU_INVAL: u32 = 16; +pub const OEX_FPU_DIV0: u32 = 8; +pub const OEX_FPU_OFLO: u32 = 4; +pub const OEX_FPU_UFLO: u32 = 2; +pub const OEX_FPU_INEX: u32 = 1; +pub const OHW_R4KEOP: u32 = 1; +pub const OHW_R8KPFETCH: u32 = 2; +pub const OHW_R5KEOP: u32 = 4; +pub const OHW_R5KCVTL: u32 = 8; +pub const OPAD_PREFIX: u32 = 1; +pub const OPAD_POSTFIX: u32 = 2; +pub const OPAD_SYMBOL: u32 = 4; +pub const OHWA0_R4KEOP_CHECKED: u32 = 1; +pub const OHWA1_R4KEOP_CLEAN: u32 = 2; +pub const R_MIPS_NONE: u32 = 0; +pub const R_MIPS_16: u32 = 1; +pub const R_MIPS_32: u32 = 2; +pub const R_MIPS_REL32: u32 = 3; +pub const R_MIPS_26: u32 = 4; +pub const R_MIPS_HI16: u32 = 5; +pub const R_MIPS_LO16: u32 = 6; +pub const R_MIPS_GPREL16: u32 = 7; +pub const R_MIPS_LITERAL: u32 = 8; +pub const R_MIPS_GOT16: u32 = 9; +pub const R_MIPS_PC16: u32 = 10; +pub const R_MIPS_CALL16: u32 = 11; +pub const R_MIPS_GPREL32: u32 = 12; +pub const R_MIPS_SHIFT5: u32 = 16; +pub const R_MIPS_SHIFT6: u32 = 17; +pub const R_MIPS_64: u32 = 18; +pub const R_MIPS_GOT_DISP: u32 = 19; +pub const R_MIPS_GOT_PAGE: u32 = 20; +pub const R_MIPS_GOT_OFST: u32 = 21; +pub const R_MIPS_GOT_HI16: u32 = 22; +pub const R_MIPS_GOT_LO16: u32 = 23; +pub const R_MIPS_SUB: u32 = 24; +pub const R_MIPS_INSERT_A: u32 = 25; +pub const R_MIPS_INSERT_B: u32 = 26; +pub const R_MIPS_DELETE: u32 = 27; +pub const R_MIPS_HIGHER: u32 = 28; +pub const R_MIPS_HIGHEST: u32 = 29; +pub const R_MIPS_CALL_HI16: u32 = 30; +pub const R_MIPS_CALL_LO16: u32 = 31; +pub const R_MIPS_SCN_DISP: u32 = 32; +pub const R_MIPS_REL16: u32 = 33; +pub const R_MIPS_ADD_IMMEDIATE: u32 = 34; +pub const R_MIPS_PJUMP: u32 = 35; +pub const R_MIPS_RELGOT: u32 = 36; +pub const R_MIPS_JALR: u32 = 37; +pub const R_MIPS_TLS_DTPMOD32: u32 = 38; +pub const R_MIPS_TLS_DTPREL32: u32 = 39; +pub const R_MIPS_TLS_DTPMOD64: u32 = 40; +pub const R_MIPS_TLS_DTPREL64: u32 = 41; +pub const R_MIPS_TLS_GD: u32 = 42; +pub const R_MIPS_TLS_LDM: u32 = 43; +pub const R_MIPS_TLS_DTPREL_HI16: u32 = 44; +pub const R_MIPS_TLS_DTPREL_LO16: u32 = 45; +pub const R_MIPS_TLS_GOTTPREL: u32 = 46; +pub const R_MIPS_TLS_TPREL32: u32 = 47; +pub const R_MIPS_TLS_TPREL64: u32 = 48; +pub const R_MIPS_TLS_TPREL_HI16: u32 = 49; +pub const R_MIPS_TLS_TPREL_LO16: u32 = 50; +pub const R_MIPS_GLOB_DAT: u32 = 51; +pub const R_MIPS_COPY: u32 = 126; +pub const R_MIPS_JUMP_SLOT: u32 = 127; +pub const R_MIPS_NUM: u32 = 128; +pub const PT_MIPS_REGINFO: u32 = 1879048192; +pub const PT_MIPS_RTPROC: u32 = 1879048193; +pub const PT_MIPS_OPTIONS: u32 = 1879048194; +pub const PT_MIPS_ABIFLAGS: u32 = 1879048195; +pub const PF_MIPS_LOCAL: u32 = 268435456; +pub const DT_MIPS_RLD_VERSION: u32 = 1879048193; +pub const DT_MIPS_TIME_STAMP: u32 = 1879048194; +pub const DT_MIPS_ICHECKSUM: u32 = 1879048195; +pub const DT_MIPS_IVERSION: u32 = 1879048196; +pub const DT_MIPS_FLAGS: u32 = 1879048197; +pub const DT_MIPS_BASE_ADDRESS: u32 = 1879048198; +pub const DT_MIPS_MSYM: u32 = 1879048199; +pub const DT_MIPS_CONFLICT: u32 = 1879048200; +pub const DT_MIPS_LIBLIST: u32 = 1879048201; +pub const DT_MIPS_LOCAL_GOTNO: u32 = 1879048202; +pub const DT_MIPS_CONFLICTNO: u32 = 1879048203; +pub const DT_MIPS_LIBLISTNO: u32 = 1879048208; +pub const DT_MIPS_SYMTABNO: u32 = 1879048209; +pub const DT_MIPS_UNREFEXTNO: u32 = 1879048210; +pub const DT_MIPS_GOTSYM: u32 = 1879048211; +pub const DT_MIPS_HIPAGENO: u32 = 1879048212; +pub const DT_MIPS_RLD_MAP: u32 = 1879048214; +pub const DT_MIPS_DELTA_CLASS: u32 = 1879048215; +pub const DT_MIPS_DELTA_CLASS_NO: u32 = 1879048216; +pub const DT_MIPS_DELTA_INSTANCE: u32 = 1879048217; +pub const DT_MIPS_DELTA_INSTANCE_NO: u32 = 1879048218; +pub const DT_MIPS_DELTA_RELOC: u32 = 1879048219; +pub const DT_MIPS_DELTA_RELOC_NO: u32 = 1879048220; +pub const DT_MIPS_DELTA_SYM: u32 = 1879048221; +pub const DT_MIPS_DELTA_SYM_NO: u32 = 1879048222; +pub const DT_MIPS_DELTA_CLASSSYM: u32 = 1879048224; +pub const DT_MIPS_DELTA_CLASSSYM_NO: u32 = 1879048225; +pub const DT_MIPS_CXX_FLAGS: u32 = 1879048226; +pub const DT_MIPS_PIXIE_INIT: u32 = 1879048227; +pub const DT_MIPS_SYMBOL_LIB: u32 = 1879048228; +pub const DT_MIPS_LOCALPAGE_GOTIDX: u32 = 1879048229; +pub const DT_MIPS_LOCAL_GOTIDX: u32 = 1879048230; +pub const DT_MIPS_HIDDEN_GOTIDX: u32 = 1879048231; +pub const DT_MIPS_PROTECTED_GOTIDX: u32 = 1879048232; +pub const DT_MIPS_OPTIONS: u32 = 1879048233; +pub const DT_MIPS_INTERFACE: u32 = 1879048234; +pub const DT_MIPS_DYNSTR_ALIGN: u32 = 1879048235; +pub const DT_MIPS_INTERFACE_SIZE: u32 = 1879048236; +pub const DT_MIPS_RLD_TEXT_RESOLVE_ADDR: u32 = 1879048237; +pub const DT_MIPS_PERF_SUFFIX: u32 = 1879048238; +pub const DT_MIPS_COMPACT_SIZE: u32 = 1879048239; +pub const DT_MIPS_GP_VALUE: u32 = 1879048240; +pub const DT_MIPS_AUX_DYNAMIC: u32 = 1879048241; +pub const DT_MIPS_PLTGOT: u32 = 1879048242; +pub const DT_MIPS_RWPLT: u32 = 1879048244; +pub const DT_MIPS_RLD_MAP_REL: u32 = 1879048245; +pub const DT_MIPS_XHASH: u32 = 1879048246; +pub const DT_MIPS_NUM: u32 = 55; +pub const RHF_NONE: u32 = 0; +pub const RHF_QUICKSTART: u32 = 1; +pub const RHF_NOTPOT: u32 = 2; +pub const RHF_NO_LIBRARY_REPLACEMENT: u32 = 4; +pub const RHF_NO_MOVE: u32 = 8; +pub const RHF_SGI_ONLY: u32 = 16; +pub const RHF_GUARANTEE_INIT: u32 = 32; +pub const RHF_DELTA_C_PLUS_PLUS: u32 = 64; +pub const RHF_GUARANTEE_START_INIT: u32 = 128; +pub const RHF_PIXIE: u32 = 256; +pub const RHF_DEFAULT_DELAY_LOAD: u32 = 512; +pub const RHF_REQUICKSTART: u32 = 1024; +pub const RHF_REQUICKSTARTED: u32 = 2048; +pub const RHF_CORD: u32 = 4096; +pub const RHF_NO_UNRES_UNDEF: u32 = 8192; +pub const RHF_RLD_ORDER_SAFE: u32 = 16384; +pub const LL_NONE: u32 = 0; +pub const LL_EXACT_MATCH: u32 = 1; +pub const LL_IGNORE_INT_VER: u32 = 2; +pub const LL_REQUIRE_MINOR: u32 = 4; +pub const LL_EXPORTS: u32 = 8; +pub const LL_DELAY_LOAD: u32 = 16; +pub const LL_DELTA: u32 = 32; +pub const MIPS_AFL_REG_NONE: u32 = 0; +pub const MIPS_AFL_REG_32: u32 = 1; +pub const MIPS_AFL_REG_64: u32 = 2; +pub const MIPS_AFL_REG_128: u32 = 3; +pub const MIPS_AFL_ASE_DSP: u32 = 1; +pub const MIPS_AFL_ASE_DSPR2: u32 = 2; +pub const MIPS_AFL_ASE_EVA: u32 = 4; +pub const MIPS_AFL_ASE_MCU: u32 = 8; +pub const MIPS_AFL_ASE_MDMX: u32 = 16; +pub const MIPS_AFL_ASE_MIPS3D: u32 = 32; +pub const MIPS_AFL_ASE_MT: u32 = 64; +pub const MIPS_AFL_ASE_SMARTMIPS: u32 = 128; +pub const MIPS_AFL_ASE_VIRT: u32 = 256; +pub const MIPS_AFL_ASE_MSA: u32 = 512; +pub const MIPS_AFL_ASE_MIPS16: u32 = 1024; +pub const MIPS_AFL_ASE_MICROMIPS: u32 = 2048; +pub const MIPS_AFL_ASE_XPA: u32 = 4096; +pub const MIPS_AFL_ASE_MASK: u32 = 8191; +pub const MIPS_AFL_EXT_XLR: u32 = 1; +pub const MIPS_AFL_EXT_OCTEON2: u32 = 2; +pub const MIPS_AFL_EXT_OCTEONP: u32 = 3; +pub const MIPS_AFL_EXT_LOONGSON_3A: u32 = 4; +pub const MIPS_AFL_EXT_OCTEON: u32 = 5; +pub const MIPS_AFL_EXT_5900: u32 = 6; +pub const MIPS_AFL_EXT_4650: u32 = 7; +pub const MIPS_AFL_EXT_4010: u32 = 8; +pub const MIPS_AFL_EXT_4100: u32 = 9; +pub const MIPS_AFL_EXT_3900: u32 = 10; +pub const MIPS_AFL_EXT_10000: u32 = 11; +pub const MIPS_AFL_EXT_SB1: u32 = 12; +pub const MIPS_AFL_EXT_4111: u32 = 13; +pub const MIPS_AFL_EXT_4120: u32 = 14; +pub const MIPS_AFL_EXT_5400: u32 = 15; +pub const MIPS_AFL_EXT_5500: u32 = 16; +pub const MIPS_AFL_EXT_LOONGSON_2E: u32 = 17; +pub const MIPS_AFL_EXT_LOONGSON_2F: u32 = 18; +pub const MIPS_AFL_FLAGS1_ODDSPREG: u32 = 1; +pub const EF_PARISC_TRAPNIL: u32 = 65536; +pub const EF_PARISC_EXT: u32 = 131072; +pub const EF_PARISC_LSB: u32 = 262144; +pub const EF_PARISC_WIDE: u32 = 524288; +pub const EF_PARISC_NO_KABP: u32 = 1048576; +pub const EF_PARISC_LAZYSWAP: u32 = 4194304; +pub const EF_PARISC_ARCH: u32 = 65535; +pub const EFA_PARISC_1_0: u32 = 523; +pub const EFA_PARISC_1_1: u32 = 528; +pub const EFA_PARISC_2_0: u32 = 532; +pub const SHN_PARISC_ANSI_COMMON: u32 = 65280; +pub const SHN_PARISC_HUGE_COMMON: u32 = 65281; +pub const SHT_PARISC_EXT: u32 = 1879048192; +pub const SHT_PARISC_UNWIND: u32 = 1879048193; +pub const SHT_PARISC_DOC: u32 = 1879048194; +pub const SHF_PARISC_SHORT: u32 = 536870912; +pub const SHF_PARISC_HUGE: u32 = 1073741824; +pub const SHF_PARISC_SBP: u32 = 2147483648; +pub const STT_PARISC_MILLICODE: u32 = 13; +pub const STT_HP_OPAQUE: u32 = 11; +pub const STT_HP_STUB: u32 = 12; +pub const R_PARISC_NONE: u32 = 0; +pub const R_PARISC_DIR32: u32 = 1; +pub const R_PARISC_DIR21L: u32 = 2; +pub const R_PARISC_DIR17R: u32 = 3; +pub const R_PARISC_DIR17F: u32 = 4; +pub const R_PARISC_DIR14R: u32 = 6; +pub const R_PARISC_PCREL32: u32 = 9; +pub const R_PARISC_PCREL21L: u32 = 10; +pub const R_PARISC_PCREL17R: u32 = 11; +pub const R_PARISC_PCREL17F: u32 = 12; +pub const R_PARISC_PCREL14R: u32 = 14; +pub const R_PARISC_DPREL21L: u32 = 18; +pub const R_PARISC_DPREL14R: u32 = 22; +pub const R_PARISC_GPREL21L: u32 = 26; +pub const R_PARISC_GPREL14R: u32 = 30; +pub const R_PARISC_LTOFF21L: u32 = 34; +pub const R_PARISC_LTOFF14R: u32 = 38; +pub const R_PARISC_SECREL32: u32 = 41; +pub const R_PARISC_SEGBASE: u32 = 48; +pub const R_PARISC_SEGREL32: u32 = 49; +pub const R_PARISC_PLTOFF21L: u32 = 50; +pub const R_PARISC_PLTOFF14R: u32 = 54; +pub const R_PARISC_LTOFF_FPTR32: u32 = 57; +pub const R_PARISC_LTOFF_FPTR21L: u32 = 58; +pub const R_PARISC_LTOFF_FPTR14R: u32 = 62; +pub const R_PARISC_FPTR64: u32 = 64; +pub const R_PARISC_PLABEL32: u32 = 65; +pub const R_PARISC_PLABEL21L: u32 = 66; +pub const R_PARISC_PLABEL14R: u32 = 70; +pub const R_PARISC_PCREL64: u32 = 72; +pub const R_PARISC_PCREL22F: u32 = 74; +pub const R_PARISC_PCREL14WR: u32 = 75; +pub const R_PARISC_PCREL14DR: u32 = 76; +pub const R_PARISC_PCREL16F: u32 = 77; +pub const R_PARISC_PCREL16WF: u32 = 78; +pub const R_PARISC_PCREL16DF: u32 = 79; +pub const R_PARISC_DIR64: u32 = 80; +pub const R_PARISC_DIR14WR: u32 = 83; +pub const R_PARISC_DIR14DR: u32 = 84; +pub const R_PARISC_DIR16F: u32 = 85; +pub const R_PARISC_DIR16WF: u32 = 86; +pub const R_PARISC_DIR16DF: u32 = 87; +pub const R_PARISC_GPREL64: u32 = 88; +pub const R_PARISC_GPREL14WR: u32 = 91; +pub const R_PARISC_GPREL14DR: u32 = 92; +pub const R_PARISC_GPREL16F: u32 = 93; +pub const R_PARISC_GPREL16WF: u32 = 94; +pub const R_PARISC_GPREL16DF: u32 = 95; +pub const R_PARISC_LTOFF64: u32 = 96; +pub const R_PARISC_LTOFF14WR: u32 = 99; +pub const R_PARISC_LTOFF14DR: u32 = 100; +pub const R_PARISC_LTOFF16F: u32 = 101; +pub const R_PARISC_LTOFF16WF: u32 = 102; +pub const R_PARISC_LTOFF16DF: u32 = 103; +pub const R_PARISC_SECREL64: u32 = 104; +pub const R_PARISC_SEGREL64: u32 = 112; +pub const R_PARISC_PLTOFF14WR: u32 = 115; +pub const R_PARISC_PLTOFF14DR: u32 = 116; +pub const R_PARISC_PLTOFF16F: u32 = 117; +pub const R_PARISC_PLTOFF16WF: u32 = 118; +pub const R_PARISC_PLTOFF16DF: u32 = 119; +pub const R_PARISC_LTOFF_FPTR64: u32 = 120; +pub const R_PARISC_LTOFF_FPTR14WR: u32 = 123; +pub const R_PARISC_LTOFF_FPTR14DR: u32 = 124; +pub const R_PARISC_LTOFF_FPTR16F: u32 = 125; +pub const R_PARISC_LTOFF_FPTR16WF: u32 = 126; +pub const R_PARISC_LTOFF_FPTR16DF: u32 = 127; +pub const R_PARISC_LORESERVE: u32 = 128; +pub const R_PARISC_COPY: u32 = 128; +pub const R_PARISC_IPLT: u32 = 129; +pub const R_PARISC_EPLT: u32 = 130; +pub const R_PARISC_TPREL32: u32 = 153; +pub const R_PARISC_TPREL21L: u32 = 154; +pub const R_PARISC_TPREL14R: u32 = 158; +pub const R_PARISC_LTOFF_TP21L: u32 = 162; +pub const R_PARISC_LTOFF_TP14R: u32 = 166; +pub const R_PARISC_LTOFF_TP14F: u32 = 167; +pub const R_PARISC_TPREL64: u32 = 216; +pub const R_PARISC_TPREL14WR: u32 = 219; +pub const R_PARISC_TPREL14DR: u32 = 220; +pub const R_PARISC_TPREL16F: u32 = 221; +pub const R_PARISC_TPREL16WF: u32 = 222; +pub const R_PARISC_TPREL16DF: u32 = 223; +pub const R_PARISC_LTOFF_TP64: u32 = 224; +pub const R_PARISC_LTOFF_TP14WR: u32 = 227; +pub const R_PARISC_LTOFF_TP14DR: u32 = 228; +pub const R_PARISC_LTOFF_TP16F: u32 = 229; +pub const R_PARISC_LTOFF_TP16WF: u32 = 230; +pub const R_PARISC_LTOFF_TP16DF: u32 = 231; +pub const R_PARISC_GNU_VTENTRY: u32 = 232; +pub const R_PARISC_GNU_VTINHERIT: u32 = 233; +pub const R_PARISC_TLS_GD21L: u32 = 234; +pub const R_PARISC_TLS_GD14R: u32 = 235; +pub const R_PARISC_TLS_GDCALL: u32 = 236; +pub const R_PARISC_TLS_LDM21L: u32 = 237; +pub const R_PARISC_TLS_LDM14R: u32 = 238; +pub const R_PARISC_TLS_LDMCALL: u32 = 239; +pub const R_PARISC_TLS_LDO21L: u32 = 240; +pub const R_PARISC_TLS_LDO14R: u32 = 241; +pub const R_PARISC_TLS_DTPMOD32: u32 = 242; +pub const R_PARISC_TLS_DTPMOD64: u32 = 243; +pub const R_PARISC_TLS_DTPOFF32: u32 = 244; +pub const R_PARISC_TLS_DTPOFF64: u32 = 245; +pub const R_PARISC_TLS_LE21L: u32 = 154; +pub const R_PARISC_TLS_LE14R: u32 = 158; +pub const R_PARISC_TLS_IE21L: u32 = 162; +pub const R_PARISC_TLS_IE14R: u32 = 166; +pub const R_PARISC_TLS_TPREL32: u32 = 153; +pub const R_PARISC_TLS_TPREL64: u32 = 216; +pub const R_PARISC_HIRESERVE: u32 = 255; +pub const PT_HP_TLS: u32 = 1610612736; +pub const PT_HP_CORE_NONE: u32 = 1610612737; +pub const PT_HP_CORE_VERSION: u32 = 1610612738; +pub const PT_HP_CORE_KERNEL: u32 = 1610612739; +pub const PT_HP_CORE_COMM: u32 = 1610612740; +pub const PT_HP_CORE_PROC: u32 = 1610612741; +pub const PT_HP_CORE_LOADABLE: u32 = 1610612742; +pub const PT_HP_CORE_STACK: u32 = 1610612743; +pub const PT_HP_CORE_SHM: u32 = 1610612744; +pub const PT_HP_CORE_MMF: u32 = 1610612745; +pub const PT_HP_PARALLEL: u32 = 1610612752; +pub const PT_HP_FASTBIND: u32 = 1610612753; +pub const PT_HP_OPT_ANNOT: u32 = 1610612754; +pub const PT_HP_HSL_ANNOT: u32 = 1610612755; +pub const PT_HP_STACK: u32 = 1610612756; +pub const PT_PARISC_ARCHEXT: u32 = 1879048192; +pub const PT_PARISC_UNWIND: u32 = 1879048193; +pub const PF_PARISC_SBP: u32 = 134217728; +pub const PF_HP_PAGE_SIZE: u32 = 1048576; +pub const PF_HP_FAR_SHARED: u32 = 2097152; +pub const PF_HP_NEAR_SHARED: u32 = 4194304; +pub const PF_HP_CODE: u32 = 16777216; +pub const PF_HP_MODIFY: u32 = 33554432; +pub const PF_HP_LAZYSWAP: u32 = 67108864; +pub const PF_HP_SBP: u32 = 134217728; +pub const EF_ALPHA_32BIT: u32 = 1; +pub const EF_ALPHA_CANRELAX: u32 = 2; +pub const SHT_ALPHA_DEBUG: u32 = 1879048193; +pub const SHT_ALPHA_REGINFO: u32 = 1879048194; +pub const SHF_ALPHA_GPREL: u32 = 268435456; +pub const STO_ALPHA_NOPV: u32 = 128; +pub const STO_ALPHA_STD_GPLOAD: u32 = 136; +pub const R_ALPHA_NONE: u32 = 0; +pub const R_ALPHA_REFLONG: u32 = 1; +pub const R_ALPHA_REFQUAD: u32 = 2; +pub const R_ALPHA_GPREL32: u32 = 3; +pub const R_ALPHA_LITERAL: u32 = 4; +pub const R_ALPHA_LITUSE: u32 = 5; +pub const R_ALPHA_GPDISP: u32 = 6; +pub const R_ALPHA_BRADDR: u32 = 7; +pub const R_ALPHA_HINT: u32 = 8; +pub const R_ALPHA_SREL16: u32 = 9; +pub const R_ALPHA_SREL32: u32 = 10; +pub const R_ALPHA_SREL64: u32 = 11; +pub const R_ALPHA_GPRELHIGH: u32 = 17; +pub const R_ALPHA_GPRELLOW: u32 = 18; +pub const R_ALPHA_GPREL16: u32 = 19; +pub const R_ALPHA_COPY: u32 = 24; +pub const R_ALPHA_GLOB_DAT: u32 = 25; +pub const R_ALPHA_JMP_SLOT: u32 = 26; +pub const R_ALPHA_RELATIVE: u32 = 27; +pub const R_ALPHA_TLS_GD_HI: u32 = 28; +pub const R_ALPHA_TLSGD: u32 = 29; +pub const R_ALPHA_TLS_LDM: u32 = 30; +pub const R_ALPHA_DTPMOD64: u32 = 31; +pub const R_ALPHA_GOTDTPREL: u32 = 32; +pub const R_ALPHA_DTPREL64: u32 = 33; +pub const R_ALPHA_DTPRELHI: u32 = 34; +pub const R_ALPHA_DTPRELLO: u32 = 35; +pub const R_ALPHA_DTPREL16: u32 = 36; +pub const R_ALPHA_GOTTPREL: u32 = 37; +pub const R_ALPHA_TPREL64: u32 = 38; +pub const R_ALPHA_TPRELHI: u32 = 39; +pub const R_ALPHA_TPRELLO: u32 = 40; +pub const R_ALPHA_TPREL16: u32 = 41; +pub const R_ALPHA_NUM: u32 = 46; +pub const LITUSE_ALPHA_ADDR: u32 = 0; +pub const LITUSE_ALPHA_BASE: u32 = 1; +pub const LITUSE_ALPHA_BYTOFF: u32 = 2; +pub const LITUSE_ALPHA_JSR: u32 = 3; +pub const LITUSE_ALPHA_TLS_GD: u32 = 4; +pub const LITUSE_ALPHA_TLS_LDM: u32 = 5; +pub const DT_ALPHA_PLTRO: u32 = 1879048192; +pub const DT_ALPHA_NUM: u32 = 1; +pub const EF_PPC_EMB: u32 = 2147483648; +pub const EF_PPC_RELOCATABLE: u32 = 65536; +pub const EF_PPC_RELOCATABLE_LIB: u32 = 32768; +pub const R_PPC_NONE: u32 = 0; +pub const R_PPC_ADDR32: u32 = 1; +pub const R_PPC_ADDR24: u32 = 2; +pub const R_PPC_ADDR16: u32 = 3; +pub const R_PPC_ADDR16_LO: u32 = 4; +pub const R_PPC_ADDR16_HI: u32 = 5; +pub const R_PPC_ADDR16_HA: u32 = 6; +pub const R_PPC_ADDR14: u32 = 7; +pub const R_PPC_ADDR14_BRTAKEN: u32 = 8; +pub const R_PPC_ADDR14_BRNTAKEN: u32 = 9; +pub const R_PPC_REL24: u32 = 10; +pub const R_PPC_REL14: u32 = 11; +pub const R_PPC_REL14_BRTAKEN: u32 = 12; +pub const R_PPC_REL14_BRNTAKEN: u32 = 13; +pub const R_PPC_GOT16: u32 = 14; +pub const R_PPC_GOT16_LO: u32 = 15; +pub const R_PPC_GOT16_HI: u32 = 16; +pub const R_PPC_GOT16_HA: u32 = 17; +pub const R_PPC_PLTREL24: u32 = 18; +pub const R_PPC_COPY: u32 = 19; +pub const R_PPC_GLOB_DAT: u32 = 20; +pub const R_PPC_JMP_SLOT: u32 = 21; +pub const R_PPC_RELATIVE: u32 = 22; +pub const R_PPC_LOCAL24PC: u32 = 23; +pub const R_PPC_UADDR32: u32 = 24; +pub const R_PPC_UADDR16: u32 = 25; +pub const R_PPC_REL32: u32 = 26; +pub const R_PPC_PLT32: u32 = 27; +pub const R_PPC_PLTREL32: u32 = 28; +pub const R_PPC_PLT16_LO: u32 = 29; +pub const R_PPC_PLT16_HI: u32 = 30; +pub const R_PPC_PLT16_HA: u32 = 31; +pub const R_PPC_SDAREL16: u32 = 32; +pub const R_PPC_SECTOFF: u32 = 33; +pub const R_PPC_SECTOFF_LO: u32 = 34; +pub const R_PPC_SECTOFF_HI: u32 = 35; +pub const R_PPC_SECTOFF_HA: u32 = 36; +pub const R_PPC_TLS: u32 = 67; +pub const R_PPC_DTPMOD32: u32 = 68; +pub const R_PPC_TPREL16: u32 = 69; +pub const R_PPC_TPREL16_LO: u32 = 70; +pub const R_PPC_TPREL16_HI: u32 = 71; +pub const R_PPC_TPREL16_HA: u32 = 72; +pub const R_PPC_TPREL32: u32 = 73; +pub const R_PPC_DTPREL16: u32 = 74; +pub const R_PPC_DTPREL16_LO: u32 = 75; +pub const R_PPC_DTPREL16_HI: u32 = 76; +pub const R_PPC_DTPREL16_HA: u32 = 77; +pub const R_PPC_DTPREL32: u32 = 78; +pub const R_PPC_GOT_TLSGD16: u32 = 79; +pub const R_PPC_GOT_TLSGD16_LO: u32 = 80; +pub const R_PPC_GOT_TLSGD16_HI: u32 = 81; +pub const R_PPC_GOT_TLSGD16_HA: u32 = 82; +pub const R_PPC_GOT_TLSLD16: u32 = 83; +pub const R_PPC_GOT_TLSLD16_LO: u32 = 84; +pub const R_PPC_GOT_TLSLD16_HI: u32 = 85; +pub const R_PPC_GOT_TLSLD16_HA: u32 = 86; +pub const R_PPC_GOT_TPREL16: u32 = 87; +pub const R_PPC_GOT_TPREL16_LO: u32 = 88; +pub const R_PPC_GOT_TPREL16_HI: u32 = 89; +pub const R_PPC_GOT_TPREL16_HA: u32 = 90; +pub const R_PPC_GOT_DTPREL16: u32 = 91; +pub const R_PPC_GOT_DTPREL16_LO: u32 = 92; +pub const R_PPC_GOT_DTPREL16_HI: u32 = 93; +pub const R_PPC_GOT_DTPREL16_HA: u32 = 94; +pub const R_PPC_TLSGD: u32 = 95; +pub const R_PPC_TLSLD: u32 = 96; +pub const R_PPC_EMB_NADDR32: u32 = 101; +pub const R_PPC_EMB_NADDR16: u32 = 102; +pub const R_PPC_EMB_NADDR16_LO: u32 = 103; +pub const R_PPC_EMB_NADDR16_HI: u32 = 104; +pub const R_PPC_EMB_NADDR16_HA: u32 = 105; +pub const R_PPC_EMB_SDAI16: u32 = 106; +pub const R_PPC_EMB_SDA2I16: u32 = 107; +pub const R_PPC_EMB_SDA2REL: u32 = 108; +pub const R_PPC_EMB_SDA21: u32 = 109; +pub const R_PPC_EMB_MRKREF: u32 = 110; +pub const R_PPC_EMB_RELSEC16: u32 = 111; +pub const R_PPC_EMB_RELST_LO: u32 = 112; +pub const R_PPC_EMB_RELST_HI: u32 = 113; +pub const R_PPC_EMB_RELST_HA: u32 = 114; +pub const R_PPC_EMB_BIT_FLD: u32 = 115; +pub const R_PPC_EMB_RELSDA: u32 = 116; +pub const R_PPC_DIAB_SDA21_LO: u32 = 180; +pub const R_PPC_DIAB_SDA21_HI: u32 = 181; +pub const R_PPC_DIAB_SDA21_HA: u32 = 182; +pub const R_PPC_DIAB_RELSDA_LO: u32 = 183; +pub const R_PPC_DIAB_RELSDA_HI: u32 = 184; +pub const R_PPC_DIAB_RELSDA_HA: u32 = 185; +pub const R_PPC_IRELATIVE: u32 = 248; +pub const R_PPC_REL16: u32 = 249; +pub const R_PPC_REL16_LO: u32 = 250; +pub const R_PPC_REL16_HI: u32 = 251; +pub const R_PPC_REL16_HA: u32 = 252; +pub const R_PPC_TOC16: u32 = 255; +pub const DT_PPC_GOT: u32 = 1879048192; +pub const DT_PPC_OPT: u32 = 1879048193; +pub const DT_PPC_NUM: u32 = 2; +pub const PPC_OPT_TLS: u32 = 1; +pub const R_PPC64_NONE: u32 = 0; +pub const R_PPC64_ADDR32: u32 = 1; +pub const R_PPC64_ADDR24: u32 = 2; +pub const R_PPC64_ADDR16: u32 = 3; +pub const R_PPC64_ADDR16_LO: u32 = 4; +pub const R_PPC64_ADDR16_HI: u32 = 5; +pub const R_PPC64_ADDR16_HA: u32 = 6; +pub const R_PPC64_ADDR14: u32 = 7; +pub const R_PPC64_ADDR14_BRTAKEN: u32 = 8; +pub const R_PPC64_ADDR14_BRNTAKEN: u32 = 9; +pub const R_PPC64_REL24: u32 = 10; +pub const R_PPC64_REL14: u32 = 11; +pub const R_PPC64_REL14_BRTAKEN: u32 = 12; +pub const R_PPC64_REL14_BRNTAKEN: u32 = 13; +pub const R_PPC64_GOT16: u32 = 14; +pub const R_PPC64_GOT16_LO: u32 = 15; +pub const R_PPC64_GOT16_HI: u32 = 16; +pub const R_PPC64_GOT16_HA: u32 = 17; +pub const R_PPC64_COPY: u32 = 19; +pub const R_PPC64_GLOB_DAT: u32 = 20; +pub const R_PPC64_JMP_SLOT: u32 = 21; +pub const R_PPC64_RELATIVE: u32 = 22; +pub const R_PPC64_UADDR32: u32 = 24; +pub const R_PPC64_UADDR16: u32 = 25; +pub const R_PPC64_REL32: u32 = 26; +pub const R_PPC64_PLT32: u32 = 27; +pub const R_PPC64_PLTREL32: u32 = 28; +pub const R_PPC64_PLT16_LO: u32 = 29; +pub const R_PPC64_PLT16_HI: u32 = 30; +pub const R_PPC64_PLT16_HA: u32 = 31; +pub const R_PPC64_SECTOFF: u32 = 33; +pub const R_PPC64_SECTOFF_LO: u32 = 34; +pub const R_PPC64_SECTOFF_HI: u32 = 35; +pub const R_PPC64_SECTOFF_HA: u32 = 36; +pub const R_PPC64_ADDR30: u32 = 37; +pub const R_PPC64_ADDR64: u32 = 38; +pub const R_PPC64_ADDR16_HIGHER: u32 = 39; +pub const R_PPC64_ADDR16_HIGHERA: u32 = 40; +pub const R_PPC64_ADDR16_HIGHEST: u32 = 41; +pub const R_PPC64_ADDR16_HIGHESTA: u32 = 42; +pub const R_PPC64_UADDR64: u32 = 43; +pub const R_PPC64_REL64: u32 = 44; +pub const R_PPC64_PLT64: u32 = 45; +pub const R_PPC64_PLTREL64: u32 = 46; +pub const R_PPC64_TOC16: u32 = 47; +pub const R_PPC64_TOC16_LO: u32 = 48; +pub const R_PPC64_TOC16_HI: u32 = 49; +pub const R_PPC64_TOC16_HA: u32 = 50; +pub const R_PPC64_TOC: u32 = 51; +pub const R_PPC64_PLTGOT16: u32 = 52; +pub const R_PPC64_PLTGOT16_LO: u32 = 53; +pub const R_PPC64_PLTGOT16_HI: u32 = 54; +pub const R_PPC64_PLTGOT16_HA: u32 = 55; +pub const R_PPC64_ADDR16_DS: u32 = 56; +pub const R_PPC64_ADDR16_LO_DS: u32 = 57; +pub const R_PPC64_GOT16_DS: u32 = 58; +pub const R_PPC64_GOT16_LO_DS: u32 = 59; +pub const R_PPC64_PLT16_LO_DS: u32 = 60; +pub const R_PPC64_SECTOFF_DS: u32 = 61; +pub const R_PPC64_SECTOFF_LO_DS: u32 = 62; +pub const R_PPC64_TOC16_DS: u32 = 63; +pub const R_PPC64_TOC16_LO_DS: u32 = 64; +pub const R_PPC64_PLTGOT16_DS: u32 = 65; +pub const R_PPC64_PLTGOT16_LO_DS: u32 = 66; +pub const R_PPC64_TLS: u32 = 67; +pub const R_PPC64_DTPMOD64: u32 = 68; +pub const R_PPC64_TPREL16: u32 = 69; +pub const R_PPC64_TPREL16_LO: u32 = 70; +pub const R_PPC64_TPREL16_HI: u32 = 71; +pub const R_PPC64_TPREL16_HA: u32 = 72; +pub const R_PPC64_TPREL64: u32 = 73; +pub const R_PPC64_DTPREL16: u32 = 74; +pub const R_PPC64_DTPREL16_LO: u32 = 75; +pub const R_PPC64_DTPREL16_HI: u32 = 76; +pub const R_PPC64_DTPREL16_HA: u32 = 77; +pub const R_PPC64_DTPREL64: u32 = 78; +pub const R_PPC64_GOT_TLSGD16: u32 = 79; +pub const R_PPC64_GOT_TLSGD16_LO: u32 = 80; +pub const R_PPC64_GOT_TLSGD16_HI: u32 = 81; +pub const R_PPC64_GOT_TLSGD16_HA: u32 = 82; +pub const R_PPC64_GOT_TLSLD16: u32 = 83; +pub const R_PPC64_GOT_TLSLD16_LO: u32 = 84; +pub const R_PPC64_GOT_TLSLD16_HI: u32 = 85; +pub const R_PPC64_GOT_TLSLD16_HA: u32 = 86; +pub const R_PPC64_GOT_TPREL16_DS: u32 = 87; +pub const R_PPC64_GOT_TPREL16_LO_DS: u32 = 88; +pub const R_PPC64_GOT_TPREL16_HI: u32 = 89; +pub const R_PPC64_GOT_TPREL16_HA: u32 = 90; +pub const R_PPC64_GOT_DTPREL16_DS: u32 = 91; +pub const R_PPC64_GOT_DTPREL16_LO_DS: u32 = 92; +pub const R_PPC64_GOT_DTPREL16_HI: u32 = 93; +pub const R_PPC64_GOT_DTPREL16_HA: u32 = 94; +pub const R_PPC64_TPREL16_DS: u32 = 95; +pub const R_PPC64_TPREL16_LO_DS: u32 = 96; +pub const R_PPC64_TPREL16_HIGHER: u32 = 97; +pub const R_PPC64_TPREL16_HIGHERA: u32 = 98; +pub const R_PPC64_TPREL16_HIGHEST: u32 = 99; +pub const R_PPC64_TPREL16_HIGHESTA: u32 = 100; +pub const R_PPC64_DTPREL16_DS: u32 = 101; +pub const R_PPC64_DTPREL16_LO_DS: u32 = 102; +pub const R_PPC64_DTPREL16_HIGHER: u32 = 103; +pub const R_PPC64_DTPREL16_HIGHERA: u32 = 104; +pub const R_PPC64_DTPREL16_HIGHEST: u32 = 105; +pub const R_PPC64_DTPREL16_HIGHESTA: u32 = 106; +pub const R_PPC64_TLSGD: u32 = 107; +pub const R_PPC64_TLSLD: u32 = 108; +pub const R_PPC64_TOCSAVE: u32 = 109; +pub const R_PPC64_ADDR16_HIGH: u32 = 110; +pub const R_PPC64_ADDR16_HIGHA: u32 = 111; +pub const R_PPC64_TPREL16_HIGH: u32 = 112; +pub const R_PPC64_TPREL16_HIGHA: u32 = 113; +pub const R_PPC64_DTPREL16_HIGH: u32 = 114; +pub const R_PPC64_DTPREL16_HIGHA: u32 = 115; +pub const R_PPC64_JMP_IREL: u32 = 247; +pub const R_PPC64_IRELATIVE: u32 = 248; +pub const R_PPC64_REL16: u32 = 249; +pub const R_PPC64_REL16_LO: u32 = 250; +pub const R_PPC64_REL16_HI: u32 = 251; +pub const R_PPC64_REL16_HA: u32 = 252; +pub const EF_PPC64_ABI: u32 = 3; +pub const DT_PPC64_GLINK: u32 = 1879048192; +pub const DT_PPC64_OPD: u32 = 1879048193; +pub const DT_PPC64_OPDSZ: u32 = 1879048194; +pub const DT_PPC64_OPT: u32 = 1879048195; +pub const DT_PPC64_NUM: u32 = 4; +pub const PPC64_OPT_TLS: u32 = 1; +pub const PPC64_OPT_MULTI_TOC: u32 = 2; +pub const PPC64_OPT_LOCALENTRY: u32 = 4; +pub const STO_PPC64_LOCAL_BIT: u32 = 5; +pub const STO_PPC64_LOCAL_MASK: u32 = 224; +pub const EF_ARM_RELEXEC: u32 = 1; +pub const EF_ARM_HASENTRY: u32 = 2; +pub const EF_ARM_INTERWORK: u32 = 4; +pub const EF_ARM_APCS_26: u32 = 8; +pub const EF_ARM_APCS_FLOAT: u32 = 16; +pub const EF_ARM_PIC: u32 = 32; +pub const EF_ARM_ALIGN8: u32 = 64; +pub const EF_ARM_NEW_ABI: u32 = 128; +pub const EF_ARM_OLD_ABI: u32 = 256; +pub const EF_ARM_SOFT_FLOAT: u32 = 512; +pub const EF_ARM_VFP_FLOAT: u32 = 1024; +pub const EF_ARM_MAVERICK_FLOAT: u32 = 2048; +pub const EF_ARM_ABI_FLOAT_SOFT: u32 = 512; +pub const EF_ARM_ABI_FLOAT_HARD: u32 = 1024; +pub const EF_ARM_SYMSARESORTED: u32 = 4; +pub const EF_ARM_DYNSYMSUSESEGIDX: u32 = 8; +pub const EF_ARM_MAPSYMSFIRST: u32 = 16; +pub const EF_ARM_EABIMASK: u32 = 4278190080; +pub const EF_ARM_BE8: u32 = 8388608; +pub const EF_ARM_LE8: u32 = 4194304; +pub const EF_ARM_EABI_UNKNOWN: u32 = 0; +pub const EF_ARM_EABI_VER1: u32 = 16777216; +pub const EF_ARM_EABI_VER2: u32 = 33554432; +pub const EF_ARM_EABI_VER3: u32 = 50331648; +pub const EF_ARM_EABI_VER4: u32 = 67108864; +pub const EF_ARM_EABI_VER5: u32 = 83886080; +pub const STT_ARM_TFUNC: u32 = 13; +pub const STT_ARM_16BIT: u32 = 15; +pub const SHF_ARM_ENTRYSECT: u32 = 268435456; +pub const SHF_ARM_COMDEF: u32 = 2147483648; +pub const PF_ARM_SB: u32 = 268435456; +pub const PF_ARM_PI: u32 = 536870912; +pub const PF_ARM_ABS: u32 = 1073741824; +pub const PT_ARM_EXIDX: u32 = 1879048193; +pub const SHT_ARM_EXIDX: u32 = 1879048193; +pub const SHT_ARM_PREEMPTMAP: u32 = 1879048194; +pub const SHT_ARM_ATTRIBUTES: u32 = 1879048195; +pub const R_AARCH64_NONE: u32 = 0; +pub const R_AARCH64_P32_ABS32: u32 = 1; +pub const R_AARCH64_P32_COPY: u32 = 180; +pub const R_AARCH64_P32_GLOB_DAT: u32 = 181; +pub const R_AARCH64_P32_JUMP_SLOT: u32 = 182; +pub const R_AARCH64_P32_RELATIVE: u32 = 183; +pub const R_AARCH64_P32_TLS_DTPMOD: u32 = 184; +pub const R_AARCH64_P32_TLS_DTPREL: u32 = 185; +pub const R_AARCH64_P32_TLS_TPREL: u32 = 186; +pub const R_AARCH64_P32_TLSDESC: u32 = 187; +pub const R_AARCH64_P32_IRELATIVE: u32 = 188; +pub const R_AARCH64_ABS64: u32 = 257; +pub const R_AARCH64_ABS32: u32 = 258; +pub const R_AARCH64_ABS16: u32 = 259; +pub const R_AARCH64_PREL64: u32 = 260; +pub const R_AARCH64_PREL32: u32 = 261; +pub const R_AARCH64_PREL16: u32 = 262; +pub const R_AARCH64_MOVW_UABS_G0: u32 = 263; +pub const R_AARCH64_MOVW_UABS_G0_NC: u32 = 264; +pub const R_AARCH64_MOVW_UABS_G1: u32 = 265; +pub const R_AARCH64_MOVW_UABS_G1_NC: u32 = 266; +pub const R_AARCH64_MOVW_UABS_G2: u32 = 267; +pub const R_AARCH64_MOVW_UABS_G2_NC: u32 = 268; +pub const R_AARCH64_MOVW_UABS_G3: u32 = 269; +pub const R_AARCH64_MOVW_SABS_G0: u32 = 270; +pub const R_AARCH64_MOVW_SABS_G1: u32 = 271; +pub const R_AARCH64_MOVW_SABS_G2: u32 = 272; +pub const R_AARCH64_LD_PREL_LO19: u32 = 273; +pub const R_AARCH64_ADR_PREL_LO21: u32 = 274; +pub const R_AARCH64_ADR_PREL_PG_HI21: u32 = 275; +pub const R_AARCH64_ADR_PREL_PG_HI21_NC: u32 = 276; +pub const R_AARCH64_ADD_ABS_LO12_NC: u32 = 277; +pub const R_AARCH64_LDST8_ABS_LO12_NC: u32 = 278; +pub const R_AARCH64_TSTBR14: u32 = 279; +pub const R_AARCH64_CONDBR19: u32 = 280; +pub const R_AARCH64_JUMP26: u32 = 282; +pub const R_AARCH64_CALL26: u32 = 283; +pub const R_AARCH64_LDST16_ABS_LO12_NC: u32 = 284; +pub const R_AARCH64_LDST32_ABS_LO12_NC: u32 = 285; +pub const R_AARCH64_LDST64_ABS_LO12_NC: u32 = 286; +pub const R_AARCH64_MOVW_PREL_G0: u32 = 287; +pub const R_AARCH64_MOVW_PREL_G0_NC: u32 = 288; +pub const R_AARCH64_MOVW_PREL_G1: u32 = 289; +pub const R_AARCH64_MOVW_PREL_G1_NC: u32 = 290; +pub const R_AARCH64_MOVW_PREL_G2: u32 = 291; +pub const R_AARCH64_MOVW_PREL_G2_NC: u32 = 292; +pub const R_AARCH64_MOVW_PREL_G3: u32 = 293; +pub const R_AARCH64_LDST128_ABS_LO12_NC: u32 = 299; +pub const R_AARCH64_MOVW_GOTOFF_G0: u32 = 300; +pub const R_AARCH64_MOVW_GOTOFF_G0_NC: u32 = 301; +pub const R_AARCH64_MOVW_GOTOFF_G1: u32 = 302; +pub const R_AARCH64_MOVW_GOTOFF_G1_NC: u32 = 303; +pub const R_AARCH64_MOVW_GOTOFF_G2: u32 = 304; +pub const R_AARCH64_MOVW_GOTOFF_G2_NC: u32 = 305; +pub const R_AARCH64_MOVW_GOTOFF_G3: u32 = 306; +pub const R_AARCH64_GOTREL64: u32 = 307; +pub const R_AARCH64_GOTREL32: u32 = 308; +pub const R_AARCH64_GOT_LD_PREL19: u32 = 309; +pub const R_AARCH64_LD64_GOTOFF_LO15: u32 = 310; +pub const R_AARCH64_ADR_GOT_PAGE: u32 = 311; +pub const R_AARCH64_LD64_GOT_LO12_NC: u32 = 312; +pub const R_AARCH64_LD64_GOTPAGE_LO15: u32 = 313; +pub const R_AARCH64_TLSGD_ADR_PREL21: u32 = 512; +pub const R_AARCH64_TLSGD_ADR_PAGE21: u32 = 513; +pub const R_AARCH64_TLSGD_ADD_LO12_NC: u32 = 514; +pub const R_AARCH64_TLSGD_MOVW_G1: u32 = 515; +pub const R_AARCH64_TLSGD_MOVW_G0_NC: u32 = 516; +pub const R_AARCH64_TLSLD_ADR_PREL21: u32 = 517; +pub const R_AARCH64_TLSLD_ADR_PAGE21: u32 = 518; +pub const R_AARCH64_TLSLD_ADD_LO12_NC: u32 = 519; +pub const R_AARCH64_TLSLD_MOVW_G1: u32 = 520; +pub const R_AARCH64_TLSLD_MOVW_G0_NC: u32 = 521; +pub const R_AARCH64_TLSLD_LD_PREL19: u32 = 522; +pub const R_AARCH64_TLSLD_MOVW_DTPREL_G2: u32 = 523; +pub const R_AARCH64_TLSLD_MOVW_DTPREL_G1: u32 = 524; +pub const R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: u32 = 525; +pub const R_AARCH64_TLSLD_MOVW_DTPREL_G0: u32 = 526; +pub const R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: u32 = 527; +pub const R_AARCH64_TLSLD_ADD_DTPREL_HI12: u32 = 528; +pub const R_AARCH64_TLSLD_ADD_DTPREL_LO12: u32 = 529; +pub const R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: u32 = 530; +pub const R_AARCH64_TLSLD_LDST8_DTPREL_LO12: u32 = 531; +pub const R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: u32 = 532; +pub const R_AARCH64_TLSLD_LDST16_DTPREL_LO12: u32 = 533; +pub const R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: u32 = 534; +pub const R_AARCH64_TLSLD_LDST32_DTPREL_LO12: u32 = 535; +pub const R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: u32 = 536; +pub const R_AARCH64_TLSLD_LDST64_DTPREL_LO12: u32 = 537; +pub const R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: u32 = 538; +pub const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1: u32 = 539; +pub const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: u32 = 540; +pub const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: u32 = 541; +pub const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: u32 = 542; +pub const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19: u32 = 543; +pub const R_AARCH64_TLSLE_MOVW_TPREL_G2: u32 = 544; +pub const R_AARCH64_TLSLE_MOVW_TPREL_G1: u32 = 545; +pub const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC: u32 = 546; +pub const R_AARCH64_TLSLE_MOVW_TPREL_G0: u32 = 547; +pub const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC: u32 = 548; +pub const R_AARCH64_TLSLE_ADD_TPREL_HI12: u32 = 549; +pub const R_AARCH64_TLSLE_ADD_TPREL_LO12: u32 = 550; +pub const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC: u32 = 551; +pub const R_AARCH64_TLSLE_LDST8_TPREL_LO12: u32 = 552; +pub const R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: u32 = 553; +pub const R_AARCH64_TLSLE_LDST16_TPREL_LO12: u32 = 554; +pub const R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: u32 = 555; +pub const R_AARCH64_TLSLE_LDST32_TPREL_LO12: u32 = 556; +pub const R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: u32 = 557; +pub const R_AARCH64_TLSLE_LDST64_TPREL_LO12: u32 = 558; +pub const R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: u32 = 559; +pub const R_AARCH64_TLSDESC_LD_PREL19: u32 = 560; +pub const R_AARCH64_TLSDESC_ADR_PREL21: u32 = 561; +pub const R_AARCH64_TLSDESC_ADR_PAGE21: u32 = 562; +pub const R_AARCH64_TLSDESC_LD64_LO12: u32 = 563; +pub const R_AARCH64_TLSDESC_ADD_LO12: u32 = 564; +pub const R_AARCH64_TLSDESC_OFF_G1: u32 = 565; +pub const R_AARCH64_TLSDESC_OFF_G0_NC: u32 = 566; +pub const R_AARCH64_TLSDESC_LDR: u32 = 567; +pub const R_AARCH64_TLSDESC_ADD: u32 = 568; +pub const R_AARCH64_TLSDESC_CALL: u32 = 569; +pub const R_AARCH64_TLSLE_LDST128_TPREL_LO12: u32 = 570; +pub const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC: u32 = 571; +pub const R_AARCH64_TLSLD_LDST128_DTPREL_LO12: u32 = 572; +pub const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC: u32 = 573; +pub const R_AARCH64_COPY: u32 = 1024; +pub const R_AARCH64_GLOB_DAT: u32 = 1025; +pub const R_AARCH64_JUMP_SLOT: u32 = 1026; +pub const R_AARCH64_RELATIVE: u32 = 1027; +pub const R_AARCH64_TLS_DTPMOD: u32 = 1028; +pub const R_AARCH64_TLS_DTPREL: u32 = 1029; +pub const R_AARCH64_TLS_TPREL: u32 = 1030; +pub const R_AARCH64_TLSDESC: u32 = 1031; +pub const R_AARCH64_IRELATIVE: u32 = 1032; +pub const DT_AARCH64_BTI_PLT: u32 = 1879048193; +pub const DT_AARCH64_PAC_PLT: u32 = 1879048195; +pub const DT_AARCH64_VARIANT_PCS: u32 = 1879048197; +pub const DT_AARCH64_NUM: u32 = 6; +pub const STO_AARCH64_VARIANT_PCS: u32 = 128; +pub const R_ARM_NONE: u32 = 0; +pub const R_ARM_PC24: u32 = 1; +pub const R_ARM_ABS32: u32 = 2; +pub const R_ARM_REL32: u32 = 3; +pub const R_ARM_PC13: u32 = 4; +pub const R_ARM_ABS16: u32 = 5; +pub const R_ARM_ABS12: u32 = 6; +pub const R_ARM_THM_ABS5: u32 = 7; +pub const R_ARM_ABS8: u32 = 8; +pub const R_ARM_SBREL32: u32 = 9; +pub const R_ARM_THM_PC22: u32 = 10; +pub const R_ARM_THM_PC8: u32 = 11; +pub const R_ARM_AMP_VCALL9: u32 = 12; +pub const R_ARM_SWI24: u32 = 13; +pub const R_ARM_TLS_DESC: u32 = 13; +pub const R_ARM_THM_SWI8: u32 = 14; +pub const R_ARM_XPC25: u32 = 15; +pub const R_ARM_THM_XPC22: u32 = 16; +pub const R_ARM_TLS_DTPMOD32: u32 = 17; +pub const R_ARM_TLS_DTPOFF32: u32 = 18; +pub const R_ARM_TLS_TPOFF32: u32 = 19; +pub const R_ARM_COPY: u32 = 20; +pub const R_ARM_GLOB_DAT: u32 = 21; +pub const R_ARM_JUMP_SLOT: u32 = 22; +pub const R_ARM_RELATIVE: u32 = 23; +pub const R_ARM_GOTOFF: u32 = 24; +pub const R_ARM_GOTPC: u32 = 25; +pub const R_ARM_GOT32: u32 = 26; +pub const R_ARM_PLT32: u32 = 27; +pub const R_ARM_CALL: u32 = 28; +pub const R_ARM_JUMP24: u32 = 29; +pub const R_ARM_THM_JUMP24: u32 = 30; +pub const R_ARM_BASE_ABS: u32 = 31; +pub const R_ARM_ALU_PCREL_7_0: u32 = 32; +pub const R_ARM_ALU_PCREL_15_8: u32 = 33; +pub const R_ARM_ALU_PCREL_23_15: u32 = 34; +pub const R_ARM_LDR_SBREL_11_0: u32 = 35; +pub const R_ARM_ALU_SBREL_19_12: u32 = 36; +pub const R_ARM_ALU_SBREL_27_20: u32 = 37; +pub const R_ARM_TARGET1: u32 = 38; +pub const R_ARM_SBREL31: u32 = 39; +pub const R_ARM_V4BX: u32 = 40; +pub const R_ARM_TARGET2: u32 = 41; +pub const R_ARM_PREL31: u32 = 42; +pub const R_ARM_MOVW_ABS_NC: u32 = 43; +pub const R_ARM_MOVT_ABS: u32 = 44; +pub const R_ARM_MOVW_PREL_NC: u32 = 45; +pub const R_ARM_MOVT_PREL: u32 = 46; +pub const R_ARM_THM_MOVW_ABS_NC: u32 = 47; +pub const R_ARM_THM_MOVT_ABS: u32 = 48; +pub const R_ARM_THM_MOVW_PREL_NC: u32 = 49; +pub const R_ARM_THM_MOVT_PREL: u32 = 50; +pub const R_ARM_THM_JUMP19: u32 = 51; +pub const R_ARM_THM_JUMP6: u32 = 52; +pub const R_ARM_THM_ALU_PREL_11_0: u32 = 53; +pub const R_ARM_THM_PC12: u32 = 54; +pub const R_ARM_ABS32_NOI: u32 = 55; +pub const R_ARM_REL32_NOI: u32 = 56; +pub const R_ARM_ALU_PC_G0_NC: u32 = 57; +pub const R_ARM_ALU_PC_G0: u32 = 58; +pub const R_ARM_ALU_PC_G1_NC: u32 = 59; +pub const R_ARM_ALU_PC_G1: u32 = 60; +pub const R_ARM_ALU_PC_G2: u32 = 61; +pub const R_ARM_LDR_PC_G1: u32 = 62; +pub const R_ARM_LDR_PC_G2: u32 = 63; +pub const R_ARM_LDRS_PC_G0: u32 = 64; +pub const R_ARM_LDRS_PC_G1: u32 = 65; +pub const R_ARM_LDRS_PC_G2: u32 = 66; +pub const R_ARM_LDC_PC_G0: u32 = 67; +pub const R_ARM_LDC_PC_G1: u32 = 68; +pub const R_ARM_LDC_PC_G2: u32 = 69; +pub const R_ARM_ALU_SB_G0_NC: u32 = 70; +pub const R_ARM_ALU_SB_G0: u32 = 71; +pub const R_ARM_ALU_SB_G1_NC: u32 = 72; +pub const R_ARM_ALU_SB_G1: u32 = 73; +pub const R_ARM_ALU_SB_G2: u32 = 74; +pub const R_ARM_LDR_SB_G0: u32 = 75; +pub const R_ARM_LDR_SB_G1: u32 = 76; +pub const R_ARM_LDR_SB_G2: u32 = 77; +pub const R_ARM_LDRS_SB_G0: u32 = 78; +pub const R_ARM_LDRS_SB_G1: u32 = 79; +pub const R_ARM_LDRS_SB_G2: u32 = 80; +pub const R_ARM_LDC_SB_G0: u32 = 81; +pub const R_ARM_LDC_SB_G1: u32 = 82; +pub const R_ARM_LDC_SB_G2: u32 = 83; +pub const R_ARM_MOVW_BREL_NC: u32 = 84; +pub const R_ARM_MOVT_BREL: u32 = 85; +pub const R_ARM_MOVW_BREL: u32 = 86; +pub const R_ARM_THM_MOVW_BREL_NC: u32 = 87; +pub const R_ARM_THM_MOVT_BREL: u32 = 88; +pub const R_ARM_THM_MOVW_BREL: u32 = 89; +pub const R_ARM_TLS_GOTDESC: u32 = 90; +pub const R_ARM_TLS_CALL: u32 = 91; +pub const R_ARM_TLS_DESCSEQ: u32 = 92; +pub const R_ARM_THM_TLS_CALL: u32 = 93; +pub const R_ARM_PLT32_ABS: u32 = 94; +pub const R_ARM_GOT_ABS: u32 = 95; +pub const R_ARM_GOT_PREL: u32 = 96; +pub const R_ARM_GOT_BREL12: u32 = 97; +pub const R_ARM_GOTOFF12: u32 = 98; +pub const R_ARM_GOTRELAX: u32 = 99; +pub const R_ARM_GNU_VTENTRY: u32 = 100; +pub const R_ARM_GNU_VTINHERIT: u32 = 101; +pub const R_ARM_THM_PC11: u32 = 102; +pub const R_ARM_THM_PC9: u32 = 103; +pub const R_ARM_TLS_GD32: u32 = 104; +pub const R_ARM_TLS_LDM32: u32 = 105; +pub const R_ARM_TLS_LDO32: u32 = 106; +pub const R_ARM_TLS_IE32: u32 = 107; +pub const R_ARM_TLS_LE32: u32 = 108; +pub const R_ARM_TLS_LDO12: u32 = 109; +pub const R_ARM_TLS_LE12: u32 = 110; +pub const R_ARM_TLS_IE12GP: u32 = 111; +pub const R_ARM_ME_TOO: u32 = 128; +pub const R_ARM_THM_TLS_DESCSEQ: u32 = 129; +pub const R_ARM_THM_TLS_DESCSEQ16: u32 = 129; +pub const R_ARM_THM_TLS_DESCSEQ32: u32 = 130; +pub const R_ARM_THM_GOT_BREL12: u32 = 131; +pub const R_ARM_IRELATIVE: u32 = 160; +pub const R_ARM_RXPC25: u32 = 249; +pub const R_ARM_RSBREL32: u32 = 250; +pub const R_ARM_THM_RPC22: u32 = 251; +pub const R_ARM_RREL32: u32 = 252; +pub const R_ARM_RABS22: u32 = 253; +pub const R_ARM_RPC24: u32 = 254; +pub const R_ARM_RBASE: u32 = 255; +pub const R_ARM_NUM: u32 = 256; +pub const R_CKCORE_NONE: u32 = 0; +pub const R_CKCORE_ADDR32: u32 = 1; +pub const R_CKCORE_PCRELIMM8BY4: u32 = 2; +pub const R_CKCORE_PCRELIMM11BY2: u32 = 3; +pub const R_CKCORE_PCREL32: u32 = 5; +pub const R_CKCORE_PCRELJSR_IMM11BY2: u32 = 6; +pub const R_CKCORE_RELATIVE: u32 = 9; +pub const R_CKCORE_COPY: u32 = 10; +pub const R_CKCORE_GLOB_DAT: u32 = 11; +pub const R_CKCORE_JUMP_SLOT: u32 = 12; +pub const R_CKCORE_GOTOFF: u32 = 13; +pub const R_CKCORE_GOTPC: u32 = 14; +pub const R_CKCORE_GOT32: u32 = 15; +pub const R_CKCORE_PLT32: u32 = 16; +pub const R_CKCORE_ADDRGOT: u32 = 17; +pub const R_CKCORE_ADDRPLT: u32 = 18; +pub const R_CKCORE_PCREL_IMM26BY2: u32 = 19; +pub const R_CKCORE_PCREL_IMM16BY2: u32 = 20; +pub const R_CKCORE_PCREL_IMM16BY4: u32 = 21; +pub const R_CKCORE_PCREL_IMM10BY2: u32 = 22; +pub const R_CKCORE_PCREL_IMM10BY4: u32 = 23; +pub const R_CKCORE_ADDR_HI16: u32 = 24; +pub const R_CKCORE_ADDR_LO16: u32 = 25; +pub const R_CKCORE_GOTPC_HI16: u32 = 26; +pub const R_CKCORE_GOTPC_LO16: u32 = 27; +pub const R_CKCORE_GOTOFF_HI16: u32 = 28; +pub const R_CKCORE_GOTOFF_LO16: u32 = 29; +pub const R_CKCORE_GOT12: u32 = 30; +pub const R_CKCORE_GOT_HI16: u32 = 31; +pub const R_CKCORE_GOT_LO16: u32 = 32; +pub const R_CKCORE_PLT12: u32 = 33; +pub const R_CKCORE_PLT_HI16: u32 = 34; +pub const R_CKCORE_PLT_LO16: u32 = 35; +pub const R_CKCORE_ADDRGOT_HI16: u32 = 36; +pub const R_CKCORE_ADDRGOT_LO16: u32 = 37; +pub const R_CKCORE_ADDRPLT_HI16: u32 = 38; +pub const R_CKCORE_ADDRPLT_LO16: u32 = 39; +pub const R_CKCORE_PCREL_JSR_IMM26BY2: u32 = 40; +pub const R_CKCORE_TOFFSET_LO16: u32 = 41; +pub const R_CKCORE_DOFFSET_LO16: u32 = 42; +pub const R_CKCORE_PCREL_IMM18BY2: u32 = 43; +pub const R_CKCORE_DOFFSET_IMM18: u32 = 44; +pub const R_CKCORE_DOFFSET_IMM18BY2: u32 = 45; +pub const R_CKCORE_DOFFSET_IMM18BY4: u32 = 46; +pub const R_CKCORE_GOT_IMM18BY4: u32 = 48; +pub const R_CKCORE_PLT_IMM18BY4: u32 = 49; +pub const R_CKCORE_PCREL_IMM7BY4: u32 = 50; +pub const R_CKCORE_TLS_LE32: u32 = 51; +pub const R_CKCORE_TLS_IE32: u32 = 52; +pub const R_CKCORE_TLS_GD32: u32 = 53; +pub const R_CKCORE_TLS_LDM32: u32 = 54; +pub const R_CKCORE_TLS_LDO32: u32 = 55; +pub const R_CKCORE_TLS_DTPMOD32: u32 = 56; +pub const R_CKCORE_TLS_DTPOFF32: u32 = 57; +pub const R_CKCORE_TLS_TPOFF32: u32 = 58; +pub const EF_CSKY_ABIMASK: u32 = 4026531840; +pub const EF_CSKY_OTHER: u32 = 268369920; +pub const EF_CSKY_PROCESSOR: u32 = 65535; +pub const EF_CSKY_ABIV1: u32 = 268435456; +pub const EF_CSKY_ABIV2: u32 = 536870912; +pub const SHT_CSKY_ATTRIBUTES: u32 = 1879048193; +pub const EF_IA_64_MASKOS: u32 = 15; +pub const EF_IA_64_ABI64: u32 = 16; +pub const EF_IA_64_ARCH: u32 = 4278190080; +pub const PT_IA_64_ARCHEXT: u32 = 1879048192; +pub const PT_IA_64_UNWIND: u32 = 1879048193; +pub const PT_IA_64_HP_OPT_ANOT: u32 = 1610612754; +pub const PT_IA_64_HP_HSL_ANOT: u32 = 1610612755; +pub const PT_IA_64_HP_STACK: u32 = 1610612756; +pub const PF_IA_64_NORECOV: u32 = 2147483648; +pub const SHT_IA_64_EXT: u32 = 1879048192; +pub const SHT_IA_64_UNWIND: u32 = 1879048193; +pub const SHF_IA_64_SHORT: u32 = 268435456; +pub const SHF_IA_64_NORECOV: u32 = 536870912; +pub const DT_IA_64_PLT_RESERVE: u32 = 1879048192; +pub const DT_IA_64_NUM: u32 = 1; +pub const R_IA64_NONE: u32 = 0; +pub const R_IA64_IMM14: u32 = 33; +pub const R_IA64_IMM22: u32 = 34; +pub const R_IA64_IMM64: u32 = 35; +pub const R_IA64_DIR32MSB: u32 = 36; +pub const R_IA64_DIR32LSB: u32 = 37; +pub const R_IA64_DIR64MSB: u32 = 38; +pub const R_IA64_DIR64LSB: u32 = 39; +pub const R_IA64_GPREL22: u32 = 42; +pub const R_IA64_GPREL64I: u32 = 43; +pub const R_IA64_GPREL32MSB: u32 = 44; +pub const R_IA64_GPREL32LSB: u32 = 45; +pub const R_IA64_GPREL64MSB: u32 = 46; +pub const R_IA64_GPREL64LSB: u32 = 47; +pub const R_IA64_LTOFF22: u32 = 50; +pub const R_IA64_LTOFF64I: u32 = 51; +pub const R_IA64_PLTOFF22: u32 = 58; +pub const R_IA64_PLTOFF64I: u32 = 59; +pub const R_IA64_PLTOFF64MSB: u32 = 62; +pub const R_IA64_PLTOFF64LSB: u32 = 63; +pub const R_IA64_FPTR64I: u32 = 67; +pub const R_IA64_FPTR32MSB: u32 = 68; +pub const R_IA64_FPTR32LSB: u32 = 69; +pub const R_IA64_FPTR64MSB: u32 = 70; +pub const R_IA64_FPTR64LSB: u32 = 71; +pub const R_IA64_PCREL60B: u32 = 72; +pub const R_IA64_PCREL21B: u32 = 73; +pub const R_IA64_PCREL21M: u32 = 74; +pub const R_IA64_PCREL21F: u32 = 75; +pub const R_IA64_PCREL32MSB: u32 = 76; +pub const R_IA64_PCREL32LSB: u32 = 77; +pub const R_IA64_PCREL64MSB: u32 = 78; +pub const R_IA64_PCREL64LSB: u32 = 79; +pub const R_IA64_LTOFF_FPTR22: u32 = 82; +pub const R_IA64_LTOFF_FPTR64I: u32 = 83; +pub const R_IA64_LTOFF_FPTR32MSB: u32 = 84; +pub const R_IA64_LTOFF_FPTR32LSB: u32 = 85; +pub const R_IA64_LTOFF_FPTR64MSB: u32 = 86; +pub const R_IA64_LTOFF_FPTR64LSB: u32 = 87; +pub const R_IA64_SEGREL32MSB: u32 = 92; +pub const R_IA64_SEGREL32LSB: u32 = 93; +pub const R_IA64_SEGREL64MSB: u32 = 94; +pub const R_IA64_SEGREL64LSB: u32 = 95; +pub const R_IA64_SECREL32MSB: u32 = 100; +pub const R_IA64_SECREL32LSB: u32 = 101; +pub const R_IA64_SECREL64MSB: u32 = 102; +pub const R_IA64_SECREL64LSB: u32 = 103; +pub const R_IA64_REL32MSB: u32 = 108; +pub const R_IA64_REL32LSB: u32 = 109; +pub const R_IA64_REL64MSB: u32 = 110; +pub const R_IA64_REL64LSB: u32 = 111; +pub const R_IA64_LTV32MSB: u32 = 116; +pub const R_IA64_LTV32LSB: u32 = 117; +pub const R_IA64_LTV64MSB: u32 = 118; +pub const R_IA64_LTV64LSB: u32 = 119; +pub const R_IA64_PCREL21BI: u32 = 121; +pub const R_IA64_PCREL22: u32 = 122; +pub const R_IA64_PCREL64I: u32 = 123; +pub const R_IA64_IPLTMSB: u32 = 128; +pub const R_IA64_IPLTLSB: u32 = 129; +pub const R_IA64_COPY: u32 = 132; +pub const R_IA64_SUB: u32 = 133; +pub const R_IA64_LTOFF22X: u32 = 134; +pub const R_IA64_LDXMOV: u32 = 135; +pub const R_IA64_TPREL14: u32 = 145; +pub const R_IA64_TPREL22: u32 = 146; +pub const R_IA64_TPREL64I: u32 = 147; +pub const R_IA64_TPREL64MSB: u32 = 150; +pub const R_IA64_TPREL64LSB: u32 = 151; +pub const R_IA64_LTOFF_TPREL22: u32 = 154; +pub const R_IA64_DTPMOD64MSB: u32 = 166; +pub const R_IA64_DTPMOD64LSB: u32 = 167; +pub const R_IA64_LTOFF_DTPMOD22: u32 = 170; +pub const R_IA64_DTPREL14: u32 = 177; +pub const R_IA64_DTPREL22: u32 = 178; +pub const R_IA64_DTPREL64I: u32 = 179; +pub const R_IA64_DTPREL32MSB: u32 = 180; +pub const R_IA64_DTPREL32LSB: u32 = 181; +pub const R_IA64_DTPREL64MSB: u32 = 182; +pub const R_IA64_DTPREL64LSB: u32 = 183; +pub const R_IA64_LTOFF_DTPREL22: u32 = 186; +pub const EF_SH_MACH_MASK: u32 = 31; +pub const EF_SH_UNKNOWN: u32 = 0; +pub const EF_SH1: u32 = 1; +pub const EF_SH2: u32 = 2; +pub const EF_SH3: u32 = 3; +pub const EF_SH_DSP: u32 = 4; +pub const EF_SH3_DSP: u32 = 5; +pub const EF_SH4AL_DSP: u32 = 6; +pub const EF_SH3E: u32 = 8; +pub const EF_SH4: u32 = 9; +pub const EF_SH2E: u32 = 11; +pub const EF_SH4A: u32 = 12; +pub const EF_SH2A: u32 = 13; +pub const EF_SH4_NOFPU: u32 = 16; +pub const EF_SH4A_NOFPU: u32 = 17; +pub const EF_SH4_NOMMU_NOFPU: u32 = 18; +pub const EF_SH2A_NOFPU: u32 = 19; +pub const EF_SH3_NOMMU: u32 = 20; +pub const EF_SH2A_SH4_NOFPU: u32 = 21; +pub const EF_SH2A_SH3_NOFPU: u32 = 22; +pub const EF_SH2A_SH4: u32 = 23; +pub const EF_SH2A_SH3E: u32 = 24; +pub const R_SH_NONE: u32 = 0; +pub const R_SH_DIR32: u32 = 1; +pub const R_SH_REL32: u32 = 2; +pub const R_SH_DIR8WPN: u32 = 3; +pub const R_SH_IND12W: u32 = 4; +pub const R_SH_DIR8WPL: u32 = 5; +pub const R_SH_DIR8WPZ: u32 = 6; +pub const R_SH_DIR8BP: u32 = 7; +pub const R_SH_DIR8W: u32 = 8; +pub const R_SH_DIR8L: u32 = 9; +pub const R_SH_SWITCH16: u32 = 25; +pub const R_SH_SWITCH32: u32 = 26; +pub const R_SH_USES: u32 = 27; +pub const R_SH_COUNT: u32 = 28; +pub const R_SH_ALIGN: u32 = 29; +pub const R_SH_CODE: u32 = 30; +pub const R_SH_DATA: u32 = 31; +pub const R_SH_LABEL: u32 = 32; +pub const R_SH_SWITCH8: u32 = 33; +pub const R_SH_GNU_VTINHERIT: u32 = 34; +pub const R_SH_GNU_VTENTRY: u32 = 35; +pub const R_SH_TLS_GD_32: u32 = 144; +pub const R_SH_TLS_LD_32: u32 = 145; +pub const R_SH_TLS_LDO_32: u32 = 146; +pub const R_SH_TLS_IE_32: u32 = 147; +pub const R_SH_TLS_LE_32: u32 = 148; +pub const R_SH_TLS_DTPMOD32: u32 = 149; +pub const R_SH_TLS_DTPOFF32: u32 = 150; +pub const R_SH_TLS_TPOFF32: u32 = 151; +pub const R_SH_GOT32: u32 = 160; +pub const R_SH_PLT32: u32 = 161; +pub const R_SH_COPY: u32 = 162; +pub const R_SH_GLOB_DAT: u32 = 163; +pub const R_SH_JMP_SLOT: u32 = 164; +pub const R_SH_RELATIVE: u32 = 165; +pub const R_SH_GOTOFF: u32 = 166; +pub const R_SH_GOTPC: u32 = 167; +pub const R_SH_NUM: u32 = 256; +pub const EF_S390_HIGH_GPRS: u32 = 1; +pub const R_390_NONE: u32 = 0; +pub const R_390_8: u32 = 1; +pub const R_390_12: u32 = 2; +pub const R_390_16: u32 = 3; +pub const R_390_32: u32 = 4; +pub const R_390_PC32: u32 = 5; +pub const R_390_GOT12: u32 = 6; +pub const R_390_GOT32: u32 = 7; +pub const R_390_PLT32: u32 = 8; +pub const R_390_COPY: u32 = 9; +pub const R_390_GLOB_DAT: u32 = 10; +pub const R_390_JMP_SLOT: u32 = 11; +pub const R_390_RELATIVE: u32 = 12; +pub const R_390_GOTOFF32: u32 = 13; +pub const R_390_GOTPC: u32 = 14; +pub const R_390_GOT16: u32 = 15; +pub const R_390_PC16: u32 = 16; +pub const R_390_PC16DBL: u32 = 17; +pub const R_390_PLT16DBL: u32 = 18; +pub const R_390_PC32DBL: u32 = 19; +pub const R_390_PLT32DBL: u32 = 20; +pub const R_390_GOTPCDBL: u32 = 21; +pub const R_390_64: u32 = 22; +pub const R_390_PC64: u32 = 23; +pub const R_390_GOT64: u32 = 24; +pub const R_390_PLT64: u32 = 25; +pub const R_390_GOTENT: u32 = 26; +pub const R_390_GOTOFF16: u32 = 27; +pub const R_390_GOTOFF64: u32 = 28; +pub const R_390_GOTPLT12: u32 = 29; +pub const R_390_GOTPLT16: u32 = 30; +pub const R_390_GOTPLT32: u32 = 31; +pub const R_390_GOTPLT64: u32 = 32; +pub const R_390_GOTPLTENT: u32 = 33; +pub const R_390_PLTOFF16: u32 = 34; +pub const R_390_PLTOFF32: u32 = 35; +pub const R_390_PLTOFF64: u32 = 36; +pub const R_390_TLS_LOAD: u32 = 37; +pub const R_390_TLS_GDCALL: u32 = 38; +pub const R_390_TLS_LDCALL: u32 = 39; +pub const R_390_TLS_GD32: u32 = 40; +pub const R_390_TLS_GD64: u32 = 41; +pub const R_390_TLS_GOTIE12: u32 = 42; +pub const R_390_TLS_GOTIE32: u32 = 43; +pub const R_390_TLS_GOTIE64: u32 = 44; +pub const R_390_TLS_LDM32: u32 = 45; +pub const R_390_TLS_LDM64: u32 = 46; +pub const R_390_TLS_IE32: u32 = 47; +pub const R_390_TLS_IE64: u32 = 48; +pub const R_390_TLS_IEENT: u32 = 49; +pub const R_390_TLS_LE32: u32 = 50; +pub const R_390_TLS_LE64: u32 = 51; +pub const R_390_TLS_LDO32: u32 = 52; +pub const R_390_TLS_LDO64: u32 = 53; +pub const R_390_TLS_DTPMOD: u32 = 54; +pub const R_390_TLS_DTPOFF: u32 = 55; +pub const R_390_TLS_TPOFF: u32 = 56; +pub const R_390_20: u32 = 57; +pub const R_390_GOT20: u32 = 58; +pub const R_390_GOTPLT20: u32 = 59; +pub const R_390_TLS_GOTIE20: u32 = 60; +pub const R_390_IRELATIVE: u32 = 61; +pub const R_390_NUM: u32 = 62; +pub const R_CRIS_NONE: u32 = 0; +pub const R_CRIS_8: u32 = 1; +pub const R_CRIS_16: u32 = 2; +pub const R_CRIS_32: u32 = 3; +pub const R_CRIS_8_PCREL: u32 = 4; +pub const R_CRIS_16_PCREL: u32 = 5; +pub const R_CRIS_32_PCREL: u32 = 6; +pub const R_CRIS_GNU_VTINHERIT: u32 = 7; +pub const R_CRIS_GNU_VTENTRY: u32 = 8; +pub const R_CRIS_COPY: u32 = 9; +pub const R_CRIS_GLOB_DAT: u32 = 10; +pub const R_CRIS_JUMP_SLOT: u32 = 11; +pub const R_CRIS_RELATIVE: u32 = 12; +pub const R_CRIS_16_GOT: u32 = 13; +pub const R_CRIS_32_GOT: u32 = 14; +pub const R_CRIS_16_GOTPLT: u32 = 15; +pub const R_CRIS_32_GOTPLT: u32 = 16; +pub const R_CRIS_32_GOTREL: u32 = 17; +pub const R_CRIS_32_PLT_GOTREL: u32 = 18; +pub const R_CRIS_32_PLT_PCREL: u32 = 19; +pub const R_CRIS_NUM: u32 = 20; +pub const R_X86_64_NONE: u32 = 0; +pub const R_X86_64_64: u32 = 1; +pub const R_X86_64_PC32: u32 = 2; +pub const R_X86_64_GOT32: u32 = 3; +pub const R_X86_64_PLT32: u32 = 4; +pub const R_X86_64_COPY: u32 = 5; +pub const R_X86_64_GLOB_DAT: u32 = 6; +pub const R_X86_64_JUMP_SLOT: u32 = 7; +pub const R_X86_64_RELATIVE: u32 = 8; +pub const R_X86_64_GOTPCREL: u32 = 9; +pub const R_X86_64_32: u32 = 10; +pub const R_X86_64_32S: u32 = 11; +pub const R_X86_64_16: u32 = 12; +pub const R_X86_64_PC16: u32 = 13; +pub const R_X86_64_8: u32 = 14; +pub const R_X86_64_PC8: u32 = 15; +pub const R_X86_64_DTPMOD64: u32 = 16; +pub const R_X86_64_DTPOFF64: u32 = 17; +pub const R_X86_64_TPOFF64: u32 = 18; +pub const R_X86_64_TLSGD: u32 = 19; +pub const R_X86_64_TLSLD: u32 = 20; +pub const R_X86_64_DTPOFF32: u32 = 21; +pub const R_X86_64_GOTTPOFF: u32 = 22; +pub const R_X86_64_TPOFF32: u32 = 23; +pub const R_X86_64_PC64: u32 = 24; +pub const R_X86_64_GOTOFF64: u32 = 25; +pub const R_X86_64_GOTPC32: u32 = 26; +pub const R_X86_64_GOT64: u32 = 27; +pub const R_X86_64_GOTPCREL64: u32 = 28; +pub const R_X86_64_GOTPC64: u32 = 29; +pub const R_X86_64_GOTPLT64: u32 = 30; +pub const R_X86_64_PLTOFF64: u32 = 31; +pub const R_X86_64_SIZE32: u32 = 32; +pub const R_X86_64_SIZE64: u32 = 33; +pub const R_X86_64_GOTPC32_TLSDESC: u32 = 34; +pub const R_X86_64_TLSDESC_CALL: u32 = 35; +pub const R_X86_64_TLSDESC: u32 = 36; +pub const R_X86_64_IRELATIVE: u32 = 37; +pub const R_X86_64_RELATIVE64: u32 = 38; +pub const R_X86_64_GOTPCRELX: u32 = 41; +pub const R_X86_64_REX_GOTPCRELX: u32 = 42; +pub const R_X86_64_NUM: u32 = 43; +pub const SHT_X86_64_UNWIND: u32 = 1879048193; +pub const R_MN10300_NONE: u32 = 0; +pub const R_MN10300_32: u32 = 1; +pub const R_MN10300_16: u32 = 2; +pub const R_MN10300_8: u32 = 3; +pub const R_MN10300_PCREL32: u32 = 4; +pub const R_MN10300_PCREL16: u32 = 5; +pub const R_MN10300_PCREL8: u32 = 6; +pub const R_MN10300_GNU_VTINHERIT: u32 = 7; +pub const R_MN10300_GNU_VTENTRY: u32 = 8; +pub const R_MN10300_24: u32 = 9; +pub const R_MN10300_GOTPC32: u32 = 10; +pub const R_MN10300_GOTPC16: u32 = 11; +pub const R_MN10300_GOTOFF32: u32 = 12; +pub const R_MN10300_GOTOFF24: u32 = 13; +pub const R_MN10300_GOTOFF16: u32 = 14; +pub const R_MN10300_PLT32: u32 = 15; +pub const R_MN10300_PLT16: u32 = 16; +pub const R_MN10300_GOT32: u32 = 17; +pub const R_MN10300_GOT24: u32 = 18; +pub const R_MN10300_GOT16: u32 = 19; +pub const R_MN10300_COPY: u32 = 20; +pub const R_MN10300_GLOB_DAT: u32 = 21; +pub const R_MN10300_JMP_SLOT: u32 = 22; +pub const R_MN10300_RELATIVE: u32 = 23; +pub const R_MN10300_TLS_GD: u32 = 24; +pub const R_MN10300_TLS_LD: u32 = 25; +pub const R_MN10300_TLS_LDO: u32 = 26; +pub const R_MN10300_TLS_GOTIE: u32 = 27; +pub const R_MN10300_TLS_IE: u32 = 28; +pub const R_MN10300_TLS_LE: u32 = 29; +pub const R_MN10300_TLS_DTPMOD: u32 = 30; +pub const R_MN10300_TLS_DTPOFF: u32 = 31; +pub const R_MN10300_TLS_TPOFF: u32 = 32; +pub const R_MN10300_SYM_DIFF: u32 = 33; +pub const R_MN10300_ALIGN: u32 = 34; +pub const R_MN10300_NUM: u32 = 35; +pub const R_M32R_NONE: u32 = 0; +pub const R_M32R_16: u32 = 1; +pub const R_M32R_32: u32 = 2; +pub const R_M32R_24: u32 = 3; +pub const R_M32R_10_PCREL: u32 = 4; +pub const R_M32R_18_PCREL: u32 = 5; +pub const R_M32R_26_PCREL: u32 = 6; +pub const R_M32R_HI16_ULO: u32 = 7; +pub const R_M32R_HI16_SLO: u32 = 8; +pub const R_M32R_LO16: u32 = 9; +pub const R_M32R_SDA16: u32 = 10; +pub const R_M32R_GNU_VTINHERIT: u32 = 11; +pub const R_M32R_GNU_VTENTRY: u32 = 12; +pub const R_M32R_16_RELA: u32 = 33; +pub const R_M32R_32_RELA: u32 = 34; +pub const R_M32R_24_RELA: u32 = 35; +pub const R_M32R_10_PCREL_RELA: u32 = 36; +pub const R_M32R_18_PCREL_RELA: u32 = 37; +pub const R_M32R_26_PCREL_RELA: u32 = 38; +pub const R_M32R_HI16_ULO_RELA: u32 = 39; +pub const R_M32R_HI16_SLO_RELA: u32 = 40; +pub const R_M32R_LO16_RELA: u32 = 41; +pub const R_M32R_SDA16_RELA: u32 = 42; +pub const R_M32R_RELA_GNU_VTINHERIT: u32 = 43; +pub const R_M32R_RELA_GNU_VTENTRY: u32 = 44; +pub const R_M32R_REL32: u32 = 45; +pub const R_M32R_GOT24: u32 = 48; +pub const R_M32R_26_PLTREL: u32 = 49; +pub const R_M32R_COPY: u32 = 50; +pub const R_M32R_GLOB_DAT: u32 = 51; +pub const R_M32R_JMP_SLOT: u32 = 52; +pub const R_M32R_RELATIVE: u32 = 53; +pub const R_M32R_GOTOFF: u32 = 54; +pub const R_M32R_GOTPC24: u32 = 55; +pub const R_M32R_GOT16_HI_ULO: u32 = 56; +pub const R_M32R_GOT16_HI_SLO: u32 = 57; +pub const R_M32R_GOT16_LO: u32 = 58; +pub const R_M32R_GOTPC_HI_ULO: u32 = 59; +pub const R_M32R_GOTPC_HI_SLO: u32 = 60; +pub const R_M32R_GOTPC_LO: u32 = 61; +pub const R_M32R_GOTOFF_HI_ULO: u32 = 62; +pub const R_M32R_GOTOFF_HI_SLO: u32 = 63; +pub const R_M32R_GOTOFF_LO: u32 = 64; +pub const R_M32R_NUM: u32 = 256; +pub const R_MICROBLAZE_NONE: u32 = 0; +pub const R_MICROBLAZE_32: u32 = 1; +pub const R_MICROBLAZE_32_PCREL: u32 = 2; +pub const R_MICROBLAZE_64_PCREL: u32 = 3; +pub const R_MICROBLAZE_32_PCREL_LO: u32 = 4; +pub const R_MICROBLAZE_64: u32 = 5; +pub const R_MICROBLAZE_32_LO: u32 = 6; +pub const R_MICROBLAZE_SRO32: u32 = 7; +pub const R_MICROBLAZE_SRW32: u32 = 8; +pub const R_MICROBLAZE_64_NONE: u32 = 9; +pub const R_MICROBLAZE_32_SYM_OP_SYM: u32 = 10; +pub const R_MICROBLAZE_GNU_VTINHERIT: u32 = 11; +pub const R_MICROBLAZE_GNU_VTENTRY: u32 = 12; +pub const R_MICROBLAZE_GOTPC_64: u32 = 13; +pub const R_MICROBLAZE_GOT_64: u32 = 14; +pub const R_MICROBLAZE_PLT_64: u32 = 15; +pub const R_MICROBLAZE_REL: u32 = 16; +pub const R_MICROBLAZE_JUMP_SLOT: u32 = 17; +pub const R_MICROBLAZE_GLOB_DAT: u32 = 18; +pub const R_MICROBLAZE_GOTOFF_64: u32 = 19; +pub const R_MICROBLAZE_GOTOFF_32: u32 = 20; +pub const R_MICROBLAZE_COPY: u32 = 21; +pub const R_MICROBLAZE_TLS: u32 = 22; +pub const R_MICROBLAZE_TLSGD: u32 = 23; +pub const R_MICROBLAZE_TLSLD: u32 = 24; +pub const R_MICROBLAZE_TLSDTPMOD32: u32 = 25; +pub const R_MICROBLAZE_TLSDTPREL32: u32 = 26; +pub const R_MICROBLAZE_TLSDTPREL64: u32 = 27; +pub const R_MICROBLAZE_TLSGOTTPREL32: u32 = 28; +pub const R_MICROBLAZE_TLSTPREL32: u32 = 29; +pub const DT_NIOS2_GP: u32 = 1879048194; +pub const R_NIOS2_NONE: u32 = 0; +pub const R_NIOS2_S16: u32 = 1; +pub const R_NIOS2_U16: u32 = 2; +pub const R_NIOS2_PCREL16: u32 = 3; +pub const R_NIOS2_CALL26: u32 = 4; +pub const R_NIOS2_IMM5: u32 = 5; +pub const R_NIOS2_CACHE_OPX: u32 = 6; +pub const R_NIOS2_IMM6: u32 = 7; +pub const R_NIOS2_IMM8: u32 = 8; +pub const R_NIOS2_HI16: u32 = 9; +pub const R_NIOS2_LO16: u32 = 10; +pub const R_NIOS2_HIADJ16: u32 = 11; +pub const R_NIOS2_BFD_RELOC_32: u32 = 12; +pub const R_NIOS2_BFD_RELOC_16: u32 = 13; +pub const R_NIOS2_BFD_RELOC_8: u32 = 14; +pub const R_NIOS2_GPREL: u32 = 15; +pub const R_NIOS2_GNU_VTINHERIT: u32 = 16; +pub const R_NIOS2_GNU_VTENTRY: u32 = 17; +pub const R_NIOS2_UJMP: u32 = 18; +pub const R_NIOS2_CJMP: u32 = 19; +pub const R_NIOS2_CALLR: u32 = 20; +pub const R_NIOS2_ALIGN: u32 = 21; +pub const R_NIOS2_GOT16: u32 = 22; +pub const R_NIOS2_CALL16: u32 = 23; +pub const R_NIOS2_GOTOFF_LO: u32 = 24; +pub const R_NIOS2_GOTOFF_HA: u32 = 25; +pub const R_NIOS2_PCREL_LO: u32 = 26; +pub const R_NIOS2_PCREL_HA: u32 = 27; +pub const R_NIOS2_TLS_GD16: u32 = 28; +pub const R_NIOS2_TLS_LDM16: u32 = 29; +pub const R_NIOS2_TLS_LDO16: u32 = 30; +pub const R_NIOS2_TLS_IE16: u32 = 31; +pub const R_NIOS2_TLS_LE16: u32 = 32; +pub const R_NIOS2_TLS_DTPMOD: u32 = 33; +pub const R_NIOS2_TLS_DTPREL: u32 = 34; +pub const R_NIOS2_TLS_TPREL: u32 = 35; +pub const R_NIOS2_COPY: u32 = 36; +pub const R_NIOS2_GLOB_DAT: u32 = 37; +pub const R_NIOS2_JUMP_SLOT: u32 = 38; +pub const R_NIOS2_RELATIVE: u32 = 39; +pub const R_NIOS2_GOTOFF: u32 = 40; +pub const R_NIOS2_CALL26_NOAT: u32 = 41; +pub const R_NIOS2_GOT_LO: u32 = 42; +pub const R_NIOS2_GOT_HA: u32 = 43; +pub const R_NIOS2_CALL_LO: u32 = 44; +pub const R_NIOS2_CALL_HA: u32 = 45; +pub const R_TILEPRO_NONE: u32 = 0; +pub const R_TILEPRO_32: u32 = 1; +pub const R_TILEPRO_16: u32 = 2; +pub const R_TILEPRO_8: u32 = 3; +pub const R_TILEPRO_32_PCREL: u32 = 4; +pub const R_TILEPRO_16_PCREL: u32 = 5; +pub const R_TILEPRO_8_PCREL: u32 = 6; +pub const R_TILEPRO_LO16: u32 = 7; +pub const R_TILEPRO_HI16: u32 = 8; +pub const R_TILEPRO_HA16: u32 = 9; +pub const R_TILEPRO_COPY: u32 = 10; +pub const R_TILEPRO_GLOB_DAT: u32 = 11; +pub const R_TILEPRO_JMP_SLOT: u32 = 12; +pub const R_TILEPRO_RELATIVE: u32 = 13; +pub const R_TILEPRO_BROFF_X1: u32 = 14; +pub const R_TILEPRO_JOFFLONG_X1: u32 = 15; +pub const R_TILEPRO_JOFFLONG_X1_PLT: u32 = 16; +pub const R_TILEPRO_IMM8_X0: u32 = 17; +pub const R_TILEPRO_IMM8_Y0: u32 = 18; +pub const R_TILEPRO_IMM8_X1: u32 = 19; +pub const R_TILEPRO_IMM8_Y1: u32 = 20; +pub const R_TILEPRO_MT_IMM15_X1: u32 = 21; +pub const R_TILEPRO_MF_IMM15_X1: u32 = 22; +pub const R_TILEPRO_IMM16_X0: u32 = 23; +pub const R_TILEPRO_IMM16_X1: u32 = 24; +pub const R_TILEPRO_IMM16_X0_LO: u32 = 25; +pub const R_TILEPRO_IMM16_X1_LO: u32 = 26; +pub const R_TILEPRO_IMM16_X0_HI: u32 = 27; +pub const R_TILEPRO_IMM16_X1_HI: u32 = 28; +pub const R_TILEPRO_IMM16_X0_HA: u32 = 29; +pub const R_TILEPRO_IMM16_X1_HA: u32 = 30; +pub const R_TILEPRO_IMM16_X0_PCREL: u32 = 31; +pub const R_TILEPRO_IMM16_X1_PCREL: u32 = 32; +pub const R_TILEPRO_IMM16_X0_LO_PCREL: u32 = 33; +pub const R_TILEPRO_IMM16_X1_LO_PCREL: u32 = 34; +pub const R_TILEPRO_IMM16_X0_HI_PCREL: u32 = 35; +pub const R_TILEPRO_IMM16_X1_HI_PCREL: u32 = 36; +pub const R_TILEPRO_IMM16_X0_HA_PCREL: u32 = 37; +pub const R_TILEPRO_IMM16_X1_HA_PCREL: u32 = 38; +pub const R_TILEPRO_IMM16_X0_GOT: u32 = 39; +pub const R_TILEPRO_IMM16_X1_GOT: u32 = 40; +pub const R_TILEPRO_IMM16_X0_GOT_LO: u32 = 41; +pub const R_TILEPRO_IMM16_X1_GOT_LO: u32 = 42; +pub const R_TILEPRO_IMM16_X0_GOT_HI: u32 = 43; +pub const R_TILEPRO_IMM16_X1_GOT_HI: u32 = 44; +pub const R_TILEPRO_IMM16_X0_GOT_HA: u32 = 45; +pub const R_TILEPRO_IMM16_X1_GOT_HA: u32 = 46; +pub const R_TILEPRO_MMSTART_X0: u32 = 47; +pub const R_TILEPRO_MMEND_X0: u32 = 48; +pub const R_TILEPRO_MMSTART_X1: u32 = 49; +pub const R_TILEPRO_MMEND_X1: u32 = 50; +pub const R_TILEPRO_SHAMT_X0: u32 = 51; +pub const R_TILEPRO_SHAMT_X1: u32 = 52; +pub const R_TILEPRO_SHAMT_Y0: u32 = 53; +pub const R_TILEPRO_SHAMT_Y1: u32 = 54; +pub const R_TILEPRO_DEST_IMM8_X1: u32 = 55; +pub const R_TILEPRO_TLS_GD_CALL: u32 = 60; +pub const R_TILEPRO_IMM8_X0_TLS_GD_ADD: u32 = 61; +pub const R_TILEPRO_IMM8_X1_TLS_GD_ADD: u32 = 62; +pub const R_TILEPRO_IMM8_Y0_TLS_GD_ADD: u32 = 63; +pub const R_TILEPRO_IMM8_Y1_TLS_GD_ADD: u32 = 64; +pub const R_TILEPRO_TLS_IE_LOAD: u32 = 65; +pub const R_TILEPRO_IMM16_X0_TLS_GD: u32 = 66; +pub const R_TILEPRO_IMM16_X1_TLS_GD: u32 = 67; +pub const R_TILEPRO_IMM16_X0_TLS_GD_LO: u32 = 68; +pub const R_TILEPRO_IMM16_X1_TLS_GD_LO: u32 = 69; +pub const R_TILEPRO_IMM16_X0_TLS_GD_HI: u32 = 70; +pub const R_TILEPRO_IMM16_X1_TLS_GD_HI: u32 = 71; +pub const R_TILEPRO_IMM16_X0_TLS_GD_HA: u32 = 72; +pub const R_TILEPRO_IMM16_X1_TLS_GD_HA: u32 = 73; +pub const R_TILEPRO_IMM16_X0_TLS_IE: u32 = 74; +pub const R_TILEPRO_IMM16_X1_TLS_IE: u32 = 75; +pub const R_TILEPRO_IMM16_X0_TLS_IE_LO: u32 = 76; +pub const R_TILEPRO_IMM16_X1_TLS_IE_LO: u32 = 77; +pub const R_TILEPRO_IMM16_X0_TLS_IE_HI: u32 = 78; +pub const R_TILEPRO_IMM16_X1_TLS_IE_HI: u32 = 79; +pub const R_TILEPRO_IMM16_X0_TLS_IE_HA: u32 = 80; +pub const R_TILEPRO_IMM16_X1_TLS_IE_HA: u32 = 81; +pub const R_TILEPRO_TLS_DTPMOD32: u32 = 82; +pub const R_TILEPRO_TLS_DTPOFF32: u32 = 83; +pub const R_TILEPRO_TLS_TPOFF32: u32 = 84; +pub const R_TILEPRO_IMM16_X0_TLS_LE: u32 = 85; +pub const R_TILEPRO_IMM16_X1_TLS_LE: u32 = 86; +pub const R_TILEPRO_IMM16_X0_TLS_LE_LO: u32 = 87; +pub const R_TILEPRO_IMM16_X1_TLS_LE_LO: u32 = 88; +pub const R_TILEPRO_IMM16_X0_TLS_LE_HI: u32 = 89; +pub const R_TILEPRO_IMM16_X1_TLS_LE_HI: u32 = 90; +pub const R_TILEPRO_IMM16_X0_TLS_LE_HA: u32 = 91; +pub const R_TILEPRO_IMM16_X1_TLS_LE_HA: u32 = 92; +pub const R_TILEPRO_GNU_VTINHERIT: u32 = 128; +pub const R_TILEPRO_GNU_VTENTRY: u32 = 129; +pub const R_TILEPRO_NUM: u32 = 130; +pub const R_TILEGX_NONE: u32 = 0; +pub const R_TILEGX_64: u32 = 1; +pub const R_TILEGX_32: u32 = 2; +pub const R_TILEGX_16: u32 = 3; +pub const R_TILEGX_8: u32 = 4; +pub const R_TILEGX_64_PCREL: u32 = 5; +pub const R_TILEGX_32_PCREL: u32 = 6; +pub const R_TILEGX_16_PCREL: u32 = 7; +pub const R_TILEGX_8_PCREL: u32 = 8; +pub const R_TILEGX_HW0: u32 = 9; +pub const R_TILEGX_HW1: u32 = 10; +pub const R_TILEGX_HW2: u32 = 11; +pub const R_TILEGX_HW3: u32 = 12; +pub const R_TILEGX_HW0_LAST: u32 = 13; +pub const R_TILEGX_HW1_LAST: u32 = 14; +pub const R_TILEGX_HW2_LAST: u32 = 15; +pub const R_TILEGX_COPY: u32 = 16; +pub const R_TILEGX_GLOB_DAT: u32 = 17; +pub const R_TILEGX_JMP_SLOT: u32 = 18; +pub const R_TILEGX_RELATIVE: u32 = 19; +pub const R_TILEGX_BROFF_X1: u32 = 20; +pub const R_TILEGX_JUMPOFF_X1: u32 = 21; +pub const R_TILEGX_JUMPOFF_X1_PLT: u32 = 22; +pub const R_TILEGX_IMM8_X0: u32 = 23; +pub const R_TILEGX_IMM8_Y0: u32 = 24; +pub const R_TILEGX_IMM8_X1: u32 = 25; +pub const R_TILEGX_IMM8_Y1: u32 = 26; +pub const R_TILEGX_DEST_IMM8_X1: u32 = 27; +pub const R_TILEGX_MT_IMM14_X1: u32 = 28; +pub const R_TILEGX_MF_IMM14_X1: u32 = 29; +pub const R_TILEGX_MMSTART_X0: u32 = 30; +pub const R_TILEGX_MMEND_X0: u32 = 31; +pub const R_TILEGX_SHAMT_X0: u32 = 32; +pub const R_TILEGX_SHAMT_X1: u32 = 33; +pub const R_TILEGX_SHAMT_Y0: u32 = 34; +pub const R_TILEGX_SHAMT_Y1: u32 = 35; +pub const R_TILEGX_IMM16_X0_HW0: u32 = 36; +pub const R_TILEGX_IMM16_X1_HW0: u32 = 37; +pub const R_TILEGX_IMM16_X0_HW1: u32 = 38; +pub const R_TILEGX_IMM16_X1_HW1: u32 = 39; +pub const R_TILEGX_IMM16_X0_HW2: u32 = 40; +pub const R_TILEGX_IMM16_X1_HW2: u32 = 41; +pub const R_TILEGX_IMM16_X0_HW3: u32 = 42; +pub const R_TILEGX_IMM16_X1_HW3: u32 = 43; +pub const R_TILEGX_IMM16_X0_HW0_LAST: u32 = 44; +pub const R_TILEGX_IMM16_X1_HW0_LAST: u32 = 45; +pub const R_TILEGX_IMM16_X0_HW1_LAST: u32 = 46; +pub const R_TILEGX_IMM16_X1_HW1_LAST: u32 = 47; +pub const R_TILEGX_IMM16_X0_HW2_LAST: u32 = 48; +pub const R_TILEGX_IMM16_X1_HW2_LAST: u32 = 49; +pub const R_TILEGX_IMM16_X0_HW0_PCREL: u32 = 50; +pub const R_TILEGX_IMM16_X1_HW0_PCREL: u32 = 51; +pub const R_TILEGX_IMM16_X0_HW1_PCREL: u32 = 52; +pub const R_TILEGX_IMM16_X1_HW1_PCREL: u32 = 53; +pub const R_TILEGX_IMM16_X0_HW2_PCREL: u32 = 54; +pub const R_TILEGX_IMM16_X1_HW2_PCREL: u32 = 55; +pub const R_TILEGX_IMM16_X0_HW3_PCREL: u32 = 56; +pub const R_TILEGX_IMM16_X1_HW3_PCREL: u32 = 57; +pub const R_TILEGX_IMM16_X0_HW0_LAST_PCREL: u32 = 58; +pub const R_TILEGX_IMM16_X1_HW0_LAST_PCREL: u32 = 59; +pub const R_TILEGX_IMM16_X0_HW1_LAST_PCREL: u32 = 60; +pub const R_TILEGX_IMM16_X1_HW1_LAST_PCREL: u32 = 61; +pub const R_TILEGX_IMM16_X0_HW2_LAST_PCREL: u32 = 62; +pub const R_TILEGX_IMM16_X1_HW2_LAST_PCREL: u32 = 63; +pub const R_TILEGX_IMM16_X0_HW0_GOT: u32 = 64; +pub const R_TILEGX_IMM16_X1_HW0_GOT: u32 = 65; +pub const R_TILEGX_IMM16_X0_HW0_PLT_PCREL: u32 = 66; +pub const R_TILEGX_IMM16_X1_HW0_PLT_PCREL: u32 = 67; +pub const R_TILEGX_IMM16_X0_HW1_PLT_PCREL: u32 = 68; +pub const R_TILEGX_IMM16_X1_HW1_PLT_PCREL: u32 = 69; +pub const R_TILEGX_IMM16_X0_HW2_PLT_PCREL: u32 = 70; +pub const R_TILEGX_IMM16_X1_HW2_PLT_PCREL: u32 = 71; +pub const R_TILEGX_IMM16_X0_HW0_LAST_GOT: u32 = 72; +pub const R_TILEGX_IMM16_X1_HW0_LAST_GOT: u32 = 73; +pub const R_TILEGX_IMM16_X0_HW1_LAST_GOT: u32 = 74; +pub const R_TILEGX_IMM16_X1_HW1_LAST_GOT: u32 = 75; +pub const R_TILEGX_IMM16_X0_HW3_PLT_PCREL: u32 = 76; +pub const R_TILEGX_IMM16_X1_HW3_PLT_PCREL: u32 = 77; +pub const R_TILEGX_IMM16_X0_HW0_TLS_GD: u32 = 78; +pub const R_TILEGX_IMM16_X1_HW0_TLS_GD: u32 = 79; +pub const R_TILEGX_IMM16_X0_HW0_TLS_LE: u32 = 80; +pub const R_TILEGX_IMM16_X1_HW0_TLS_LE: u32 = 81; +pub const R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: u32 = 82; +pub const R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: u32 = 83; +pub const R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: u32 = 84; +pub const R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: u32 = 85; +pub const R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: u32 = 86; +pub const R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: u32 = 87; +pub const R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: u32 = 88; +pub const R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: u32 = 89; +pub const R_TILEGX_IMM16_X0_HW0_TLS_IE: u32 = 92; +pub const R_TILEGX_IMM16_X1_HW0_TLS_IE: u32 = 93; +pub const R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: u32 = 94; +pub const R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: u32 = 95; +pub const R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: u32 = 96; +pub const R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: u32 = 97; +pub const R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: u32 = 98; +pub const R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: u32 = 99; +pub const R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: u32 = 100; +pub const R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: u32 = 101; +pub const R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: u32 = 102; +pub const R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: u32 = 103; +pub const R_TILEGX_TLS_DTPMOD64: u32 = 106; +pub const R_TILEGX_TLS_DTPOFF64: u32 = 107; +pub const R_TILEGX_TLS_TPOFF64: u32 = 108; +pub const R_TILEGX_TLS_DTPMOD32: u32 = 109; +pub const R_TILEGX_TLS_DTPOFF32: u32 = 110; +pub const R_TILEGX_TLS_TPOFF32: u32 = 111; +pub const R_TILEGX_TLS_GD_CALL: u32 = 112; +pub const R_TILEGX_IMM8_X0_TLS_GD_ADD: u32 = 113; +pub const R_TILEGX_IMM8_X1_TLS_GD_ADD: u32 = 114; +pub const R_TILEGX_IMM8_Y0_TLS_GD_ADD: u32 = 115; +pub const R_TILEGX_IMM8_Y1_TLS_GD_ADD: u32 = 116; +pub const R_TILEGX_TLS_IE_LOAD: u32 = 117; +pub const R_TILEGX_IMM8_X0_TLS_ADD: u32 = 118; +pub const R_TILEGX_IMM8_X1_TLS_ADD: u32 = 119; +pub const R_TILEGX_IMM8_Y0_TLS_ADD: u32 = 120; +pub const R_TILEGX_IMM8_Y1_TLS_ADD: u32 = 121; +pub const R_TILEGX_GNU_VTINHERIT: u32 = 128; +pub const R_TILEGX_GNU_VTENTRY: u32 = 129; +pub const R_TILEGX_NUM: u32 = 130; +pub const EF_RISCV_RVC: u32 = 1; +pub const EF_RISCV_FLOAT_ABI: u32 = 6; +pub const EF_RISCV_FLOAT_ABI_SOFT: u32 = 0; +pub const EF_RISCV_FLOAT_ABI_SINGLE: u32 = 2; +pub const EF_RISCV_FLOAT_ABI_DOUBLE: u32 = 4; +pub const EF_RISCV_FLOAT_ABI_QUAD: u32 = 6; +pub const R_RISCV_NONE: u32 = 0; +pub const R_RISCV_32: u32 = 1; +pub const R_RISCV_64: u32 = 2; +pub const R_RISCV_RELATIVE: u32 = 3; +pub const R_RISCV_COPY: u32 = 4; +pub const R_RISCV_JUMP_SLOT: u32 = 5; +pub const R_RISCV_TLS_DTPMOD32: u32 = 6; +pub const R_RISCV_TLS_DTPMOD64: u32 = 7; +pub const R_RISCV_TLS_DTPREL32: u32 = 8; +pub const R_RISCV_TLS_DTPREL64: u32 = 9; +pub const R_RISCV_TLS_TPREL32: u32 = 10; +pub const R_RISCV_TLS_TPREL64: u32 = 11; +pub const R_RISCV_BRANCH: u32 = 16; +pub const R_RISCV_JAL: u32 = 17; +pub const R_RISCV_CALL: u32 = 18; +pub const R_RISCV_CALL_PLT: u32 = 19; +pub const R_RISCV_GOT_HI20: u32 = 20; +pub const R_RISCV_TLS_GOT_HI20: u32 = 21; +pub const R_RISCV_TLS_GD_HI20: u32 = 22; +pub const R_RISCV_PCREL_HI20: u32 = 23; +pub const R_RISCV_PCREL_LO12_I: u32 = 24; +pub const R_RISCV_PCREL_LO12_S: u32 = 25; +pub const R_RISCV_HI20: u32 = 26; +pub const R_RISCV_LO12_I: u32 = 27; +pub const R_RISCV_LO12_S: u32 = 28; +pub const R_RISCV_TPREL_HI20: u32 = 29; +pub const R_RISCV_TPREL_LO12_I: u32 = 30; +pub const R_RISCV_TPREL_LO12_S: u32 = 31; +pub const R_RISCV_TPREL_ADD: u32 = 32; +pub const R_RISCV_ADD8: u32 = 33; +pub const R_RISCV_ADD16: u32 = 34; +pub const R_RISCV_ADD32: u32 = 35; +pub const R_RISCV_ADD64: u32 = 36; +pub const R_RISCV_SUB8: u32 = 37; +pub const R_RISCV_SUB16: u32 = 38; +pub const R_RISCV_SUB32: u32 = 39; +pub const R_RISCV_SUB64: u32 = 40; +pub const R_RISCV_GNU_VTINHERIT: u32 = 41; +pub const R_RISCV_GNU_VTENTRY: u32 = 42; +pub const R_RISCV_ALIGN: u32 = 43; +pub const R_RISCV_RVC_BRANCH: u32 = 44; +pub const R_RISCV_RVC_JUMP: u32 = 45; +pub const R_RISCV_RVC_LUI: u32 = 46; +pub const R_RISCV_GPREL_I: u32 = 47; +pub const R_RISCV_GPREL_S: u32 = 48; +pub const R_RISCV_TPREL_I: u32 = 49; +pub const R_RISCV_TPREL_S: u32 = 50; +pub const R_RISCV_RELAX: u32 = 51; +pub const R_RISCV_SUB6: u32 = 52; +pub const R_RISCV_SET6: u32 = 53; +pub const R_RISCV_SET8: u32 = 54; +pub const R_RISCV_SET16: u32 = 55; +pub const R_RISCV_SET32: u32 = 56; +pub const R_RISCV_32_PCREL: u32 = 57; +pub const R_RISCV_IRELATIVE: u32 = 58; +pub const R_RISCV_NUM: u32 = 59; +pub const R_BPF_NONE: u32 = 0; +pub const R_BPF_64_64: u32 = 1; +pub const R_BPF_64_32: u32 = 10; +pub const R_METAG_HIADDR16: u32 = 0; +pub const R_METAG_LOADDR16: u32 = 1; +pub const R_METAG_ADDR32: u32 = 2; +pub const R_METAG_NONE: u32 = 3; +pub const R_METAG_RELBRANCH: u32 = 4; +pub const R_METAG_GETSETOFF: u32 = 5; +pub const R_METAG_REG32OP1: u32 = 6; +pub const R_METAG_REG32OP2: u32 = 7; +pub const R_METAG_REG32OP3: u32 = 8; +pub const R_METAG_REG16OP1: u32 = 9; +pub const R_METAG_REG16OP2: u32 = 10; +pub const R_METAG_REG16OP3: u32 = 11; +pub const R_METAG_REG32OP4: u32 = 12; +pub const R_METAG_HIOG: u32 = 13; +pub const R_METAG_LOOG: u32 = 14; +pub const R_METAG_REL8: u32 = 15; +pub const R_METAG_REL16: u32 = 16; +pub const R_METAG_GNU_VTINHERIT: u32 = 30; +pub const R_METAG_GNU_VTENTRY: u32 = 31; +pub const R_METAG_HI16_GOTOFF: u32 = 32; +pub const R_METAG_LO16_GOTOFF: u32 = 33; +pub const R_METAG_GETSET_GOTOFF: u32 = 34; +pub const R_METAG_GETSET_GOT: u32 = 35; +pub const R_METAG_HI16_GOTPC: u32 = 36; +pub const R_METAG_LO16_GOTPC: u32 = 37; +pub const R_METAG_HI16_PLT: u32 = 38; +pub const R_METAG_LO16_PLT: u32 = 39; +pub const R_METAG_RELBRANCH_PLT: u32 = 40; +pub const R_METAG_GOTOFF: u32 = 41; +pub const R_METAG_PLT: u32 = 42; +pub const R_METAG_COPY: u32 = 43; +pub const R_METAG_JMP_SLOT: u32 = 44; +pub const R_METAG_RELATIVE: u32 = 45; +pub const R_METAG_GLOB_DAT: u32 = 46; +pub const R_METAG_TLS_GD: u32 = 47; +pub const R_METAG_TLS_LDM: u32 = 48; +pub const R_METAG_TLS_LDO_HI16: u32 = 49; +pub const R_METAG_TLS_LDO_LO16: u32 = 50; +pub const R_METAG_TLS_LDO: u32 = 51; +pub const R_METAG_TLS_IE: u32 = 52; +pub const R_METAG_TLS_IENONPIC: u32 = 53; +pub const R_METAG_TLS_IENONPIC_HI16: u32 = 54; +pub const R_METAG_TLS_IENONPIC_LO16: u32 = 55; +pub const R_METAG_TLS_TPOFF: u32 = 56; +pub const R_METAG_TLS_DTPMOD: u32 = 57; +pub const R_METAG_TLS_DTPOFF: u32 = 58; +pub const R_METAG_TLS_LE: u32 = 59; +pub const R_METAG_TLS_LE_HI16: u32 = 60; +pub const R_METAG_TLS_LE_LO16: u32 = 61; +pub const R_NDS32_NONE: u32 = 0; +pub const R_NDS32_32_RELA: u32 = 20; +pub const R_NDS32_COPY: u32 = 39; +pub const R_NDS32_GLOB_DAT: u32 = 40; +pub const R_NDS32_JMP_SLOT: u32 = 41; +pub const R_NDS32_RELATIVE: u32 = 42; +pub const R_NDS32_TLS_TPOFF: u32 = 102; +pub const R_NDS32_TLS_DESC: u32 = 119; +pub const R_ARC_NONE: u32 = 0; +pub const R_ARC_8: u32 = 1; +pub const R_ARC_16: u32 = 2; +pub const R_ARC_24: u32 = 3; +pub const R_ARC_32: u32 = 4; +pub const R_ARC_B26: u32 = 5; +pub const R_ARC_B22_PCREL: u32 = 6; +pub const R_ARC_H30: u32 = 7; +pub const R_ARC_N8: u32 = 8; +pub const R_ARC_N16: u32 = 9; +pub const R_ARC_N24: u32 = 10; +pub const R_ARC_N32: u32 = 11; +pub const R_ARC_SDA: u32 = 12; +pub const R_ARC_SECTOFF: u32 = 13; +pub const R_ARC_S21H_PCREL: u32 = 14; +pub const R_ARC_S21W_PCREL: u32 = 15; +pub const R_ARC_S25H_PCREL: u32 = 16; +pub const R_ARC_S25W_PCREL: u32 = 17; +pub const R_ARC_SDA32: u32 = 18; +pub const R_ARC_SDA_LDST: u32 = 19; +pub const R_ARC_SDA_LDST1: u32 = 20; +pub const R_ARC_SDA_LDST2: u32 = 21; +pub const R_ARC_SDA16_LD: u32 = 22; +pub const R_ARC_SDA16_LD1: u32 = 23; +pub const R_ARC_SDA16_LD2: u32 = 24; +pub const R_ARC_S13_PCREL: u32 = 25; +pub const R_ARC_W: u32 = 26; +pub const R_ARC_32_ME: u32 = 27; +pub const R_ARC_N32_ME: u32 = 28; +pub const R_ARC_SECTOFF_ME: u32 = 29; +pub const R_ARC_SDA32_ME: u32 = 30; +pub const R_ARC_W_ME: u32 = 31; +pub const R_ARC_H30_ME: u32 = 32; +pub const R_ARC_SECTOFF_U8: u32 = 33; +pub const R_ARC_SECTOFF_S9: u32 = 34; +pub const R_AC_SECTOFF_U8: u32 = 35; +pub const R_AC_SECTOFF_U8_1: u32 = 36; +pub const R_AC_SECTOFF_U8_2: u32 = 37; +pub const R_AC_SECTOFF_S9: u32 = 38; +pub const R_AC_SECTOFF_S9_1: u32 = 39; +pub const R_AC_SECTOFF_S9_2: u32 = 40; +pub const R_ARC_SECTOFF_ME_1: u32 = 41; +pub const R_ARC_SECTOFF_ME_2: u32 = 42; +pub const R_ARC_SECTOFF_1: u32 = 43; +pub const R_ARC_SECTOFF_2: u32 = 44; +pub const R_ARC_PC32: u32 = 50; +pub const R_ARC_GOTPC32: u32 = 51; +pub const R_ARC_PLT32: u32 = 52; +pub const R_ARC_COPY: u32 = 53; +pub const R_ARC_GLOB_DAT: u32 = 54; +pub const R_ARC_JUMP_SLOT: u32 = 55; +pub const R_ARC_RELATIVE: u32 = 56; +pub const R_ARC_GOTOFF: u32 = 57; +pub const R_ARC_GOTPC: u32 = 58; +pub const R_ARC_GOT32: u32 = 59; +pub const R_ARC_TLS_DTPMOD: u32 = 66; +pub const R_ARC_TLS_DTPOFF: u32 = 67; +pub const R_ARC_TLS_TPOFF: u32 = 68; +pub const R_ARC_TLS_GD_GOT: u32 = 69; +pub const R_ARC_TLS_GD_LD: u32 = 70; +pub const R_ARC_TLS_GD_CALL: u32 = 71; +pub const R_ARC_TLS_IE_GOT: u32 = 72; +pub const R_ARC_TLS_DTPOFF_S9: u32 = 74; +pub const R_ARC_TLS_LE_S9: u32 = 74; +pub const R_ARC_TLS_LE_32: u32 = 75; +pub type __u_char = ::std::os::raw::c_uchar; +pub type __u_short = ::std::os::raw::c_ushort; +pub type __u_int = ::std::os::raw::c_uint; +pub type __u_long = ::std::os::raw::c_ulong; +pub type __int8_t = ::std::os::raw::c_schar; +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_long; +pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = ::std::os::raw::c_long; +pub type __u_quad_t = ::std::os::raw::c_ulong; +pub type __intmax_t = ::std::os::raw::c_long; +pub type __uintmax_t = ::std::os::raw::c_ulong; +pub type __dev_t = ::std::os::raw::c_ulong; +pub type __uid_t = ::std::os::raw::c_uint; +pub type __gid_t = ::std::os::raw::c_uint; +pub type __ino_t = ::std::os::raw::c_ulong; +pub type __ino64_t = ::std::os::raw::c_ulong; +pub type __mode_t = ::std::os::raw::c_uint; +pub type __nlink_t = ::std::os::raw::c_ulong; +pub type __off_t = ::std::os::raw::c_long; +pub type __off64_t = ::std::os::raw::c_long; +pub type __pid_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __fsid_t { + pub __val: [::std::os::raw::c_int; 2usize], +} +#[test] +fn bindgen_test_layout___fsid_t() { + assert_eq!( + ::std::mem::size_of::<__fsid_t>(), + 8usize, + concat!("Size of: ", stringify!(__fsid_t)) + ); + assert_eq!( + ::std::mem::align_of::<__fsid_t>(), + 4usize, + concat!("Alignment of ", stringify!(__fsid_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__fsid_t), + "::", + stringify!(__val) + ) + ); +} +pub type __clock_t = ::std::os::raw::c_long; +pub type __rlim_t = ::std::os::raw::c_ulong; +pub type __rlim64_t = ::std::os::raw::c_ulong; +pub type __id_t = ::std::os::raw::c_uint; +pub type __time_t = ::std::os::raw::c_long; +pub type __useconds_t = ::std::os::raw::c_uint; +pub type __suseconds_t = ::std::os::raw::c_long; +pub type __suseconds64_t = ::std::os::raw::c_long; +pub type __daddr_t = ::std::os::raw::c_int; +pub type __key_t = ::std::os::raw::c_int; +pub type __clockid_t = ::std::os::raw::c_int; +pub type __timer_t = *mut ::std::os::raw::c_void; +pub type __blksize_t = ::std::os::raw::c_long; +pub type __blkcnt_t = ::std::os::raw::c_long; +pub type __blkcnt64_t = ::std::os::raw::c_long; +pub type __fsblkcnt_t = ::std::os::raw::c_ulong; +pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; +pub type __fsword_t = ::std::os::raw::c_long; +pub type __ssize_t = ::std::os::raw::c_long; +pub type __syscall_slong_t = ::std::os::raw::c_long; +pub type __syscall_ulong_t = ::std::os::raw::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut ::std::os::raw::c_char; +pub type __intptr_t = ::std::os::raw::c_long; +pub type __socklen_t = ::std::os::raw::c_uint; +pub type __sig_atomic_t = ::std::os::raw::c_int; +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = ::std::os::raw::c_schar; +pub type int_fast16_t = ::std::os::raw::c_long; +pub type int_fast32_t = ::std::os::raw::c_long; +pub type int_fast64_t = ::std::os::raw::c_long; +pub type uint_fast8_t = ::std::os::raw::c_uchar; +pub type uint_fast16_t = ::std::os::raw::c_ulong; +pub type uint_fast32_t = ::std::os::raw::c_ulong; +pub type uint_fast64_t = ::std::os::raw::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +pub type Elf32_Half = u16; +pub type Elf64_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Sword = i32; +pub type Elf64_Word = u32; +pub type Elf64_Sword = i32; +pub type Elf32_Xword = u64; +pub type Elf32_Sxword = i64; +pub type Elf64_Xword = u64; +pub type Elf64_Sxword = i64; +pub type Elf32_Addr = u32; +pub type Elf64_Addr = u64; +pub type Elf32_Off = u32; +pub type Elf64_Off = u64; +pub type Elf32_Section = u16; +pub type Elf64_Section = u16; +pub type Elf32_Versym = Elf32_Half; +pub type Elf64_Versym = Elf64_Half; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Ehdr { + pub e_ident: [::std::os::raw::c_uchar; 16usize], + pub e_type: Elf32_Half, + pub e_machine: Elf32_Half, + pub e_version: Elf32_Word, + pub e_entry: Elf32_Addr, + pub e_phoff: Elf32_Off, + pub e_shoff: Elf32_Off, + pub e_flags: Elf32_Word, + pub e_ehsize: Elf32_Half, + pub e_phentsize: Elf32_Half, + pub e_phnum: Elf32_Half, + pub e_shentsize: Elf32_Half, + pub e_shnum: Elf32_Half, + pub e_shstrndx: Elf32_Half, +} +#[test] +fn bindgen_test_layout_Elf32_Ehdr() { + assert_eq!( + ::std::mem::size_of::(), + 52usize, + concat!("Size of: ", stringify!(Elf32_Ehdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Ehdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_ident as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_ident) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_type as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_machine as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_machine) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_version as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_entry as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_entry) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phoff as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_phoff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shoff as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_shoff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_flags as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_ehsize as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_ehsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phentsize as *const _ as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_phentsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phnum as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_phnum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shentsize as *const _ as usize }, + 46usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_shentsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shnum as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_shnum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shstrndx as *const _ as usize }, + 50usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Ehdr), + "::", + stringify!(e_shstrndx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Ehdr { + pub e_ident: [::std::os::raw::c_uchar; 16usize], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, +} +#[test] +fn bindgen_test_layout_Elf64_Ehdr() { + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(Elf64_Ehdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Ehdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_ident as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_ident) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_type as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_machine as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_machine) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_version as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_entry as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_entry) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phoff as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_phoff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shoff as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_shoff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_flags as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_ehsize as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_ehsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phentsize as *const _ as usize }, + 54usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_phentsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_phnum as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_phnum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shentsize as *const _ as usize }, + 58usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_shentsize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shnum as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_shnum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).e_shstrndx as *const _ as usize }, + 62usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Ehdr), + "::", + stringify!(e_shstrndx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Shdr { + pub sh_name: Elf32_Word, + pub sh_type: Elf32_Word, + pub sh_flags: Elf32_Word, + pub sh_addr: Elf32_Addr, + pub sh_offset: Elf32_Off, + pub sh_size: Elf32_Word, + pub sh_link: Elf32_Word, + pub sh_info: Elf32_Word, + pub sh_addralign: Elf32_Word, + pub sh_entsize: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Shdr() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(Elf32_Shdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Shdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_type as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_flags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_addr as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_addr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_offset as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_size as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_link as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_link) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_info as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_addralign as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_addralign) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_entsize as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Shdr), + "::", + stringify!(sh_entsize) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, +} +#[test] +fn bindgen_test_layout_Elf64_Shdr() { + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(Elf64_Shdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Shdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_type as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_flags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_addr as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_addr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_offset as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_size as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_link as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_link) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_info as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_addralign as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_addralign) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).sh_entsize as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Shdr), + "::", + stringify!(sh_entsize) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Chdr { + pub ch_type: Elf32_Word, + pub ch_size: Elf32_Word, + pub ch_addralign: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Chdr() { + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(Elf32_Chdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Chdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Chdr), + "::", + stringify!(ch_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_size as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Chdr), + "::", + stringify!(ch_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_addralign as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Chdr), + "::", + stringify!(ch_addralign) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Chdr { + pub ch_type: Elf64_Word, + pub ch_reserved: Elf64_Word, + pub ch_size: Elf64_Xword, + pub ch_addralign: Elf64_Xword, +} +#[test] +fn bindgen_test_layout_Elf64_Chdr() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf64_Chdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Chdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Chdr), + "::", + stringify!(ch_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_reserved as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Chdr), + "::", + stringify!(ch_reserved) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Chdr), + "::", + stringify!(ch_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ch_addralign as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Chdr), + "::", + stringify!(ch_addralign) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Sym { + pub st_name: Elf32_Word, + pub st_value: Elf32_Addr, + pub st_size: Elf32_Word, + pub st_info: ::std::os::raw::c_uchar, + pub st_other: ::std::os::raw::c_uchar, + pub st_shndx: Elf32_Section, +} +#[test] +fn bindgen_test_layout_Elf32_Sym() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf32_Sym)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Sym)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_value as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_value) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_info as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_other as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_other) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_shndx as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Sym), + "::", + stringify!(st_shndx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Sym { + pub st_name: Elf64_Word, + pub st_info: ::std::os::raw::c_uchar, + pub st_other: ::std::os::raw::c_uchar, + pub st_shndx: Elf64_Section, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, +} +#[test] +fn bindgen_test_layout_Elf64_Sym() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf64_Sym)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Sym)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_info as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_other as *const _ as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_other) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_shndx as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_shndx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_value as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_value) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).st_size as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Sym), + "::", + stringify!(st_size) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Syminfo { + pub si_boundto: Elf32_Half, + pub si_flags: Elf32_Half, +} +#[test] +fn bindgen_test_layout_Elf32_Syminfo() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(Elf32_Syminfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(Elf32_Syminfo)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).si_boundto as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Syminfo), + "::", + stringify!(si_boundto) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).si_flags as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Syminfo), + "::", + stringify!(si_flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Syminfo { + pub si_boundto: Elf64_Half, + pub si_flags: Elf64_Half, +} +#[test] +fn bindgen_test_layout_Elf64_Syminfo() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(Elf64_Syminfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(Elf64_Syminfo)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).si_boundto as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Syminfo), + "::", + stringify!(si_boundto) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).si_flags as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Syminfo), + "::", + stringify!(si_flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Rel { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Rel() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_Rel)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Rel)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Rel), + "::", + stringify!(r_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_info as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Rel), + "::", + stringify!(r_info) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Rel { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, +} +#[test] +fn bindgen_test_layout_Elf64_Rel() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf64_Rel)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Rel)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Rel), + "::", + stringify!(r_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Rel), + "::", + stringify!(r_info) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Rela { + pub r_offset: Elf32_Addr, + pub r_info: Elf32_Word, + pub r_addend: Elf32_Sword, +} +#[test] +fn bindgen_test_layout_Elf32_Rela() { + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(Elf32_Rela)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Rela)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Rela), + "::", + stringify!(r_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_info as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Rela), + "::", + stringify!(r_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_addend as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Rela), + "::", + stringify!(r_addend) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Rela { + pub r_offset: Elf64_Addr, + pub r_info: Elf64_Xword, + pub r_addend: Elf64_Sxword, +} +#[test] +fn bindgen_test_layout_Elf64_Rela() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf64_Rela)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Rela)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Rela), + "::", + stringify!(r_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Rela), + "::", + stringify!(r_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).r_addend as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Rela), + "::", + stringify!(r_addend) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Phdr() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(Elf32_Phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Phdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_offset as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_vaddr as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_vaddr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_paddr as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_paddr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_filesz as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_filesz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_memsz as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_memsz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_flags as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_align as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Phdr), + "::", + stringify!(p_align) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, +} +#[test] +fn bindgen_test_layout_Elf64_Phdr() { + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(Elf64_Phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Phdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_offset as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_vaddr as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_vaddr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_paddr as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_paddr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_filesz as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_filesz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_memsz as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_memsz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).p_align as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Phdr), + "::", + stringify!(p_align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Elf32_Dyn { + pub d_tag: Elf32_Sword, + pub d_un: Elf32_Dyn__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union Elf32_Dyn__bindgen_ty_1 { + pub d_val: Elf32_Word, + pub d_ptr: Elf32_Addr, +} +#[test] +fn bindgen_test_layout_Elf32_Dyn__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(Elf32_Dyn__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Dyn__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Dyn__bindgen_ty_1), + "::", + stringify!(d_val) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_ptr as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Dyn__bindgen_ty_1), + "::", + stringify!(d_ptr) + ) + ); +} +#[test] +fn bindgen_test_layout_Elf32_Dyn() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_Dyn)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Dyn)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_tag as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Dyn), + "::", + stringify!(d_tag) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_un as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Dyn), + "::", + stringify!(d_un) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Elf64_Dyn { + pub d_tag: Elf64_Sxword, + pub d_un: Elf64_Dyn__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union Elf64_Dyn__bindgen_ty_1 { + pub d_val: Elf64_Xword, + pub d_ptr: Elf64_Addr, +} +#[test] +fn bindgen_test_layout_Elf64_Dyn__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf64_Dyn__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Dyn__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Dyn__bindgen_ty_1), + "::", + stringify!(d_val) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_ptr as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Dyn__bindgen_ty_1), + "::", + stringify!(d_ptr) + ) + ); +} +#[test] +fn bindgen_test_layout_Elf64_Dyn() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf64_Dyn)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Dyn)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_tag as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Dyn), + "::", + stringify!(d_tag) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).d_un as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Dyn), + "::", + stringify!(d_un) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Verdef { + pub vd_version: Elf32_Half, + pub vd_flags: Elf32_Half, + pub vd_ndx: Elf32_Half, + pub vd_cnt: Elf32_Half, + pub vd_hash: Elf32_Word, + pub vd_aux: Elf32_Word, + pub vd_next: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Verdef() { + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(Elf32_Verdef)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Verdef)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_flags as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_ndx as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_ndx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_cnt as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_cnt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_hash as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_hash) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_aux as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_aux) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_next as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdef), + "::", + stringify!(vd_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Verdef { + pub vd_version: Elf64_Half, + pub vd_flags: Elf64_Half, + pub vd_ndx: Elf64_Half, + pub vd_cnt: Elf64_Half, + pub vd_hash: Elf64_Word, + pub vd_aux: Elf64_Word, + pub vd_next: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Verdef() { + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(Elf64_Verdef)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Verdef)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_flags as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_ndx as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_ndx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_cnt as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_cnt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_hash as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_hash) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_aux as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_aux) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vd_next as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdef), + "::", + stringify!(vd_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Verdaux { + pub vda_name: Elf32_Word, + pub vda_next: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Verdaux() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_Verdaux)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Verdaux)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vda_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdaux), + "::", + stringify!(vda_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vda_next as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verdaux), + "::", + stringify!(vda_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Verdaux { + pub vda_name: Elf64_Word, + pub vda_next: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Verdaux() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf64_Verdaux)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Verdaux)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vda_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdaux), + "::", + stringify!(vda_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vda_next as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verdaux), + "::", + stringify!(vda_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Verneed { + pub vn_version: Elf32_Half, + pub vn_cnt: Elf32_Half, + pub vn_file: Elf32_Word, + pub vn_aux: Elf32_Word, + pub vn_next: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Verneed() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf32_Verneed)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Verneed)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verneed), + "::", + stringify!(vn_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_cnt as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verneed), + "::", + stringify!(vn_cnt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_file as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verneed), + "::", + stringify!(vn_file) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_aux as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verneed), + "::", + stringify!(vn_aux) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_next as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Verneed), + "::", + stringify!(vn_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Verneed { + pub vn_version: Elf64_Half, + pub vn_cnt: Elf64_Half, + pub vn_file: Elf64_Word, + pub vn_aux: Elf64_Word, + pub vn_next: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Verneed() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf64_Verneed)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Verneed)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verneed), + "::", + stringify!(vn_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_cnt as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verneed), + "::", + stringify!(vn_cnt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_file as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verneed), + "::", + stringify!(vn_file) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_aux as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verneed), + "::", + stringify!(vn_aux) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vn_next as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Verneed), + "::", + stringify!(vn_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Vernaux { + pub vna_hash: Elf32_Word, + pub vna_flags: Elf32_Half, + pub vna_other: Elf32_Half, + pub vna_name: Elf32_Word, + pub vna_next: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Vernaux() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf32_Vernaux)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Vernaux)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_hash as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Vernaux), + "::", + stringify!(vna_hash) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Vernaux), + "::", + stringify!(vna_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_other as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Vernaux), + "::", + stringify!(vna_other) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_name as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Vernaux), + "::", + stringify!(vna_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_next as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Vernaux), + "::", + stringify!(vna_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Vernaux { + pub vna_hash: Elf64_Word, + pub vna_flags: Elf64_Half, + pub vna_other: Elf64_Half, + pub vna_name: Elf64_Word, + pub vna_next: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Vernaux() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf64_Vernaux)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Vernaux)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_hash as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Vernaux), + "::", + stringify!(vna_hash) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Vernaux), + "::", + stringify!(vna_flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_other as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Vernaux), + "::", + stringify!(vna_other) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_name as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Vernaux), + "::", + stringify!(vna_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).vna_next as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Vernaux), + "::", + stringify!(vna_next) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Elf32_auxv_t { + pub a_type: u32, + pub a_un: Elf32_auxv_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union Elf32_auxv_t__bindgen_ty_1 { + pub a_val: u32, +} +#[test] +fn bindgen_test_layout_Elf32_auxv_t__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(Elf32_auxv_t__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_auxv_t__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).a_val as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_auxv_t__bindgen_ty_1), + "::", + stringify!(a_val) + ) + ); +} +#[test] +fn bindgen_test_layout_Elf32_auxv_t() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_auxv_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_auxv_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).a_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_auxv_t), + "::", + stringify!(a_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).a_un as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_auxv_t), + "::", + stringify!(a_un) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Elf64_auxv_t { + pub a_type: u64, + pub a_un: Elf64_auxv_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union Elf64_auxv_t__bindgen_ty_1 { + pub a_val: u64, +} +#[test] +fn bindgen_test_layout_Elf64_auxv_t__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf64_auxv_t__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_auxv_t__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).a_val as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_auxv_t__bindgen_ty_1), + "::", + stringify!(a_val) + ) + ); +} +#[test] +fn bindgen_test_layout_Elf64_auxv_t() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Elf64_auxv_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_auxv_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).a_type as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_auxv_t), + "::", + stringify!(a_type) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).a_un as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_auxv_t), + "::", + stringify!(a_un) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Nhdr { + pub n_namesz: Elf32_Word, + pub n_descsz: Elf32_Word, + pub n_type: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Nhdr() { + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(Elf32_Nhdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Nhdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_namesz as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Nhdr), + "::", + stringify!(n_namesz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_descsz as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Nhdr), + "::", + stringify!(n_descsz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_type as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Nhdr), + "::", + stringify!(n_type) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Nhdr { + pub n_namesz: Elf64_Word, + pub n_descsz: Elf64_Word, + pub n_type: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Nhdr() { + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(Elf64_Nhdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Nhdr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_namesz as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Nhdr), + "::", + stringify!(n_namesz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_descsz as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Nhdr), + "::", + stringify!(n_descsz) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).n_type as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Nhdr), + "::", + stringify!(n_type) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Move { + pub m_value: Elf32_Xword, + pub m_info: Elf32_Word, + pub m_poffset: Elf32_Word, + pub m_repeat: Elf32_Half, + pub m_stride: Elf32_Half, +} +#[test] +fn bindgen_test_layout_Elf32_Move() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf32_Move)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf32_Move)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_value as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Move), + "::", + stringify!(m_value) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Move), + "::", + stringify!(m_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_poffset as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Move), + "::", + stringify!(m_poffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_repeat as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Move), + "::", + stringify!(m_repeat) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_stride as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Move), + "::", + stringify!(m_stride) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Move { + pub m_value: Elf64_Xword, + pub m_info: Elf64_Xword, + pub m_poffset: Elf64_Xword, + pub m_repeat: Elf64_Half, + pub m_stride: Elf64_Half, +} +#[test] +fn bindgen_test_layout_Elf64_Move() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(Elf64_Move)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Elf64_Move)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_value as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Move), + "::", + stringify!(m_value) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Move), + "::", + stringify!(m_info) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_poffset as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Move), + "::", + stringify!(m_poffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_repeat as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Move), + "::", + stringify!(m_repeat) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).m_stride as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Move), + "::", + stringify!(m_stride) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union Elf32_gptab { + pub gt_header: Elf32_gptab__bindgen_ty_1, + pub gt_entry: Elf32_gptab__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_gptab__bindgen_ty_1 { + pub gt_current_g_value: Elf32_Word, + pub gt_unused: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_gptab__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_gptab__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_gptab__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).gt_current_g_value as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab__bindgen_ty_1), + "::", + stringify!(gt_current_g_value) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).gt_unused as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab__bindgen_ty_1), + "::", + stringify!(gt_unused) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_gptab__bindgen_ty_2 { + pub gt_g_value: Elf32_Word, + pub gt_bytes: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_gptab__bindgen_ty_2() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_gptab__bindgen_ty_2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_gptab__bindgen_ty_2)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).gt_g_value as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab__bindgen_ty_2), + "::", + stringify!(gt_g_value) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).gt_bytes as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab__bindgen_ty_2), + "::", + stringify!(gt_bytes) + ) + ); +} +#[test] +fn bindgen_test_layout_Elf32_gptab() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf32_gptab)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_gptab)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).gt_header as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab), + "::", + stringify!(gt_header) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).gt_entry as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_gptab), + "::", + stringify!(gt_entry) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_RegInfo { + pub ri_gprmask: Elf32_Word, + pub ri_cprmask: [Elf32_Word; 4usize], + pub ri_gp_value: Elf32_Sword, +} +#[test] +fn bindgen_test_layout_Elf32_RegInfo() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf32_RegInfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_RegInfo)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ri_gprmask as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_RegInfo), + "::", + stringify!(ri_gprmask) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ri_cprmask as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_RegInfo), + "::", + stringify!(ri_cprmask) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ri_gp_value as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf32_RegInfo), + "::", + stringify!(ri_gp_value) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf_Options { + pub kind: ::std::os::raw::c_uchar, + pub size: ::std::os::raw::c_uchar, + pub section: Elf32_Section, + pub info: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf_Options() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf_Options)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf_Options)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).kind as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options), + "::", + stringify!(kind) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).size as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).section as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options), + "::", + stringify!(section) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).info as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options), + "::", + stringify!(info) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf_Options_Hw { + pub hwp_flags1: Elf32_Word, + pub hwp_flags2: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf_Options_Hw() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(Elf_Options_Hw)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf_Options_Hw)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).hwp_flags1 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options_Hw), + "::", + stringify!(hwp_flags1) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).hwp_flags2 as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf_Options_Hw), + "::", + stringify!(hwp_flags2) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf32_Lib { + pub l_name: Elf32_Word, + pub l_time_stamp: Elf32_Word, + pub l_checksum: Elf32_Word, + pub l_version: Elf32_Word, + pub l_flags: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf32_Lib() { + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(Elf32_Lib)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf32_Lib)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Lib), + "::", + stringify!(l_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_time_stamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Lib), + "::", + stringify!(l_time_stamp) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_checksum as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Lib), + "::", + stringify!(l_checksum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_version as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Lib), + "::", + stringify!(l_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_flags as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf32_Lib), + "::", + stringify!(l_flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf64_Lib { + pub l_name: Elf64_Word, + pub l_time_stamp: Elf64_Word, + pub l_checksum: Elf64_Word, + pub l_version: Elf64_Word, + pub l_flags: Elf64_Word, +} +#[test] +fn bindgen_test_layout_Elf64_Lib() { + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(Elf64_Lib)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf64_Lib)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Lib), + "::", + stringify!(l_name) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_time_stamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Lib), + "::", + stringify!(l_time_stamp) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_checksum as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Lib), + "::", + stringify!(l_checksum) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_version as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Lib), + "::", + stringify!(l_version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).l_flags as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf64_Lib), + "::", + stringify!(l_flags) + ) + ); +} +pub type Elf32_Conflict = Elf32_Addr; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Elf_MIPS_ABIFlags_v0 { + pub version: Elf32_Half, + pub isa_level: ::std::os::raw::c_uchar, + pub isa_rev: ::std::os::raw::c_uchar, + pub gpr_size: ::std::os::raw::c_uchar, + pub cpr1_size: ::std::os::raw::c_uchar, + pub cpr2_size: ::std::os::raw::c_uchar, + pub fp_abi: ::std::os::raw::c_uchar, + pub isa_ext: Elf32_Word, + pub ases: Elf32_Word, + pub flags1: Elf32_Word, + pub flags2: Elf32_Word, +} +#[test] +fn bindgen_test_layout_Elf_MIPS_ABIFlags_v0() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(Elf_MIPS_ABIFlags_v0)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(Elf_MIPS_ABIFlags_v0)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).isa_level as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(isa_level) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).isa_rev as *const _ as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(isa_rev) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).gpr_size as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(gpr_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).cpr1_size as *const _ as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(cpr1_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).cpr2_size as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(cpr2_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).fp_abi as *const _ as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(fp_abi) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).isa_ext as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(isa_ext) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ases as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(ases) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).flags1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(flags1) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).flags2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(Elf_MIPS_ABIFlags_v0), + "::", + stringify!(flags2) + ) + ); +} +pub const Val_GNU_MIPS_ABI_FP_ANY: ::std::os::raw::c_uint = 0; +pub const Val_GNU_MIPS_ABI_FP_DOUBLE: ::std::os::raw::c_uint = 1; +pub const Val_GNU_MIPS_ABI_FP_SINGLE: ::std::os::raw::c_uint = 2; +pub const Val_GNU_MIPS_ABI_FP_SOFT: ::std::os::raw::c_uint = 3; +pub const Val_GNU_MIPS_ABI_FP_OLD_64: ::std::os::raw::c_uint = 4; +pub const Val_GNU_MIPS_ABI_FP_XX: ::std::os::raw::c_uint = 5; +pub const Val_GNU_MIPS_ABI_FP_64: ::std::os::raw::c_uint = 6; +pub const Val_GNU_MIPS_ABI_FP_64A: ::std::os::raw::c_uint = 7; +pub const Val_GNU_MIPS_ABI_FP_MAX: ::std::os::raw::c_uint = 7; +pub type _bindgen_ty_1 = ::std::os::raw::c_uint; diff --git a/elf/src/elf.rs b/elf/src/elf.rs new file mode 100644 index 0000000..012aa6a --- /dev/null +++ b/elf/src/elf.rs @@ -0,0 +1,37 @@ +use std::io::Read; +use std::mem::MaybeUninit; + +use anyhow::Result; + +use crate::constants::*; +use crate::header::E_IDENT; + +macro_rules! elf { + ($size:ty) => { + #[derive(Debug, Default)] + pub struct Elf { + pub header: Header, + } + + impl Elf { + pub(crate) fn continue_read(e_ident: E_IDENT, mut r: R) -> Result { + let mut elf: Self = unsafe { MaybeUninit::zeroed().assume_init() }; + elf.header = Header::continue_read(e_ident, r)?; + + Ok(elf) + } + } + }; +} + +pub mod elf32 { + use super::*; + use crate::header::header32::Header; + elf!(u32); +} + +pub mod elf64 { + use super::*; + use crate::header::header64::Header; + elf!(u64); +} diff --git a/elf/src/header.rs b/elf/src/header.rs new file mode 100644 index 0000000..fb7105a --- /dev/null +++ b/elf/src/header.rs @@ -0,0 +1,81 @@ +use std::io::Read; +use std::mem::MaybeUninit; + +use anyhow::Result; +use byteordered::{ByteOrdered, Endianness}; + +use crate::constants::*; + +pub type E_IDENT = [u8; EI_NIDENT]; + +macro_rules! elf_header { + ($size:ty, $read_size:ident) => { + #[derive(Debug)] + pub struct Header { + pub e_ident: E_IDENT, + pub e_type: u16, + pub e_machine: u16, + pub e_version: u32, + pub e_entry: $size, + pub e_phoff: $size, + pub e_shoff: $size, + pub e_flags: u32, + pub e_ehsize: u16, + pub e_phentsize: u16, + pub e_phnum: u16, + pub e_shentsize: u16, + pub e_shnum: u16, + pub e_shstrndx: u16, + } + + impl Default for Header { + fn default() -> Self { + let mut header: Self = unsafe { MaybeUninit::zeroed().assume_init() }; + header.e_ident[EI_MAG0] = ELFMAG0; + header.e_ident[EI_MAG1] = ELFMAG1; + header.e_ident[EI_MAG2] = ELFMAG2; + header.e_ident[EI_MAG3] = ELFMAG3; + header + } + } + + impl Header { + pub(crate) fn continue_read(e_ident: E_IDENT, mut r: R) -> Result { + let mut header = Header::default(); + + header.e_ident = e_ident; + let mut r = match header.e_ident[EI_DATA] { + ELFDATA2LSB => ByteOrdered::runtime(r, Endianness::Little), + ELFDATA2MSB => ByteOrdered::runtime(r, Endianness::Big), + _ => bail!("unknown endianness"), + }; + + header.e_type = r.read_u16()?; + header.e_machine = r.read_u16()?; + header.e_version = r.read_u32()?; + header.e_entry = r.$read_size()?; + header.e_phoff = r.$read_size()?; + header.e_shoff = r.$read_size()?; + header.e_flags = r.read_u32()?; + header.e_ehsize = r.read_u16()?; + header.e_phentsize = r.read_u16()?; + header.e_phnum = r.read_u16()?; + header.e_shentsize = r.read_u16()?; + header.e_shnum = r.read_u16()?; + header.e_shstrndx = r.read_u16()?; + + Ok(header) + } + } + }; +} + +pub mod header32 { + pub use super::*; + elf_header!(u32, read_u32); +} + +pub mod header64 { + pub use super::*; + elf_header!(u64, read_u64); +} diff --git a/elf/src/lib.rs b/elf/src/lib.rs index edc8f07..55c8d4e 100644 --- a/elf/src/lib.rs +++ b/elf/src/lib.rs @@ -1,52 +1,59 @@ +#[macro_use] +extern crate anyhow; + +#[allow(dead_code, non_upper_case_globals, non_camel_case_types)] +pub mod constants; +pub mod elf; +pub mod header; + use std::io::{Read, Write}; use std::mem::MaybeUninit; use anyhow::Result; -use byteorder::{LittleEndian, ReadBytesExt}; -const EI_DATA: i32 = 5; +use crate::constants::*; +pub use crate::elf::{elf32, elf64}; +use crate::header::E_IDENT; -#[derive(Debug, Default)] -pub struct Elf { - header: Header, - program_header: Option, +enum Bitness { + Bits32, + Bits64, } +#[cfg(target_pointer_width = "64")] +const SYSTEM_BITNESS: Bitness = Bitness::Bits64; +#[cfg(not(target_pointer_width = "64"))] +const SYSTEM_BITNESS: Bitness = Bitness::Bits32; + #[derive(Debug)] -pub struct Header { - e_ident: [u8; 16], - e_type: u16, - e_machine: u16, - e_version: u32, +pub enum Elf { + Elf32(crate::elf::elf32::Elf), + Elf64(crate::elf::elf64::Elf), } -impl Default for Header { +impl Default for Elf { fn default() -> Self { - let mut header: Self = unsafe { MaybeUninit::zeroed().assume_init() }; - header.e_ident[0] = 0x7f; - header.e_ident[1] = b'E'; - header.e_ident[2] = b'L'; - header.e_ident[3] = b'F'; - header + match SYSTEM_BITNESS { + Bitness::Bits32 => Elf::Elf32(elf32::Elf::default()), + Bitness::Bits64 => Elf::Elf64(elf64::Elf::default()), + } } } -#[derive(Debug, Default)] -pub struct ProgramHeader {} - impl Elf { - pub fn read(mut r: R) -> Result { - let mut elf = Elf::default(); + pub fn read(mut r: R) -> Result { + let mut e_ident: E_IDENT = [0u8; EI_NIDENT]; + r.read_exact(&mut e_ident); - // header - r.read_exact(&mut elf.header.e_ident)?; - elf.header.e_type = r.read_u16::()?; - - Ok(elf) + let res = match e_ident[EI_CLASS] { + ELFCLASS32 => Elf::Elf32(elf32::Elf::continue_read(e_ident, r)?), + ELFCLASS64 => Elf::Elf64(elf64::Elf::continue_read(e_ident, r)?), + n => bail!("invalid class: {}", n), + }; + Ok(res) } pub fn write(&self, mut w: W) -> Result<()> { - w.write(&self.header.e_ident)?; w.flush()?; Ok(()) diff --git a/src/link.rs b/src/link.rs index 892dbbf..402b552 100644 --- a/src/link.rs +++ b/src/link.rs @@ -14,6 +14,7 @@ pub(crate) fn link(opt: &Opt) -> Result<()> { LinkUnit::Path(path) => { let file = File::open(path)?; let elf = Elf::read(&file)?; + println!("elf: {:?}", elf); } _ => {} } diff --git a/src/utils.rs b/src/utils.rs index a24ad1d..3d8d4a8 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,4 +1,4 @@ -use std::path::{Path, PathBuf, Component}; +use std::path::{Component, Path, PathBuf}; pub fn normalize_path(path: &Path) -> PathBuf { let mut components = path.components().peekable(); @@ -25,4 +25,4 @@ pub fn normalize_path(path: &Path) -> PathBuf { } } ret -} \ No newline at end of file +}