Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1702 | Rev 1780 | ||
|---|---|---|---|
| Line 191... | Line 191... | ||
| 191 | * |
191 | * |
| 192 | * These types are found to be identical in both 32-bit and 64-bit |
192 | * These types are found to be identical in both 32-bit and 64-bit |
| 193 | * ELF object file specifications. They are the only types used |
193 | * ELF object file specifications. They are the only types used |
| 194 | * in ELF header. |
194 | * in ELF header. |
| 195 | */ |
195 | */ |
| 196 | typedef __u64 elf_xword; |
196 | typedef uint64_t elf_xword; |
| 197 | typedef __s64 elf_sxword; |
197 | typedef int64_t elf_sxword; |
| 198 | typedef __u32 elf_word; |
198 | typedef uint32_t elf_word; |
| 199 | typedef __s32 elf_sword; |
199 | typedef int32_t elf_sword; |
| 200 | typedef __u16 elf_half; |
200 | typedef uint16_t elf_half; |
| 201 | 201 | ||
| 202 | /** |
202 | /** |
| 203 | * 32-bit ELF data types. |
203 | * 32-bit ELF data types. |
| 204 | * |
204 | * |
| 205 | * These types are specific for 32-bit format. |
205 | * These types are specific for 32-bit format. |
| 206 | */ |
206 | */ |
| 207 | typedef __u32 elf32_addr; |
207 | typedef uint32_t elf32_addr; |
| 208 | typedef __u32 elf32_off; |
208 | typedef uint32_t elf32_off; |
| 209 | 209 | ||
| 210 | /** |
210 | /** |
| 211 | * 64-bit ELF data types. |
211 | * 64-bit ELF data types. |
| 212 | * |
212 | * |
| 213 | * These types are specific for 64-bit format. |
213 | * These types are specific for 64-bit format. |
| 214 | */ |
214 | */ |
| 215 | typedef __u64 elf64_addr; |
215 | typedef uint64_t elf64_addr; |
| 216 | typedef __u64 elf64_off; |
216 | typedef uint64_t elf64_off; |
| 217 | 217 | ||
| 218 | /** ELF header */ |
218 | /** ELF header */ |
| 219 | struct elf32_header { |
219 | struct elf32_header { |
| 220 | __u8 e_ident[EI_NIDENT]; |
220 | uint8_t e_ident[EI_NIDENT]; |
| 221 | elf_half e_type; |
221 | elf_half e_type; |
| 222 | elf_half e_machine; |
222 | elf_half e_machine; |
| 223 | elf_word e_version; |
223 | elf_word e_version; |
| 224 | elf32_addr e_entry; |
224 | elf32_addr e_entry; |
| 225 | elf32_off e_phoff; |
225 | elf32_off e_phoff; |
| Line 231... | Line 231... | ||
| 231 | elf_half e_shentsize; |
231 | elf_half e_shentsize; |
| 232 | elf_half e_shnum; |
232 | elf_half e_shnum; |
| 233 | elf_half e_shstrndx; |
233 | elf_half e_shstrndx; |
| 234 | }; |
234 | }; |
| 235 | struct elf64_header { |
235 | struct elf64_header { |
| 236 | __u8 e_ident[EI_NIDENT]; |
236 | uint8_t e_ident[EI_NIDENT]; |
| 237 | elf_half e_type; |
237 | elf_half e_type; |
| 238 | elf_half e_machine; |
238 | elf_half e_machine; |
| 239 | elf_word e_version; |
239 | elf_word e_version; |
| 240 | elf64_addr e_entry; |
240 | elf64_addr e_entry; |
| 241 | elf64_off e_phoff; |
241 | elf64_off e_phoff; |
| Line 307... | Line 307... | ||
| 307 | */ |
307 | */ |
| 308 | struct elf32_symbol { |
308 | struct elf32_symbol { |
| 309 | elf_word st_name; |
309 | elf_word st_name; |
| 310 | elf32_addr st_value; |
310 | elf32_addr st_value; |
| 311 | elf_word st_size; |
311 | elf_word st_size; |
| 312 | __u8 st_info; |
312 | uint8_t st_info; |
| 313 | __u8 st_other; |
313 | uint8_t st_other; |
| 314 | elf_half st_shndx; |
314 | elf_half st_shndx; |
| 315 | }; |
315 | }; |
| 316 | struct elf64_symbol { |
316 | struct elf64_symbol { |
| 317 | elf_word st_name; |
317 | elf_word st_name; |
| 318 | __u8 st_info; |
318 | uint8_t st_info; |
| 319 | __u8 st_other; |
319 | uint8_t st_other; |
| 320 | elf_half st_shndx; |
320 | elf_half st_shndx; |
| 321 | elf64_addr st_value; |
321 | elf64_addr st_value; |
| 322 | elf_xword st_size; |
322 | elf_xword st_size; |
| 323 | }; |
323 | }; |
| 324 | 324 | ||