diff options
author | Clyne Sullivan <clyne@clyne-lp.lan> | 2021-07-31 10:47:00 -0400 |
---|---|---|
committer | Clyne Sullivan <clyne@clyne-lp.lan> | 2021-07-31 10:47:00 -0400 |
commit | 123cc4c756cc8a22f66351ab65595c5a20e53e27 (patch) | |
tree | d12ee8cb3d91e08c422e5bd4b5cb01d7dd622b19 /source/elf_format.hpp | |
parent | d24ed15843c328983f9ed20283f89624e8574b9f (diff) |
reorganized source, wip
Diffstat (limited to 'source/elf_format.hpp')
-rw-r--r-- | source/elf_format.hpp | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/source/elf_format.hpp b/source/elf_format.hpp deleted file mode 100644 index d4feb99..0000000 --- a/source/elf_format.hpp +++ /dev/null @@ -1,100 +0,0 @@ -/** - * @file elf_format.cpp - * @brief Defines ELF binary format info. - * - * Free to use, written by Clyne Sullivan. - */ - -#ifndef STMDSP_ELF_FORMAT_HPP_ -#define STMDSP_ELF_FORMAT_HPP_ - -#include <cstdint> - -#define EI_NIDENT 16 - -#define PT_NULL 0 -#define PT_LOAD 1 -#define PT_DYNAMIC 2 -#define PT_INTERP 3 -#define PT_NOTE 4 -#define PT_SHLIB 5 -#define PT_PHDR 6 -#define PT_RESERVED 0x70000000 - -#define ELF32_ST_BIND(i) ((i) >> 4) -#define ELF32_ST_TYPE(i) ((i) & 0xF) -#define ELF32_ST_INFO(b, t) (((b) << 4) + ((t) & 0xF)) - -#define ELF32_R_SYM(i) ((i) >> 8) -#define ELF32_R_TYPE(i) ((i) & 0xFF) -#define ELF32_R_INFO(s, t) (((s) << 8) + ((t) & 0xFF)) - -typedef uint32_t Elf32_Addr; -typedef uint16_t Elf32_Half; -typedef uint32_t Elf32_Off; -typedef uint32_t Elf32_Sword; -typedef uint32_t Elf32_Word; - -typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; -} __attribute__((packed)) Elf32_Ehdr; - -typedef struct { - Elf32_Word sh_name; - Elf32_Word sh_type; - Elf32_Word sh_flags; - Elf32_Addr sh_addr; - Elf32_Off sh_offset; - Elf32_Word sh_size; - Elf32_Word sh_link; - Elf32_Word sh_info; - Elf32_Word sh_addralign; - Elf32_Word sh_entsize; -} __attribute__((packed)) Elf32_Shdr; - -typedef struct { - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; - unsigned char st_other; - Elf32_Half st_shndx; -} __attribute__((packed)) Elf32_Sym; - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; -} __attribute__((packed)) Elf32_Rel; - -typedef struct { - Elf32_Addr r_offset; - Elf32_Word r_info; - Elf32_Sword r_addend; -} __attribute__((packed)) Elf32_Rela; - -typedef struct { - Elf32_Word p_type; - Elf32_Off p_offset; - Elf32_Addr p_vaddr; - Elf32_Addr p_paddr; - Elf32_Word p_filesz; - Elf32_Word p_memsz; - Elf32_Word p_flags; - Elf32_Word p_align; -} __attribute__((packed)) Elf32_Phdr; - -#endif // STMDSP_ELF_FORMAT_HPP_ - |