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