X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Fld-acess.so_src%2Felf32.h;h=08087473269207ab81d6988788153ad207edc143;hb=28484b80f5d1e5f9e502f66484ada925ff833891;hp=be31517b43e78e861063a312febcf0f14fdd658d;hpb=c1771fb9d6e85a8453a0f4553b3878959901b613;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/ld-acess.so_src/elf32.h b/Usermode/Libraries/ld-acess.so_src/elf32.h index be31517b..08087473 100644 --- a/Usermode/Libraries/ld-acess.so_src/elf32.h +++ b/Usermode/Libraries/ld-acess.so_src/elf32.h @@ -8,7 +8,9 @@ #include +typedef uint16_t Elf32_Half; typedef uint32_t Elf32_Addr; +typedef uint32_t Elf32_Off; typedef uint32_t Elf32_Word; typedef int32_t Elf32_Sword; @@ -24,19 +26,19 @@ typedef int32_t Elf32_Sword; */ struct sElf32_Ehdr { uint8_t e_ident[16]; //!< Identifier Bytes - uint16_t filetype; //!< File Type - Uint16 machine; //!< Machine / Arch - Uint32 version; //!< Version (File?) - Uint32 entrypoint; //!< Entry Point - Uint32 phoff; //!< Program Header Offset - Uint32 shoff; //!< Section Header Offset - Uint32 flags; //!< Flags - Uint16 headersize; //!< Header Size - Uint16 phentsize; //!< Program Header Entry Size - Uint16 phentcount; //!< Program Header Entry Count - Uint16 shentsize; //!< Section Header Entry Size - Uint16 shentcount; //!< Section Header Entry Count - Uint16 shstrindex; //!< Section Header String Table Index + Elf32_Half filetype; //!< File Type + Elf32_Half machine; //!< Machine / Arch + Elf32_Word version; //!< Version (File?) + Elf32_Addr entrypoint; //!< Entry Point + Elf32_Off phoff; //!< Program Header Offset + Elf32_Word shoff; //!< Section Header Offset + Elf32_Word flags; //!< Flags + Elf32_Half headersize; //!< Header Size + Elf32_Half phentsize; //!< Program Header Entry Size + Elf32_Half phentcount; //!< Program Header Entry Count + Elf32_Half shentsize; //!< Section Header Entry Size + Elf32_Half shentcount; //!< Section Header Entry Count + Elf32_Half shstrindex; //!< Section Header String Table Index }; /** @@ -89,6 +91,7 @@ enum eElfSectionTypes { SHT_HIUSER = 0xffffffff }; +#if 0 #define SHF_WRITE 0x1 #define SHF_ALLOC 0x2 #define SHF_EXECINSTR 0x4 @@ -106,14 +109,15 @@ struct sElf32_Shent { Uint32 addralign; Uint32 entsize; }; //sizeof = 40 +#endif struct elf_sym_s { - Uint32 nameOfs; - Uint32 value; //Address - Uint32 size; - Uint8 info; - Uint8 other; - Uint16 shndx; + Elf32_Word nameOfs; + Elf32_Addr value; //Address + Elf32_Word size; + uint8_t info; + uint8_t other; + Elf32_Half shndx; }; #define STN_UNDEF 0 // Undefined Symbol @@ -130,24 +134,24 @@ enum { }; struct sElf32_Phdr { - Uint32 Type; - Uint32 Offset; + Elf32_Word Type; + Elf32_Off Offset; Elf32_Addr VAddr; Elf32_Addr PAddr; - Uint32 FileSize; - Uint32 MemSize; - Uint32 Flags; - Uint32 Align; + Elf32_Word FileSize; + Elf32_Word MemSize; + Elf32_Word Flags; + Elf32_Word Align; }; struct elf32_rel_s { - Uint32 r_offset; - Uint32 r_info; + Elf32_Addr r_offset; + Elf32_Word r_info; }; struct elf32_rela_s { - Uint32 r_offset; - Uint32 r_info; + Elf32_Addr r_offset; + Elf32_Word r_info; Elf32_Sword r_addend; }; @@ -202,8 +206,8 @@ enum { #define ELF32_R_INFO(s,t) (((s)<<8)+((t)&0xFF)) // Takes a type and symbol index and returns an info value struct elf32_dyn_s { - Uint16 d_tag; - Uint32 d_val; //Also d_ptr + Elf32_Half d_tag; + Elf32_Word d_val; //Also d_ptr }; enum {