Daily bump.
[gcc.git] / libphobos / libdruntime / core / sys / solaris / libelf.d
bloba8d3c1f514f7866f153d6579155d5c055da4cb12
1 /**
2 * D header file for Solaris.
4 * $(LINK2 http://src.illumos.org/source/xref/illumos-gate/usr/src/head/libelf.h, illumos libelf.h)
5 */
6 module core.sys.solaris.libelf;
8 version (Solaris):
9 extern (C):
10 nothrow:
12 import core.stdc.config;
13 import core.sys.posix.sys.types;
14 import core.sys.solaris.sys.elf;
16 enum Elf_Cmd
18 ELF_C_NULL = 0,
19 ELF_C_READ,
20 ELF_C_WRITE,
21 ELF_C_CLR,
22 ELF_C_SET,
23 ELF_C_FDDONE,
24 ELF_C_FDREAD,
25 ELF_C_RDWR,
26 ELF_C_WRIMAGE,
27 ELF_C_IMAGE,
28 ELF_C_NUM
31 enum ELF_F_DIRTY = 0x1;
32 enum ELF_F_LAYOUT = 0x4;
34 enum Elf_Kind
36 ELF_K_NONE = 0,
37 ELF_K_AR,
38 ELF_K_COFF,
39 ELF_K_ELF,
40 ELF_K_NUM
43 enum Elf_Type
45 ELF_T_BYTE = 0,
46 ELF_T_ADDR,
47 ELF_T_DYN,
48 ELF_T_EHDR,
49 ELF_T_HALF,
50 ELF_T_OFF,
51 ELF_T_PHDR,
52 ELF_T_RELA,
53 ELF_T_REL,
54 ELF_T_SHDR,
55 ELF_T_SWORD,
56 ELF_T_SYM,
57 ELF_T_WORD,
58 ELF_T_VDEF,
59 ELF_T_VNEED,
60 ELF_T_SXWORD,
61 ELF_T_XWORD,
62 ELF_T_SYMINFO,
63 ELF_T_NOTE,
64 ELF_T_MOVE,
65 ELF_T_MOVEP,
66 ELF_T_CAP,
67 ELF_T_NUM
70 struct Elf
74 struct Elf_Scn
78 struct Elf_Arhdr
80 char* ar_name;
81 time_t ar_date;
82 uid_t ar_uid;
83 gid_t ar_gid;
84 mode_t ar_mode;
85 off_t ar_size;
86 char* ar_rawname;
89 struct Elf_Arsym
91 char* as_name;
92 size_t as_off;
93 c_ulong as_hash;
96 struct Elf_Data
98 void* d_buf;
99 Elf_Type d_type;
100 size_t d_size;
101 off_t d_off;
102 size_t d_align;
103 uint d_version;
106 Elf* elf_begin(int, Elf_Cmd, Elf*);
107 int elf_cntl(Elf*, Elf_Cmd);
108 int elf_end(Elf*);
109 const(char)* elf_errmsg(int);
110 int elf_errno();
111 void elf_fill(int);
112 uint elf_flagdata(Elf_Data*, Elf_Cmd, uint);
113 uint elf_flagehdr(Elf*, Elf_Cmd, uint);
114 uint elf_flagelf(Elf*, Elf_Cmd, uint);
115 uint elf_flagphdr(Elf*, Elf_Cmd, uint);
116 uint elf_flagscn(Elf_Scn*, Elf_Cmd, uint);
117 uint elf_flagshdr(Elf_Scn*, Elf_Cmd, uint);
118 size_t elf32_fsize(Elf_Type, size_t, uint);
119 Elf_Arhdr* elf_getarhdr(Elf*);
120 Elf_Arsym* elf_getarsym(Elf*, size_t*);
121 off_t elf_getbase(Elf*);
122 Elf_Data* elf_getdata(Elf_Scn*, Elf_Data*);
123 Elf32_Ehdr* elf32_getehdr(Elf*);
124 char* elf_getident(Elf*, size_t*);
125 Elf32_Phdr* elf32_getphdr(Elf*);
126 Elf_Scn* elf_getscn(Elf*, size_t);
127 Elf32_Shdr* elf32_getshdr(Elf_Scn*);
128 int elf_getphnum(Elf*, size_t*);
129 int elf_getphdrnum(Elf*, size_t*);
130 int elf_getshnum(Elf*, size_t*);
131 int elf_getshdrnum(Elf*, size_t*);
132 int elf_getshstrndx(Elf*, size_t*);
133 int elf_getshdrstrndx(Elf*, size_t*);
134 c_ulong elf_hash(const scope char*);
135 uint elf_sys_encoding();
136 long elf32_checksum(Elf*);
137 Elf_Kind elf_kind(Elf*);
138 Elf* elf_memory(char*, size_t);
139 size_t elf_ndxscn(Elf_Scn*);
140 Elf_Data* elf_newdata(Elf_Scn*);
141 Elf32_Ehdr* elf32_newehdr(Elf*);
142 Elf32_Phdr* elf32_newphdr(Elf*, size_t);
143 Elf_Scn* elf_newscn(Elf*);
144 Elf_Scn* elf_nextscn(Elf*, Elf_Scn*);
145 Elf_Cmd elf_next(Elf*);
146 size_t elf_rand(Elf*, size_t);
147 Elf_Data* elf_rawdata(Elf_Scn*, Elf_Data*);
148 char* elf_rawfile(Elf*, size_t*);
149 char* elf_strptr(Elf*, size_t, size_t);
150 off_t elf_update(Elf*, Elf_Cmd);
151 uint elf_version(uint);
152 Elf_Data* elf32_xlatetof(Elf_Data*, const scope Elf_Data*, uint);
153 Elf_Data* elf32_xlatetom(Elf_Data*, const scope Elf_Data*, uint);
155 version (D_LP64)
157 size_t elf64_fsize(Elf_Type, size_t, uint);
158 Elf64_Ehdr* elf64_getehdr(Elf*);
159 Elf64_Phdr* elf64_getphdr(Elf*);
160 Elf64_Shdr* elf64_getshdr(Elf_Scn*);
161 long elf64_checksum(Elf*);
162 Elf64_Ehdr* elf64_newehdr(Elf*);
163 Elf64_Phdr* elf64_newphdr(Elf*, size_t);
164 Elf_Data* elf64_xlatetof(Elf_Data*, const scope Elf_Data*, uint);
165 Elf_Data* elf64_xlatetom(Elf_Data*, const scope Elf_Data*, uint);