kernel_loader/
elf.rs

1/* automatically generated by tools/bindgen-all-the-things */
2
3#![allow(clippy::missing_safety_doc)]
4#![allow(clippy::undocumented_unsafe_blocks)]
5#![allow(clippy::upper_case_acronyms)]
6#![allow(non_upper_case_globals)]
7#![allow(non_camel_case_types)]
8#![allow(non_snake_case)]
9#![allow(dead_code)]
10
11// Added by kernel_loader/bindgen.sh
12use zerocopy::FromBytes;
13use zerocopy::Immutable;
14use zerocopy::IntoBytes;
15use zerocopy::KnownLayout;
16
17pub const EM_NONE: u32 = 0;
18pub const EM_M32: u32 = 1;
19pub const EM_SPARC: u32 = 2;
20pub const EM_386: u32 = 3;
21pub const EM_68K: u32 = 4;
22pub const EM_88K: u32 = 5;
23pub const EM_486: u32 = 6;
24pub const EM_860: u32 = 7;
25pub const EM_MIPS: u32 = 8;
26pub const EM_MIPS_RS3_LE: u32 = 10;
27pub const EM_MIPS_RS4_BE: u32 = 10;
28pub const EM_PARISC: u32 = 15;
29pub const EM_SPARC32PLUS: u32 = 18;
30pub const EM_PPC: u32 = 20;
31pub const EM_PPC64: u32 = 21;
32pub const EM_SPU: u32 = 23;
33pub const EM_ARM: u32 = 40;
34pub const EM_SH: u32 = 42;
35pub const EM_SPARCV9: u32 = 43;
36pub const EM_H8_300: u32 = 46;
37pub const EM_IA_64: u32 = 50;
38pub const EM_X86_64: u32 = 62;
39pub const EM_S390: u32 = 22;
40pub const EM_CRIS: u32 = 76;
41pub const EM_M32R: u32 = 88;
42pub const EM_MN10300: u32 = 89;
43pub const EM_OPENRISC: u32 = 92;
44pub const EM_ARCOMPACT: u32 = 93;
45pub const EM_XTENSA: u32 = 94;
46pub const EM_BLACKFIN: u32 = 106;
47pub const EM_UNICORE: u32 = 110;
48pub const EM_ALTERA_NIOS2: u32 = 113;
49pub const EM_TI_C6000: u32 = 140;
50pub const EM_HEXAGON: u32 = 164;
51pub const EM_NDS32: u32 = 167;
52pub const EM_AARCH64: u32 = 183;
53pub const EM_TILEPRO: u32 = 188;
54pub const EM_MICROBLAZE: u32 = 189;
55pub const EM_TILEGX: u32 = 191;
56pub const EM_ARCV2: u32 = 195;
57pub const EM_RISCV: u32 = 243;
58pub const EM_BPF: u32 = 247;
59pub const EM_CSKY: u32 = 252;
60pub const EM_LOONGARCH: u32 = 258;
61pub const EM_FRV: u32 = 21569;
62pub const EM_ALPHA: u32 = 36902;
63pub const EM_CYGNUS_M32R: u32 = 36929;
64pub const EM_S390_OLD: u32 = 41872;
65pub const EM_CYGNUS_MN10300: u32 = 48879;
66pub const PT_NULL: u32 = 0;
67pub const PT_LOAD: u32 = 1;
68pub const PT_DYNAMIC: u32 = 2;
69pub const PT_INTERP: u32 = 3;
70pub const PT_NOTE: u32 = 4;
71pub const PT_SHLIB: u32 = 5;
72pub const PT_PHDR: u32 = 6;
73pub const PT_TLS: u32 = 7;
74pub const PT_LOOS: u32 = 1610612736;
75pub const PT_HIOS: u32 = 1879048191;
76pub const PT_LOPROC: u32 = 1879048192;
77pub const PT_HIPROC: u32 = 2147483647;
78pub const PT_GNU_EH_FRAME: u32 = 1685382480;
79pub const PT_GNU_STACK: u32 = 1685382481;
80pub const PT_GNU_RELRO: u32 = 1685382482;
81pub const PT_GNU_PROPERTY: u32 = 1685382483;
82pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
83pub const PN_XNUM: u32 = 65535;
84pub const ET_NONE: u32 = 0;
85pub const ET_REL: u32 = 1;
86pub const ET_EXEC: u32 = 2;
87pub const ET_DYN: u32 = 3;
88pub const ET_CORE: u32 = 4;
89pub const ET_LOPROC: u32 = 65280;
90pub const ET_HIPROC: u32 = 65535;
91pub const DT_NULL: u32 = 0;
92pub const DT_NEEDED: u32 = 1;
93pub const DT_PLTRELSZ: u32 = 2;
94pub const DT_PLTGOT: u32 = 3;
95pub const DT_HASH: u32 = 4;
96pub const DT_STRTAB: u32 = 5;
97pub const DT_SYMTAB: u32 = 6;
98pub const DT_RELA: u32 = 7;
99pub const DT_RELASZ: u32 = 8;
100pub const DT_RELAENT: u32 = 9;
101pub const DT_STRSZ: u32 = 10;
102pub const DT_SYMENT: u32 = 11;
103pub const DT_INIT: u32 = 12;
104pub const DT_FINI: u32 = 13;
105pub const DT_SONAME: u32 = 14;
106pub const DT_RPATH: u32 = 15;
107pub const DT_SYMBOLIC: u32 = 16;
108pub const DT_REL: u32 = 17;
109pub const DT_RELSZ: u32 = 18;
110pub const DT_RELENT: u32 = 19;
111pub const DT_PLTREL: u32 = 20;
112pub const DT_DEBUG: u32 = 21;
113pub const DT_TEXTREL: u32 = 22;
114pub const DT_JMPREL: u32 = 23;
115pub const DT_ENCODING: u32 = 32;
116pub const OLD_DT_LOOS: u32 = 1610612736;
117pub const DT_LOOS: u32 = 1610612749;
118pub const DT_HIOS: u32 = 1879044096;
119pub const DT_VALRNGLO: u32 = 1879047424;
120pub const DT_VALRNGHI: u32 = 1879047679;
121pub const DT_ADDRRNGLO: u32 = 1879047680;
122pub const DT_ADDRRNGHI: u32 = 1879047935;
123pub const DT_VERSYM: u32 = 1879048176;
124pub const DT_RELACOUNT: u32 = 1879048185;
125pub const DT_RELCOUNT: u32 = 1879048186;
126pub const DT_FLAGS_1: u32 = 1879048187;
127pub const DT_VERDEF: u32 = 1879048188;
128pub const DT_VERDEFNUM: u32 = 1879048189;
129pub const DT_VERNEED: u32 = 1879048190;
130pub const DT_VERNEEDNUM: u32 = 1879048191;
131pub const OLD_DT_HIOS: u32 = 1879048191;
132pub const DT_LOPROC: u32 = 1879048192;
133pub const DT_HIPROC: u32 = 2147483647;
134pub const STB_LOCAL: u32 = 0;
135pub const STB_GLOBAL: u32 = 1;
136pub const STB_WEAK: u32 = 2;
137pub const STT_NOTYPE: u32 = 0;
138pub const STT_OBJECT: u32 = 1;
139pub const STT_FUNC: u32 = 2;
140pub const STT_SECTION: u32 = 3;
141pub const STT_FILE: u32 = 4;
142pub const STT_COMMON: u32 = 5;
143pub const STT_TLS: u32 = 6;
144pub const EI_NIDENT: u32 = 16;
145pub const PF_R: u32 = 4;
146pub const PF_W: u32 = 2;
147pub const PF_X: u32 = 1;
148pub const SHT_NULL: u32 = 0;
149pub const SHT_PROGBITS: u32 = 1;
150pub const SHT_SYMTAB: u32 = 2;
151pub const SHT_STRTAB: u32 = 3;
152pub const SHT_RELA: u32 = 4;
153pub const SHT_HASH: u32 = 5;
154pub const SHT_DYNAMIC: u32 = 6;
155pub const SHT_NOTE: u32 = 7;
156pub const SHT_NOBITS: u32 = 8;
157pub const SHT_REL: u32 = 9;
158pub const SHT_SHLIB: u32 = 10;
159pub const SHT_DYNSYM: u32 = 11;
160pub const SHT_NUM: u32 = 12;
161pub const SHT_LOPROC: u32 = 1879048192;
162pub const SHT_HIPROC: u32 = 2147483647;
163pub const SHT_LOUSER: u32 = 2147483648;
164pub const SHT_HIUSER: u32 = 4294967295;
165pub const SHF_WRITE: u32 = 1;
166pub const SHF_ALLOC: u32 = 2;
167pub const SHF_EXECINSTR: u32 = 4;
168pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
169pub const SHF_RO_AFTER_INIT: u32 = 2097152;
170pub const SHF_MASKPROC: u32 = 4026531840;
171pub const SHN_UNDEF: u32 = 0;
172pub const SHN_LORESERVE: u32 = 65280;
173pub const SHN_LOPROC: u32 = 65280;
174pub const SHN_HIPROC: u32 = 65311;
175pub const SHN_LIVEPATCH: u32 = 65312;
176pub const SHN_ABS: u32 = 65521;
177pub const SHN_COMMON: u32 = 65522;
178pub const SHN_HIRESERVE: u32 = 65535;
179pub const EI_MAG0: u32 = 0;
180pub const EI_MAG1: u32 = 1;
181pub const EI_MAG2: u32 = 2;
182pub const EI_MAG3: u32 = 3;
183pub const EI_CLASS: u32 = 4;
184pub const EI_DATA: u32 = 5;
185pub const EI_VERSION: u32 = 6;
186pub const EI_OSABI: u32 = 7;
187pub const EI_PAD: u32 = 8;
188pub const ELFMAG0: u32 = 127;
189pub const ELFMAG1: u8 = 69u8;
190pub const ELFMAG2: u8 = 76u8;
191pub const ELFMAG3: u8 = 70u8;
192pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
193pub const SELFMAG: u32 = 4;
194pub const ELFCLASSNONE: u32 = 0;
195pub const ELFCLASS32: u32 = 1;
196pub const ELFCLASS64: u32 = 2;
197pub const ELFCLASSNUM: u32 = 3;
198pub const ELFDATANONE: u32 = 0;
199pub const ELFDATA2LSB: u32 = 1;
200pub const ELFDATA2MSB: u32 = 2;
201pub const EV_NONE: u32 = 0;
202pub const EV_CURRENT: u32 = 1;
203pub const EV_NUM: u32 = 2;
204pub const ELFOSABI_NONE: u32 = 0;
205pub const ELFOSABI_LINUX: u32 = 3;
206pub const ELF_OSABI: u32 = 0;
207pub const NT_PRSTATUS: u32 = 1;
208pub const NT_PRFPREG: u32 = 2;
209pub const NT_PRPSINFO: u32 = 3;
210pub const NT_TASKSTRUCT: u32 = 4;
211pub const NT_AUXV: u32 = 6;
212pub const NT_SIGINFO: u32 = 1397311305;
213pub const NT_FILE: u32 = 1179208773;
214pub const NT_PRXFPREG: u32 = 1189489535;
215pub const NT_PPC_VMX: u32 = 256;
216pub const NT_PPC_SPE: u32 = 257;
217pub const NT_PPC_VSX: u32 = 258;
218pub const NT_PPC_TAR: u32 = 259;
219pub const NT_PPC_PPR: u32 = 260;
220pub const NT_PPC_DSCR: u32 = 261;
221pub const NT_PPC_EBB: u32 = 262;
222pub const NT_PPC_PMU: u32 = 263;
223pub const NT_PPC_TM_CGPR: u32 = 264;
224pub const NT_PPC_TM_CFPR: u32 = 265;
225pub const NT_PPC_TM_CVMX: u32 = 266;
226pub const NT_PPC_TM_CVSX: u32 = 267;
227pub const NT_PPC_TM_SPR: u32 = 268;
228pub const NT_PPC_TM_CTAR: u32 = 269;
229pub const NT_PPC_TM_CPPR: u32 = 270;
230pub const NT_PPC_TM_CDSCR: u32 = 271;
231pub const NT_PPC_PKEY: u32 = 272;
232pub const NT_PPC_DEXCR: u32 = 273;
233pub const NT_PPC_HASHKEYR: u32 = 274;
234pub const NT_386_TLS: u32 = 512;
235pub const NT_386_IOPERM: u32 = 513;
236pub const NT_X86_XSTATE: u32 = 514;
237pub const NT_X86_SHSTK: u32 = 516;
238pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
239pub const NT_S390_HIGH_GPRS: u32 = 768;
240pub const NT_S390_TIMER: u32 = 769;
241pub const NT_S390_TODCMP: u32 = 770;
242pub const NT_S390_TODPREG: u32 = 771;
243pub const NT_S390_CTRS: u32 = 772;
244pub const NT_S390_PREFIX: u32 = 773;
245pub const NT_S390_LAST_BREAK: u32 = 774;
246pub const NT_S390_SYSTEM_CALL: u32 = 775;
247pub const NT_S390_TDB: u32 = 776;
248pub const NT_S390_VXRS_LOW: u32 = 777;
249pub const NT_S390_VXRS_HIGH: u32 = 778;
250pub const NT_S390_GS_CB: u32 = 779;
251pub const NT_S390_GS_BC: u32 = 780;
252pub const NT_S390_RI_CB: u32 = 781;
253pub const NT_S390_PV_CPU_DATA: u32 = 782;
254pub const NT_ARM_VFP: u32 = 1024;
255pub const NT_ARM_TLS: u32 = 1025;
256pub const NT_ARM_HW_BREAK: u32 = 1026;
257pub const NT_ARM_HW_WATCH: u32 = 1027;
258pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
259pub const NT_ARM_SVE: u32 = 1029;
260pub const NT_ARM_PAC_MASK: u32 = 1030;
261pub const NT_ARM_PACA_KEYS: u32 = 1031;
262pub const NT_ARM_PACG_KEYS: u32 = 1032;
263pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
264pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
265pub const NT_ARM_SSVE: u32 = 1035;
266pub const NT_ARM_ZA: u32 = 1036;
267pub const NT_ARM_ZT: u32 = 1037;
268pub const NT_ARM_FPMR: u32 = 1038;
269pub const NT_ARM_POE: u32 = 1039;
270pub const NT_ARC_V2: u32 = 1536;
271pub const NT_VMCOREDD: u32 = 1792;
272pub const NT_MIPS_DSP: u32 = 2048;
273pub const NT_MIPS_FP_MODE: u32 = 2049;
274pub const NT_MIPS_MSA: u32 = 2050;
275pub const NT_RISCV_CSR: u32 = 2304;
276pub const NT_RISCV_VECTOR: u32 = 2305;
277pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
278pub const NT_LOONGARCH_CSR: u32 = 2561;
279pub const NT_LOONGARCH_LSX: u32 = 2562;
280pub const NT_LOONGARCH_LASX: u32 = 2563;
281pub const NT_LOONGARCH_LBT: u32 = 2564;
282pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
283pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
284pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
285pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
286pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
287pub type Elf32_Addr = u32;
288pub type Elf32_Half = u16;
289pub type Elf32_Off = u32;
290pub type Elf32_Word = u32;
291pub type Elf64_Addr = u64;
292pub type Elf64_Half = u16;
293pub type Elf64_Off = u64;
294pub type Elf64_Word = u32;
295pub type Elf64_Xword = u64;
296#[repr(C)]
297#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
298pub struct elf32_hdr {
299    pub e_ident: [::std::os::raw::c_uchar; 16usize],
300    pub e_type: Elf32_Half,
301    pub e_machine: Elf32_Half,
302    pub e_version: Elf32_Word,
303    pub e_entry: Elf32_Addr,
304    pub e_phoff: Elf32_Off,
305    pub e_shoff: Elf32_Off,
306    pub e_flags: Elf32_Word,
307    pub e_ehsize: Elf32_Half,
308    pub e_phentsize: Elf32_Half,
309    pub e_phnum: Elf32_Half,
310    pub e_shentsize: Elf32_Half,
311    pub e_shnum: Elf32_Half,
312    pub e_shstrndx: Elf32_Half,
313}
314pub type Elf32_Ehdr = elf32_hdr;
315#[repr(C)]
316#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
317pub struct elf64_hdr {
318    pub e_ident: [::std::os::raw::c_uchar; 16usize],
319    pub e_type: Elf64_Half,
320    pub e_machine: Elf64_Half,
321    pub e_version: Elf64_Word,
322    pub e_entry: Elf64_Addr,
323    pub e_phoff: Elf64_Off,
324    pub e_shoff: Elf64_Off,
325    pub e_flags: Elf64_Word,
326    pub e_ehsize: Elf64_Half,
327    pub e_phentsize: Elf64_Half,
328    pub e_phnum: Elf64_Half,
329    pub e_shentsize: Elf64_Half,
330    pub e_shnum: Elf64_Half,
331    pub e_shstrndx: Elf64_Half,
332}
333pub type Elf64_Ehdr = elf64_hdr;
334#[repr(C)]
335#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
336pub struct elf32_phdr {
337    pub p_type: Elf32_Word,
338    pub p_offset: Elf32_Off,
339    pub p_vaddr: Elf32_Addr,
340    pub p_paddr: Elf32_Addr,
341    pub p_filesz: Elf32_Word,
342    pub p_memsz: Elf32_Word,
343    pub p_flags: Elf32_Word,
344    pub p_align: Elf32_Word,
345}
346pub type Elf32_Phdr = elf32_phdr;
347#[repr(C)]
348#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
349pub struct elf64_phdr {
350    pub p_type: Elf64_Word,
351    pub p_flags: Elf64_Word,
352    pub p_offset: Elf64_Off,
353    pub p_vaddr: Elf64_Addr,
354    pub p_paddr: Elf64_Addr,
355    pub p_filesz: Elf64_Xword,
356    pub p_memsz: Elf64_Xword,
357    pub p_align: Elf64_Xword,
358}
359pub type Elf64_Phdr = elf64_phdr;