123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #ifndef _ELF_H
- #define _ELF_H
- #include <stdint.h>
- #define ELF_MAGIC 0x464c457fu
- #define EM_ARM 0x28u
- #define EF_ARM_ABI_FLOAT_HARD 0x00000400u
- #define PT_LOAD 0x00000001u
- #pragma pack(push, 1)
- struct elf_header {
- uint32_t magic;
- uint8_t arch_class;
- uint8_t endianness;
- uint8_t version;
- uint8_t abi;
- uint8_t abi_version;
- uint8_t _pad[7];
- uint16_t type;
- uint16_t machine;
- uint32_t version2;
- };
- struct elf32_header {
- struct elf_header common;
- uint32_t entry;
- uint32_t ph_offset;
- uint32_t sh_offset;
- uint32_t flags;
- uint16_t eh_size;
- uint16_t ph_entry_size;
- uint16_t ph_num;
- uint16_t sh_entry_size;
- uint16_t sh_num;
- uint16_t sh_str_index;
- };
- struct elf32_ph_entry {
- uint32_t type;
- uint32_t offset;
- uint32_t vaddr;
- uint32_t paddr;
- uint32_t filez;
- uint32_t memsz;
- uint32_t flags;
- uint32_t align;
- };
- #pragma pack(pop)
- #endif
|