1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
/* automatically generated by rust-bindgen 0.66.1 */

pub const PT_NULL: i32 = 0;
pub const PT_LOAD: i32 = 1;
pub const PT_DYNAMIC: i32 = 2;
pub const PT_INTERP: i32 = 3;
pub const PT_NOTE: i32 = 4;
pub const PT_SHLIB: i32 = 5;
pub const PT_PHDR: i32 = 6;
pub const PT_TLS: i32 = 7;
pub const PT_LOOS: i32 = 1610612736;
pub const PT_HIOS: i32 = 1879048191;
pub const PT_LOPROC: i32 = 1879048192;
pub const PT_HIPROC: i32 = 2147483647;
pub const PT_GNU_EH_FRAME: i32 = 1685382480;
pub const PT_GNU_STACK: i32 = 1685382481;
pub const PT_GNU_RELRO: i32 = 1685382482;
pub const PT_GNU_PROPERTY: i32 = 1685382483;
pub const PT_AARCH64_MEMTAG_MTE: i32 = 1879048194;
pub const DT_NULL: i32 = 0;
pub const DT_NEEDED: i32 = 1;
pub const DT_PLTRELSZ: i32 = 2;
pub const DT_PLTGOT: i32 = 3;
pub const DT_HASH: i32 = 4;
pub const DT_STRTAB: i32 = 5;
pub const DT_SYMTAB: i32 = 6;
pub const DT_RELA: i32 = 7;
pub const DT_RELASZ: i32 = 8;
pub const DT_RELAENT: i32 = 9;
pub const DT_STRSZ: i32 = 10;
pub const DT_SYMENT: i32 = 11;
pub const DT_INIT: i32 = 12;
pub const DT_FINI: i32 = 13;
pub const DT_SONAME: i32 = 14;
pub const DT_RPATH: i32 = 15;
pub const DT_SYMBOLIC: i32 = 16;
pub const DT_REL: i32 = 17;
pub const DT_RELSZ: i32 = 18;
pub const DT_RELENT: i32 = 19;
pub const DT_PLTREL: i32 = 20;
pub const DT_DEBUG: i32 = 21;
pub const DT_TEXTREL: i32 = 22;
pub const DT_JMPREL: i32 = 23;
pub const DT_ENCODING: i32 = 32;
pub const DT_LOOS: i32 = 1610612749;
pub const DT_HIOS: i32 = 1879044096;
pub const DT_VALRNGLO: i32 = 1879047424;
pub const DT_VALRNGHI: i32 = 1879047679;
pub const DT_ADDRRNGLO: i32 = 1879047680;
pub const DT_ADDRRNGHI: i32 = 1879047935;
pub const DT_VERSYM: i32 = 1879048176;
pub const DT_RELACOUNT: i32 = 1879048185;
pub const DT_RELCOUNT: i32 = 1879048186;
pub const DT_FLAGS_1: i32 = 1879048187;
pub const DT_VERDEF: i32 = 1879048188;
pub const DT_VERDEFNUM: i32 = 1879048189;
pub const DT_VERNEED: i32 = 1879048190;
pub const DT_VERNEEDNUM: i32 = 1879048191;
pub const DT_LOPROC: i32 = 1879048192;
pub const DT_HIPROC: i32 = 2147483647;
pub type __u16 = ::core::ffi::c_ushort;
pub type __s32 = ::core::ffi::c_int;
pub type __u32 = ::core::ffi::c_uint;
pub type __s64 = ::core::ffi::c_longlong;
pub type __u64 = ::core::ffi::c_ulonglong;
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_Off = __u64;
pub type Elf64_Word = __u32;
pub type Elf64_Xword = __u64;
pub type Elf64_Sxword = __s64;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct dynamic {
    pub d_tag: Elf32_Sword,
    pub d_un: dynamic__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union dynamic__bindgen_ty_1 {
    pub d_val: Elf32_Sword,
    pub d_ptr: Elf32_Addr,
}
pub type Elf32_Dyn = dynamic;
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct elf32_rel {
    pub r_offset: Elf32_Addr,
    pub r_info: Elf32_Word,
}
pub type Elf32_Rel = elf32_rel;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct elf64_rel {
    pub r_offset: Elf64_Addr,
    pub r_info: Elf64_Xword,
}
pub type Elf64_Rel = elf64_rel;
#[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,
}
pub type Elf32_Rela = elf32_rela;
#[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,
}
pub type Elf64_Rela = elf64_rela;
#[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: ::core::ffi::c_uchar,
    pub st_other: ::core::ffi::c_uchar,
    pub st_shndx: Elf32_Half,
}
pub type Elf32_Sym = elf32_sym;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct elf64_sym {
    pub st_name: Elf64_Word,
    pub st_info: ::core::ffi::c_uchar,
    pub st_other: ::core::ffi::c_uchar,
    pub st_shndx: Elf64_Half,
    pub st_value: Elf64_Addr,
    pub st_size: Elf64_Xword,
}
pub type Elf64_Sym = elf64_sym;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct elf32_hdr {
    pub e_ident: [::core::ffi::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,
}
pub type Elf32_Ehdr = elf32_hdr;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct elf64_hdr {
    pub e_ident: [::core::ffi::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,
}
pub type Elf64_Ehdr = elf64_hdr;
#[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,
}
pub type Elf32_Phdr = elf32_phdr;
#[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,
}
pub type Elf64_Phdr = elf64_phdr;
#[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,
}
pub type Elf32_Shdr = elf32_shdr;
#[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,
}
pub type Elf64_Shdr = elf64_shdr;