| /** | |
| * D header file for Solaris. | |
| * | |
| * $(LINK2 http://src.illumos.org/source/xref/illumos-gate/usr/src/head/libelf.h, illumos libelf.h) | |
| */ | |
| module core.sys.solaris.libelf; | |
| version (Solaris): | |
| extern (C): | |
| nothrow: | |
| import core.stdc.config; | |
| import core.sys.posix.sys.types; | |
| import core.sys.solaris.sys.elf; | |
| enum Elf_Cmd | |
| { | |
| ELF_C_NULL = 0, | |
| ELF_C_READ, | |
| ELF_C_WRITE, | |
| ELF_C_CLR, | |
| ELF_C_SET, | |
| ELF_C_FDDONE, | |
| ELF_C_FDREAD, | |
| ELF_C_RDWR, | |
| ELF_C_WRIMAGE, | |
| ELF_C_IMAGE, | |
| ELF_C_NUM | |
| } | |
| enum ELF_F_DIRTY = 0x1; | |
| enum ELF_F_LAYOUT = 0x4; | |
| enum Elf_Kind | |
| { | |
| ELF_K_NONE = 0, | |
| ELF_K_AR, | |
| ELF_K_COFF, | |
| ELF_K_ELF, | |
| ELF_K_NUM | |
| } | |
| enum Elf_Type | |
| { | |
| ELF_T_BYTE = 0, | |
| ELF_T_ADDR, | |
| ELF_T_DYN, | |
| ELF_T_EHDR, | |
| ELF_T_HALF, | |
| ELF_T_OFF, | |
| ELF_T_PHDR, | |
| ELF_T_RELA, | |
| ELF_T_REL, | |
| ELF_T_SHDR, | |
| ELF_T_SWORD, | |
| ELF_T_SYM, | |
| ELF_T_WORD, | |
| ELF_T_VDEF, | |
| ELF_T_VNEED, | |
| ELF_T_SXWORD, | |
| ELF_T_XWORD, | |
| ELF_T_SYMINFO, | |
| ELF_T_NOTE, | |
| ELF_T_MOVE, | |
| ELF_T_MOVEP, | |
| ELF_T_CAP, | |
| ELF_T_NUM | |
| } | |
| struct Elf | |
| { | |
| } | |
| struct Elf_Scn | |
| { | |
| } | |
| struct Elf_Arhdr | |
| { | |
| char* ar_name; | |
| time_t ar_date; | |
| uid_t ar_uid; | |
| gid_t ar_gid; | |
| mode_t ar_mode; | |
| off_t ar_size; | |
| char* ar_rawname; | |
| } | |
| struct Elf_Arsym | |
| { | |
| char* as_name; | |
| size_t as_off; | |
| c_ulong as_hash; | |
| } | |
| struct Elf_Data | |
| { | |
| void* d_buf; | |
| Elf_Type d_type; | |
| size_t d_size; | |
| off_t d_off; | |
| size_t d_align; | |
| uint d_version; | |
| } | |
| Elf* elf_begin(int, Elf_Cmd, Elf*); | |
| int elf_cntl(Elf*, Elf_Cmd); | |
| int elf_end(Elf*); | |
| const(char)* elf_errmsg(int); | |
| int elf_errno(); | |
| void elf_fill(int); | |
| uint elf_flagdata(Elf_Data*, Elf_Cmd, uint); | |
| uint elf_flagehdr(Elf*, Elf_Cmd, uint); | |
| uint elf_flagelf(Elf*, Elf_Cmd, uint); | |
| uint elf_flagphdr(Elf*, Elf_Cmd, uint); | |
| uint elf_flagscn(Elf_Scn*, Elf_Cmd, uint); | |
| uint elf_flagshdr(Elf_Scn*, Elf_Cmd, uint); | |
| size_t elf32_fsize(Elf_Type, size_t, uint); | |
| Elf_Arhdr* elf_getarhdr(Elf*); | |
| Elf_Arsym* elf_getarsym(Elf*, size_t*); | |
| off_t elf_getbase(Elf*); | |
| Elf_Data* elf_getdata(Elf_Scn*, Elf_Data*); | |
| Elf32_Ehdr* elf32_getehdr(Elf*); | |
| char* elf_getident(Elf*, size_t*); | |
| Elf32_Phdr* elf32_getphdr(Elf*); | |
| Elf_Scn* elf_getscn(Elf*, size_t); | |
| Elf32_Shdr* elf32_getshdr(Elf_Scn*); | |
| int elf_getphnum(Elf*, size_t*); | |
| int elf_getphdrnum(Elf*, size_t*); | |
| int elf_getshnum(Elf*, size_t*); | |
| int elf_getshdrnum(Elf*, size_t*); | |
| int elf_getshstrndx(Elf*, size_t*); | |
| int elf_getshdrstrndx(Elf*, size_t*); | |
| c_ulong elf_hash(const scope char*); | |
| uint elf_sys_encoding(); | |
| long elf32_checksum(Elf*); | |
| Elf_Kind elf_kind(Elf*); | |
| Elf* elf_memory(char*, size_t); | |
| size_t elf_ndxscn(Elf_Scn*); | |
| Elf_Data* elf_newdata(Elf_Scn*); | |
| Elf32_Ehdr* elf32_newehdr(Elf*); | |
| Elf32_Phdr* elf32_newphdr(Elf*, size_t); | |
| Elf_Scn* elf_newscn(Elf*); | |
| Elf_Scn* elf_nextscn(Elf*, Elf_Scn*); | |
| Elf_Cmd elf_next(Elf*); | |
| size_t elf_rand(Elf*, size_t); | |
| Elf_Data* elf_rawdata(Elf_Scn*, Elf_Data*); | |
| char* elf_rawfile(Elf*, size_t*); | |
| char* elf_strptr(Elf*, size_t, size_t); | |
| off_t elf_update(Elf*, Elf_Cmd); | |
| uint elf_version(uint); | |
| Elf_Data* elf32_xlatetof(Elf_Data*, const scope Elf_Data*, uint); | |
| Elf_Data* elf32_xlatetom(Elf_Data*, const scope Elf_Data*, uint); | |
| version (D_LP64) | |
| { | |
| size_t elf64_fsize(Elf_Type, size_t, uint); | |
| Elf64_Ehdr* elf64_getehdr(Elf*); | |
| Elf64_Phdr* elf64_getphdr(Elf*); | |
| Elf64_Shdr* elf64_getshdr(Elf_Scn*); | |
| long elf64_checksum(Elf*); | |
| Elf64_Ehdr* elf64_newehdr(Elf*); | |
| Elf64_Phdr* elf64_newphdr(Elf*, size_t); | |
| Elf_Data* elf64_xlatetof(Elf_Data*, const scope Elf_Data*, uint); | |
| Elf_Data* elf64_xlatetom(Elf_Data*, const scope Elf_Data*, uint); | |
| } |