From 90c3271ce500009cf07c212aba4c9cefded29582 Mon Sep 17 00:00:00 2001 From: Zach Reizner Date: Tue, 21 May 2019 14:52:52 -0700 Subject: [PATCH] kernel_loader: regenerate bindings without unions TEST=crosvm run vmlinux, kernel loads properly BUG=761517 Change-Id: I2c1ce6f89c1a4d3a03df87b4e1931f63a7f5e569 Reviewed-on: https://chromium-review.googlesource.com/1623456 Commit-Ready: Zach Reizner Tested-by: Zach Reizner Tested-by: kokoro Legacy-Commit-Queue: Commit Bot Reviewed-by: Daniel Verkamp --- kernel_loader/src/elf.rs | 2090 +++++--------------------------------- 1 file changed, 240 insertions(+), 1850 deletions(-) diff --git a/kernel_loader/src/elf.rs b/kernel_loader/src/elf.rs index f1f7efdf34..c591e52e31 100644 --- a/kernel_loader/src/elf.rs +++ b/kernel_loader/src/elf.rs @@ -3,1121 +3,256 @@ // found in the LICENSE file. /* - * automatically generated by rust-bindgen - * From upstream linux include/uapi/linux/elf.h at commit: - * 806276b7f07a39a1cc3f38bb1ef5c573d4594a38 + * automatically generated by bindgen + * From chromeos-linux v4.19 include/uapi/linux/elf.h + * $ bindgen \ + * --no-layout-tests --with-derive-default \ + * --whitelist-type Elf64_Ehdr --whitelist-type Elf64_Phdr --whitelist-var .+ \ + * include/uapi/linux/elf.h */ -#[repr(C)] -pub struct __BindgenUnionField(::std::marker::PhantomData); -impl __BindgenUnionField { - #[inline] - pub fn new() -> Self { - __BindgenUnionField(::std::marker::PhantomData) - } - #[inline] - pub unsafe fn as_ref(&self) -> &T { - ::std::mem::transmute(self) - } - #[inline] - pub unsafe fn as_mut(&mut self) -> &mut T { - ::std::mem::transmute(self) - } -} -impl ::std::default::Default for __BindgenUnionField { - #[inline] - fn default() -> Self { - Self::new() - } -} -impl ::std::clone::Clone for __BindgenUnionField { - #[inline] - fn clone(&self) -> Self { - Self::new() - } -} -impl ::std::marker::Copy for __BindgenUnionField {} -impl ::std::fmt::Debug for __BindgenUnionField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - fmt.write_str("__BindgenUnionField") - } -} -pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64; -pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024; -pub const EM_NONE: ::std::os::raw::c_uint = 0; -pub const EM_M32: ::std::os::raw::c_uint = 1; -pub const EM_SPARC: ::std::os::raw::c_uint = 2; -pub const EM_386: ::std::os::raw::c_uint = 3; -pub const EM_68K: ::std::os::raw::c_uint = 4; -pub const EM_88K: ::std::os::raw::c_uint = 5; -pub const EM_486: ::std::os::raw::c_uint = 6; -pub const EM_860: ::std::os::raw::c_uint = 7; -pub const EM_MIPS: ::std::os::raw::c_uint = 8; -pub const EM_MIPS_RS3_LE: ::std::os::raw::c_uint = 10; -pub const EM_MIPS_RS4_BE: ::std::os::raw::c_uint = 10; -pub const EM_PARISC: ::std::os::raw::c_uint = 15; -pub const EM_SPARC32PLUS: ::std::os::raw::c_uint = 18; -pub const EM_PPC: ::std::os::raw::c_uint = 20; -pub const EM_PPC64: ::std::os::raw::c_uint = 21; -pub const EM_SPU: ::std::os::raw::c_uint = 23; -pub const EM_ARM: ::std::os::raw::c_uint = 40; -pub const EM_SH: ::std::os::raw::c_uint = 42; -pub const EM_SPARCV9: ::std::os::raw::c_uint = 43; -pub const EM_H8_300: ::std::os::raw::c_uint = 46; -pub const EM_IA_64: ::std::os::raw::c_uint = 50; -pub const EM_X86_64: ::std::os::raw::c_uint = 62; -pub const EM_S390: ::std::os::raw::c_uint = 22; -pub const EM_CRIS: ::std::os::raw::c_uint = 76; -pub const EM_V850: ::std::os::raw::c_uint = 87; -pub const EM_M32R: ::std::os::raw::c_uint = 88; -pub const EM_MN10300: ::std::os::raw::c_uint = 89; -pub const EM_OPENRISC: ::std::os::raw::c_uint = 92; -pub const EM_BLACKFIN: ::std::os::raw::c_uint = 106; -pub const EM_ALTERA_NIOS2: ::std::os::raw::c_uint = 113; -pub const EM_TI_C6000: ::std::os::raw::c_uint = 140; -pub const EM_AARCH64: ::std::os::raw::c_uint = 183; -pub const EM_TILEPRO: ::std::os::raw::c_uint = 188; -pub const EM_MICROBLAZE: ::std::os::raw::c_uint = 189; -pub const EM_TILEGX: ::std::os::raw::c_uint = 191; -pub const EM_FRV: ::std::os::raw::c_uint = 21569; -pub const EM_AVR32: ::std::os::raw::c_uint = 6317; -pub const EM_ALPHA: ::std::os::raw::c_uint = 36902; -pub const EM_CYGNUS_V850: ::std::os::raw::c_uint = 36992; -pub const EM_CYGNUS_M32R: ::std::os::raw::c_uint = 36929; -pub const EM_S390_OLD: ::std::os::raw::c_uint = 41872; -pub const EM_CYGNUS_MN10300: ::std::os::raw::c_uint = 48879; -pub const PT_NULL: ::std::os::raw::c_uint = 0; -pub const PT_LOAD: ::std::os::raw::c_uint = 1; -pub const PT_DYNAMIC: ::std::os::raw::c_uint = 2; -pub const PT_INTERP: ::std::os::raw::c_uint = 3; -pub const PT_NOTE: ::std::os::raw::c_uint = 4; -pub const PT_SHLIB: ::std::os::raw::c_uint = 5; -pub const PT_PHDR: ::std::os::raw::c_uint = 6; -pub const PT_TLS: ::std::os::raw::c_uint = 7; -pub const PT_LOOS: ::std::os::raw::c_uint = 1610612736; -pub const PT_HIOS: ::std::os::raw::c_uint = 1879048191; -pub const PT_LOPROC: ::std::os::raw::c_uint = 1879048192; -pub const PT_HIPROC: ::std::os::raw::c_uint = 2147483647; -pub const PT_GNU_EH_FRAME: ::std::os::raw::c_uint = 1685382480; -pub const PT_GNU_STACK: ::std::os::raw::c_uint = 1685382481; -pub const PN_XNUM: ::std::os::raw::c_uint = 65535; -pub const ET_NONE: ::std::os::raw::c_uint = 0; -pub const ET_REL: ::std::os::raw::c_uint = 1; -pub const ET_EXEC: ::std::os::raw::c_uint = 2; -pub const ET_DYN: ::std::os::raw::c_uint = 3; -pub const ET_CORE: ::std::os::raw::c_uint = 4; -pub const ET_LOPROC: ::std::os::raw::c_uint = 65280; -pub const ET_HIPROC: ::std::os::raw::c_uint = 65535; -pub const DT_NULL: ::std::os::raw::c_uint = 0; -pub const DT_NEEDED: ::std::os::raw::c_uint = 1; -pub const DT_PLTRELSZ: ::std::os::raw::c_uint = 2; -pub const DT_PLTGOT: ::std::os::raw::c_uint = 3; -pub const DT_HASH: ::std::os::raw::c_uint = 4; -pub const DT_STRTAB: ::std::os::raw::c_uint = 5; -pub const DT_SYMTAB: ::std::os::raw::c_uint = 6; -pub const DT_RELA: ::std::os::raw::c_uint = 7; -pub const DT_RELASZ: ::std::os::raw::c_uint = 8; -pub const DT_RELAENT: ::std::os::raw::c_uint = 9; -pub const DT_STRSZ: ::std::os::raw::c_uint = 10; -pub const DT_SYMENT: ::std::os::raw::c_uint = 11; -pub const DT_INIT: ::std::os::raw::c_uint = 12; -pub const DT_FINI: ::std::os::raw::c_uint = 13; -pub const DT_SONAME: ::std::os::raw::c_uint = 14; -pub const DT_RPATH: ::std::os::raw::c_uint = 15; -pub const DT_SYMBOLIC: ::std::os::raw::c_uint = 16; -pub const DT_REL: ::std::os::raw::c_uint = 17; -pub const DT_RELSZ: ::std::os::raw::c_uint = 18; -pub const DT_RELENT: ::std::os::raw::c_uint = 19; -pub const DT_PLTREL: ::std::os::raw::c_uint = 20; -pub const DT_DEBUG: ::std::os::raw::c_uint = 21; -pub const DT_TEXTREL: ::std::os::raw::c_uint = 22; -pub const DT_JMPREL: ::std::os::raw::c_uint = 23; -pub const DT_ENCODING: ::std::os::raw::c_uint = 32; -pub const OLD_DT_LOOS: ::std::os::raw::c_uint = 1610612736; -pub const DT_LOOS: ::std::os::raw::c_uint = 1610612749; -pub const DT_HIOS: ::std::os::raw::c_uint = 1879044096; -pub const DT_VALRNGLO: ::std::os::raw::c_uint = 1879047424; -pub const DT_VALRNGHI: ::std::os::raw::c_uint = 1879047679; -pub const DT_ADDRRNGLO: ::std::os::raw::c_uint = 1879047680; -pub const DT_ADDRRNGHI: ::std::os::raw::c_uint = 1879047935; -pub const DT_VERSYM: ::std::os::raw::c_uint = 1879048176; -pub const DT_RELACOUNT: ::std::os::raw::c_uint = 1879048185; -pub const DT_RELCOUNT: ::std::os::raw::c_uint = 1879048186; -pub const DT_FLAGS_1: ::std::os::raw::c_uint = 1879048187; -pub const DT_VERDEF: ::std::os::raw::c_uint = 1879048188; -pub const DT_VERDEFNUM: ::std::os::raw::c_uint = 1879048189; -pub const DT_VERNEED: ::std::os::raw::c_uint = 1879048190; -pub const DT_VERNEEDNUM: ::std::os::raw::c_uint = 1879048191; -pub const OLD_DT_HIOS: ::std::os::raw::c_uint = 1879048191; -pub const DT_LOPROC: ::std::os::raw::c_uint = 1879048192; -pub const DT_HIPROC: ::std::os::raw::c_uint = 2147483647; -pub const STB_LOCAL: ::std::os::raw::c_uint = 0; -pub const STB_GLOBAL: ::std::os::raw::c_uint = 1; -pub const STB_WEAK: ::std::os::raw::c_uint = 2; -pub const STT_NOTYPE: ::std::os::raw::c_uint = 0; -pub const STT_OBJECT: ::std::os::raw::c_uint = 1; -pub const STT_FUNC: ::std::os::raw::c_uint = 2; -pub const STT_SECTION: ::std::os::raw::c_uint = 3; -pub const STT_FILE: ::std::os::raw::c_uint = 4; -pub const STT_COMMON: ::std::os::raw::c_uint = 5; -pub const STT_TLS: ::std::os::raw::c_uint = 6; -pub const EI_NIDENT: ::std::os::raw::c_uint = 16; -pub const PF_R: ::std::os::raw::c_uint = 4; -pub const PF_W: ::std::os::raw::c_uint = 2; -pub const PF_X: ::std::os::raw::c_uint = 1; -pub const SHT_NULL: ::std::os::raw::c_uint = 0; -pub const SHT_PROGBITS: ::std::os::raw::c_uint = 1; -pub const SHT_SYMTAB: ::std::os::raw::c_uint = 2; -pub const SHT_STRTAB: ::std::os::raw::c_uint = 3; -pub const SHT_RELA: ::std::os::raw::c_uint = 4; -pub const SHT_HASH: ::std::os::raw::c_uint = 5; -pub const SHT_DYNAMIC: ::std::os::raw::c_uint = 6; -pub const SHT_NOTE: ::std::os::raw::c_uint = 7; -pub const SHT_NOBITS: ::std::os::raw::c_uint = 8; -pub const SHT_REL: ::std::os::raw::c_uint = 9; -pub const SHT_SHLIB: ::std::os::raw::c_uint = 10; -pub const SHT_DYNSYM: ::std::os::raw::c_uint = 11; -pub const SHT_NUM: ::std::os::raw::c_uint = 12; -pub const SHT_LOPROC: ::std::os::raw::c_uint = 1879048192; -pub const SHT_HIPROC: ::std::os::raw::c_uint = 2147483647; -pub const SHT_LOUSER: ::std::os::raw::c_uint = 2147483648; -pub const SHT_HIUSER: ::std::os::raw::c_uint = 4294967295; -pub const SHF_WRITE: ::std::os::raw::c_uint = 1; -pub const SHF_ALLOC: ::std::os::raw::c_uint = 2; -pub const SHF_EXECINSTR: ::std::os::raw::c_uint = 4; -pub const SHF_MASKPROC: ::std::os::raw::c_uint = 4026531840; -pub const SHN_UNDEF: ::std::os::raw::c_uint = 0; -pub const SHN_LORESERVE: ::std::os::raw::c_uint = 65280; -pub const SHN_LOPROC: ::std::os::raw::c_uint = 65280; -pub const SHN_HIPROC: ::std::os::raw::c_uint = 65311; -pub const SHN_ABS: ::std::os::raw::c_uint = 65521; -pub const SHN_COMMON: ::std::os::raw::c_uint = 65522; -pub const SHN_HIRESERVE: ::std::os::raw::c_uint = 65535; -pub const EI_MAG0: ::std::os::raw::c_uint = 0; -pub const EI_MAG1: ::std::os::raw::c_uint = 1; -pub const EI_MAG2: ::std::os::raw::c_uint = 2; -pub const EI_MAG3: ::std::os::raw::c_uint = 3; -pub const EI_CLASS: ::std::os::raw::c_uint = 4; -pub const EI_DATA: ::std::os::raw::c_uint = 5; -pub const EI_VERSION: ::std::os::raw::c_uint = 6; -pub const EI_OSABI: ::std::os::raw::c_uint = 7; -pub const EI_PAD: ::std::os::raw::c_uint = 8; -pub const ELFMAG0: ::std::os::raw::c_uint = 127; -pub const ELFMAG1: u8 = b'E'; -pub const ELFMAG2: u8 = b'L'; -pub const ELFMAG3: u8 = b'F'; -pub const ELFMAG: &'static [u8; 5usize] = b"\x7fELF\x00"; -pub const SELFMAG: ::std::os::raw::c_uint = 4; -pub const ELFCLASSNONE: ::std::os::raw::c_uint = 0; -pub const ELFCLASS32: ::std::os::raw::c_uint = 1; -pub const ELFCLASS64: ::std::os::raw::c_uint = 2; -pub const ELFCLASSNUM: ::std::os::raw::c_uint = 3; -pub const ELFDATANONE: ::std::os::raw::c_uint = 0; -pub const ELFDATA2LSB: ::std::os::raw::c_uint = 1; -pub const ELFDATA2MSB: ::std::os::raw::c_uint = 2; -pub const EV_NONE: ::std::os::raw::c_uint = 0; -pub const EV_CURRENT: ::std::os::raw::c_uint = 1; -pub const EV_NUM: ::std::os::raw::c_uint = 2; -pub const ELFOSABI_NONE: ::std::os::raw::c_uint = 0; -pub const ELFOSABI_LINUX: ::std::os::raw::c_uint = 3; -pub const ELF_OSABI: ::std::os::raw::c_uint = 0; -pub const NT_PRSTATUS: ::std::os::raw::c_uint = 1; -pub const NT_PRFPREG: ::std::os::raw::c_uint = 2; -pub const NT_PRPSINFO: ::std::os::raw::c_uint = 3; -pub const NT_TASKSTRUCT: ::std::os::raw::c_uint = 4; -pub const NT_AUXV: ::std::os::raw::c_uint = 6; -pub const NT_SIGINFO: ::std::os::raw::c_uint = 1397311305; -pub const NT_FILE: ::std::os::raw::c_uint = 1179208773; -pub const NT_PRXFPREG: ::std::os::raw::c_uint = 1189489535; -pub const NT_PPC_VMX: ::std::os::raw::c_uint = 256; -pub const NT_PPC_SPE: ::std::os::raw::c_uint = 257; -pub const NT_PPC_VSX: ::std::os::raw::c_uint = 258; -pub const NT_386_TLS: ::std::os::raw::c_uint = 512; -pub const NT_386_IOPERM: ::std::os::raw::c_uint = 513; -pub const NT_X86_XSTATE: ::std::os::raw::c_uint = 514; -pub const NT_S390_HIGH_GPRS: ::std::os::raw::c_uint = 768; -pub const NT_S390_TIMER: ::std::os::raw::c_uint = 769; -pub const NT_S390_TODCMP: ::std::os::raw::c_uint = 770; -pub const NT_S390_TODPREG: ::std::os::raw::c_uint = 771; -pub const NT_S390_CTRS: ::std::os::raw::c_uint = 772; -pub const NT_S390_PREFIX: ::std::os::raw::c_uint = 773; -pub const NT_S390_LAST_BREAK: ::std::os::raw::c_uint = 774; -pub const NT_S390_SYSTEM_CALL: ::std::os::raw::c_uint = 775; -pub const NT_S390_TDB: ::std::os::raw::c_uint = 776; -pub const NT_S390_VXRS_LOW: ::std::os::raw::c_uint = 777; -pub const NT_S390_VXRS_HIGH: ::std::os::raw::c_uint = 778; -pub const NT_ARM_VFP: ::std::os::raw::c_uint = 1024; -pub const NT_ARM_TLS: ::std::os::raw::c_uint = 1025; -pub const NT_ARM_HW_BREAK: ::std::os::raw::c_uint = 1026; -pub const NT_ARM_HW_WATCH: ::std::os::raw::c_uint = 1027; -pub const NT_ARM_SYSTEM_CALL: ::std::os::raw::c_uint = 1028; -pub const NT_METAG_CBUF: ::std::os::raw::c_uint = 1280; -pub const NT_METAG_RPIPE: ::std::os::raw::c_uint = 1281; -pub const NT_METAG_TLS: ::std::os::raw::c_uint = 1282; -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_486: u32 = 6; +pub const EM_860: u32 = 7; +pub const EM_MIPS: u32 = 8; +pub const EM_MIPS_RS3_LE: u32 = 10; +pub const EM_MIPS_RS4_BE: u32 = 10; +pub const EM_PARISC: u32 = 15; +pub const EM_SPARC32PLUS: u32 = 18; +pub const EM_PPC: u32 = 20; +pub const EM_PPC64: u32 = 21; +pub const EM_SPU: u32 = 23; +pub const EM_ARM: u32 = 40; +pub const EM_SH: u32 = 42; +pub const EM_SPARCV9: u32 = 43; +pub const EM_H8_300: u32 = 46; +pub const EM_IA_64: u32 = 50; +pub const EM_X86_64: u32 = 62; +pub const EM_S390: u32 = 22; +pub const EM_CRIS: u32 = 76; +pub const EM_M32R: u32 = 88; +pub const EM_MN10300: u32 = 89; +pub const EM_OPENRISC: u32 = 92; +pub const EM_BLACKFIN: u32 = 106; +pub const EM_ALTERA_NIOS2: u32 = 113; +pub const EM_TI_C6000: u32 = 140; +pub const EM_AARCH64: u32 = 183; +pub const EM_TILEPRO: u32 = 188; +pub const EM_MICROBLAZE: u32 = 189; +pub const EM_TILEGX: u32 = 191; +pub const EM_BPF: u32 = 247; +pub const EM_FRV: u32 = 21569; +pub const EM_ALPHA: u32 = 36902; +pub const EM_CYGNUS_M32R: u32 = 36929; +pub const EM_S390_OLD: u32 = 41872; +pub const EM_CYGNUS_MN10300: u32 = 48879; +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_LOOS: u32 = 1610612736; +pub const PT_HIOS: u32 = 1879048191; +pub const PT_LOPROC: u32 = 1879048192; +pub const PT_HIPROC: u32 = 2147483647; +pub const PT_GNU_EH_FRAME: u32 = 1685382480; +pub const PT_GNU_STACK: u32 = 1685382481; +pub const PN_XNUM: u32 = 65535; +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_LOPROC: u32 = 65280; +pub const ET_HIPROC: u32 = 65535; +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_ENCODING: u32 = 32; +pub const OLD_DT_LOOS: u32 = 1610612736; +pub const DT_LOOS: u32 = 1610612749; +pub const DT_HIOS: u32 = 1879044096; +pub const DT_VALRNGLO: u32 = 1879047424; +pub const DT_VALRNGHI: u32 = 1879047679; +pub const DT_ADDRRNGLO: u32 = 1879047680; +pub const DT_ADDRRNGHI: u32 = 1879047935; +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 OLD_DT_HIOS: u32 = 1879048191; +pub const DT_LOPROC: u32 = 1879048192; +pub const DT_HIPROC: u32 = 2147483647; +pub const STB_LOCAL: u32 = 0; +pub const STB_GLOBAL: u32 = 1; +pub const STB_WEAK: u32 = 2; +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 EI_NIDENT: u32 = 16; +pub const PF_R: u32 = 4; +pub const PF_W: u32 = 2; +pub const PF_X: u32 = 1; +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_NUM: u32 = 12; +pub const SHT_LOPROC: u32 = 1879048192; +pub const SHT_HIPROC: u32 = 2147483647; +pub const SHT_LOUSER: u32 = 2147483648; +pub const SHT_HIUSER: u32 = 4294967295; +pub const SHF_WRITE: u32 = 1; +pub const SHF_ALLOC: u32 = 2; +pub const SHF_EXECINSTR: u32 = 4; +pub const SHF_RELA_LIVEPATCH: u32 = 1048576; +pub const SHF_RO_AFTER_INIT: u32 = 2097152; +pub const SHF_MASKPROC: u32 = 4026531840; +pub const SHN_UNDEF: u32 = 0; +pub const SHN_LORESERVE: u32 = 65280; +pub const SHN_LOPROC: u32 = 65280; +pub const SHN_HIPROC: u32 = 65311; +pub const SHN_LIVEPATCH: u32 = 65312; +pub const SHN_ABS: u32 = 65521; +pub const SHN_COMMON: u32 = 65522; +pub const SHN_HIRESERVE: u32 = 65535; +pub const EI_MAG0: u32 = 0; +pub const EI_MAG1: u32 = 1; +pub const EI_MAG2: u32 = 2; +pub const EI_MAG3: u32 = 3; +pub const EI_CLASS: u32 = 4; +pub const EI_DATA: u32 = 5; +pub const EI_VERSION: u32 = 6; +pub const EI_OSABI: u32 = 7; +pub const EI_PAD: u32 = 8; +pub const ELFMAG0: u32 = 127; +pub const ELFMAG1: u8 = 69u8; +pub const ELFMAG2: u8 = 76u8; +pub const ELFMAG3: u8 = 70u8; +pub const ELFMAG: &'static [u8; 5usize] = b"\x7FELF\0"; +pub const SELFMAG: u32 = 4; +pub const ELFCLASSNONE: u32 = 0; +pub const ELFCLASS32: u32 = 1; +pub const ELFCLASS64: u32 = 2; +pub const ELFCLASSNUM: u32 = 3; +pub const ELFDATANONE: u32 = 0; +pub const ELFDATA2LSB: u32 = 1; +pub const ELFDATA2MSB: u32 = 2; +pub const EV_NONE: u32 = 0; +pub const EV_CURRENT: u32 = 1; +pub const EV_NUM: u32 = 2; +pub const ELFOSABI_NONE: u32 = 0; +pub const ELFOSABI_LINUX: u32 = 3; +pub const ELF_OSABI: u32 = 0; +pub const NT_PRSTATUS: u32 = 1; +pub const NT_PRFPREG: u32 = 2; +pub const NT_PRPSINFO: u32 = 3; +pub const NT_TASKSTRUCT: u32 = 4; +pub const NT_AUXV: u32 = 6; +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_ARC_V2: u32 = 1536; +pub const NT_VMCOREDD: u32 = 1792; +pub const NT_MIPS_DSP: u32 = 2048; +pub const NT_MIPS_FP_MODE: u32 = 2049; pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -impl Clone for __kernel_fd_set { - fn clone(&self) -> Self { - *self - } -} -pub type __kernel_sighandler_t = - ::std::option::Option; -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -impl Clone for __kernel_fsid_t { - fn clone(&self) -> Self { - *self - } -} -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type Elf32_Addr = __u32; -pub type Elf32_Half = __u16; -pub type Elf32_Off = __u32; -pub type Elf32_Sword = __s32; -pub type Elf32_Word = __u32; pub type Elf64_Addr = __u64; pub type Elf64_Half = __u16; -pub type Elf64_SHalf = __s16; pub type Elf64_Off = __u64; -pub type Elf64_Sword = __s32; pub type Elf64_Word = __u32; pub type Elf64_Xword = __u64; -pub type Elf64_Sxword = __s64; #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct dynamic { - pub d_tag: Elf32_Sword, - pub d_un: dynamic__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct dynamic__bindgen_ty_1 { - pub d_val: __BindgenUnionField, - pub d_ptr: __BindgenUnionField, - pub bindgen_union_field: u32, -} -#[test] -fn bindgen_test_layout_dynamic__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dynamic__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dynamic__bindgen_ty_1)) - ); - assert_eq!( - unsafe { &(*(0 as *const dynamic__bindgen_ty_1)).d_val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(dynamic__bindgen_ty_1), - "::", - stringify!(d_val) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const dynamic__bindgen_ty_1)).d_ptr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(dynamic__bindgen_ty_1), - "::", - stringify!(d_ptr) - ) - ); -} -impl Clone for dynamic__bindgen_ty_1 { - fn clone(&self) -> Self { - *self - } -} -#[test] -fn bindgen_test_layout_dynamic() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dynamic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dynamic)) - ); - assert_eq!( - unsafe { &(*(0 as *const dynamic)).d_tag as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(dynamic), - "::", - stringify!(d_tag) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const dynamic)).d_un as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(dynamic), - "::", - stringify!(d_un) - ) - ); -} -impl Clone for dynamic { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Dyn = dynamic; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct Elf64_Dyn { - pub d_tag: Elf64_Sxword, - pub d_un: Elf64_Dyn__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct Elf64_Dyn__bindgen_ty_1 { - pub d_val: __BindgenUnionField, - pub d_ptr: __BindgenUnionField, - pub bindgen_union_field: u64, -} -#[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 { &(*(0 as *const Elf64_Dyn__bindgen_ty_1)).d_val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(Elf64_Dyn__bindgen_ty_1), - "::", - stringify!(d_val) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const Elf64_Dyn__bindgen_ty_1)).d_ptr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(Elf64_Dyn__bindgen_ty_1), - "::", - stringify!(d_ptr) - ) - ); -} -impl Clone for Elf64_Dyn__bindgen_ty_1 { - fn clone(&self) -> Self { - *self - } -} -#[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 { &(*(0 as *const Elf64_Dyn)).d_tag as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(Elf64_Dyn), - "::", - stringify!(d_tag) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const Elf64_Dyn)).d_un as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(Elf64_Dyn), - "::", - stringify!(d_un) - ) - ); -} -impl Clone for Elf64_Dyn { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf32_rel)).r_offset as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_rel), - "::", - stringify!(r_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_rel)).r_info as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_rel), - "::", - stringify!(r_info) - ) - ); -} -impl Clone for elf32_rel { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Rel = elf32_rel; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf64_rel)).r_offset as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_rel), - "::", - stringify!(r_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_rel)).r_info as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_rel), - "::", - stringify!(r_info) - ) - ); -} -impl Clone for elf64_rel { - fn clone(&self) -> Self { - *self - } -} -pub type Elf64_Rel = elf64_rel; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf32_rela)).r_offset as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_rela), - "::", - stringify!(r_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_rela)).r_info as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_rela), - "::", - stringify!(r_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_rela)).r_addend as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf32_rela), - "::", - stringify!(r_addend) - ) - ); -} -impl Clone for elf32_rela { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Rela = elf32_rela; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf64_rela)).r_offset as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_rela), - "::", - stringify!(r_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_rela)).r_info as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_rela), - "::", - stringify!(r_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_rela)).r_addend as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf64_rela), - "::", - stringify!(r_addend) - ) - ); -} -impl Clone for elf64_rela { - fn clone(&self) -> Self { - *self - } -} -pub type Elf64_Rela = elf64_rela; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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_Half, -} -#[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 { &(*(0 as *const elf32_sym)).st_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_name) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_sym)).st_value as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_value) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_sym)).st_size as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_sym)).st_info as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_sym)).st_other as *const _ as usize }, - 13usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_other) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_sym)).st_shndx as *const _ as usize }, - 14usize, - concat!( - "Alignment of field: ", - stringify!(elf32_sym), - "::", - stringify!(st_shndx) - ) - ); -} -impl Clone for elf32_sym { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Sym = elf32_sym; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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_Half, - 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 { &(*(0 as *const elf64_sym)).st_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_name) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_sym)).st_info as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_sym)).st_other as *const _ as usize }, - 5usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_other) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_sym)).st_shndx as *const _ as usize }, - 6usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_shndx) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_sym)).st_value as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_value) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_sym)).st_size as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf64_sym), - "::", - stringify!(st_size) - ) - ); -} -impl Clone for elf64_sym { - fn clone(&self) -> Self { - *self - } -} -pub type Elf64_Sym = elf64_sym; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct elf32_hdr { - 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_hdr() { - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(elf32_hdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(elf32_hdr)) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_ident as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_ident) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_type as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_machine as *const _ as usize }, - 18usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_machine) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_version as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_version) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_entry as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_entry) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_phoff as *const _ as usize }, - 28usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_phoff) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_shoff as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_shoff) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_flags as *const _ as usize }, - 36usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_ehsize as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_ehsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_phentsize as *const _ as usize }, - 42usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_phentsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_phnum as *const _ as usize }, - 44usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_phnum) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_shentsize as *const _ as usize }, - 46usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_shentsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_shnum as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_shnum) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_hdr)).e_shstrndx as *const _ as usize }, - 50usize, - concat!( - "Alignment of field: ", - stringify!(elf32_hdr), - "::", - stringify!(e_shstrndx) - ) - ); -} -impl Clone for elf32_hdr { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Ehdr = elf32_hdr; -#[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Default, Copy, Clone)] pub struct elf64_hdr { pub e_ident: [::std::os::raw::c_uchar; 16usize], pub e_type: Elf64_Half, @@ -1134,278 +269,9 @@ pub struct elf64_hdr { pub e_shnum: Elf64_Half, pub e_shstrndx: Elf64_Half, } -#[test] -fn bindgen_test_layout_elf64_hdr() { - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(elf64_hdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(elf64_hdr)) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_ident as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_ident) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_type as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_machine as *const _ as usize }, - 18usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_machine) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_version as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_version) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_entry as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_entry) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_phoff as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_phoff) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_shoff as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_shoff) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_flags as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_ehsize as *const _ as usize }, - 52usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_ehsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_phentsize as *const _ as usize }, - 54usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_phentsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_phnum as *const _ as usize }, - 56usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_phnum) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_shentsize as *const _ as usize }, - 58usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_shentsize) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_shnum as *const _ as usize }, - 60usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_shnum) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_hdr)).e_shstrndx as *const _ as usize }, - 62usize, - concat!( - "Alignment of field: ", - stringify!(elf64_hdr), - "::", - stringify!(e_shstrndx) - ) - ); -} -impl Clone for elf64_hdr { - fn clone(&self) -> Self { - *self - } -} pub type Elf64_Ehdr = elf64_hdr; #[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf32_phdr)).p_type as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_offset as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_vaddr as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_vaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_paddr as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_paddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_filesz as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_filesz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_memsz as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_memsz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_flags as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_phdr)).p_align as *const _ as usize }, - 28usize, - concat!( - "Alignment of field: ", - stringify!(elf32_phdr), - "::", - stringify!(p_align) - ) - ); -} -impl Clone for elf32_phdr { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Phdr = elf32_phdr; -#[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Default, Copy, Clone)] pub struct elf64_phdr { pub p_type: Elf64_Word, pub p_flags: Elf64_Word, @@ -1416,480 +282,4 @@ pub struct elf64_phdr { 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 { &(*(0 as *const elf64_phdr)).p_type as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_flags as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_offset as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_vaddr as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_vaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_paddr as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_paddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_filesz as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_filesz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_memsz as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_memsz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_phdr)).p_align as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(elf64_phdr), - "::", - stringify!(p_align) - ) - ); -} -impl Clone for elf64_phdr { - fn clone(&self) -> Self { - *self - } -} pub type Elf64_Phdr = elf64_phdr; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf32_shdr)).sh_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_name) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_type as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_flags as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_addr as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_addr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_offset as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_size as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_link as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_link) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_info as *const _ as usize }, - 28usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_addralign as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_addralign) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_shdr)).sh_entsize as *const _ as usize }, - 36usize, - concat!( - "Alignment of field: ", - stringify!(elf32_shdr), - "::", - stringify!(sh_entsize) - ) - ); -} -impl Clone for elf32_shdr { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Shdr = elf32_shdr; -#[repr(C)] -#[derive(Debug, Default, Copy)] -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 { &(*(0 as *const elf64_shdr)).sh_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_name) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_type as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_flags as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_addr as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_addr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_offset as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_offset) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_size as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_link as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_link) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_info as *const _ as usize }, - 44usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_addralign as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_addralign) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_shdr)).sh_entsize as *const _ as usize }, - 56usize, - concat!( - "Alignment of field: ", - stringify!(elf64_shdr), - "::", - stringify!(sh_entsize) - ) - ); -} -impl Clone for elf64_shdr { - fn clone(&self) -> Self { - *self - } -} -pub type Elf64_Shdr = elf64_shdr; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct elf32_note { - pub n_namesz: Elf32_Word, - pub n_descsz: Elf32_Word, - pub n_type: Elf32_Word, -} -#[test] -fn bindgen_test_layout_elf32_note() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(elf32_note)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(elf32_note)) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_note)).n_namesz as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf32_note), - "::", - stringify!(n_namesz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_note)).n_descsz as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf32_note), - "::", - stringify!(n_descsz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf32_note)).n_type as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf32_note), - "::", - stringify!(n_type) - ) - ); -} -impl Clone for elf32_note { - fn clone(&self) -> Self { - *self - } -} -pub type Elf32_Nhdr = elf32_note; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct elf64_note { - pub n_namesz: Elf64_Word, - pub n_descsz: Elf64_Word, - pub n_type: Elf64_Word, -} -#[test] -fn bindgen_test_layout_elf64_note() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(elf64_note)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(elf64_note)) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_note)).n_namesz as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(elf64_note), - "::", - stringify!(n_namesz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_note)).n_descsz as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(elf64_note), - "::", - stringify!(n_descsz) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const elf64_note)).n_type as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(elf64_note), - "::", - stringify!(n_type) - ) - ); -} -impl Clone for elf64_note { - fn clone(&self) -> Self { - *self - } -} -pub type Elf64_Nhdr = elf64_note;