@@ -13,114 +13,20 @@ extern (C):
1313import core.stdc.stdint ;
1414public import core.sys.dragonflybsd.sys.elf_common ;
1515
16- alias uint16_t Elf64_Half;
17- alias uint32_t Elf64_Word;
18- alias int32_t Elf64_Sword;
1916alias uint64_t Elf64_Lword;
20- alias uint64_t Elf64_Xword;
21- alias int64_t Elf64_Sxword;
22- alias uint64_t Elf64_Addr;
23- alias uint64_t Elf64_Off;
2417alias Elf64_Word Elf64_Hashelt;
2518alias Elf64_Xword Elf64_Size;
2619alias Elf64_Sxword Elf64_Ssize;
2720
28- struct Elf64_Ehdr
29- {
30- char [EI_NIDENT ] e_ident = 0 ;
31- Elf64_Half e_type;
32- Elf64_Half e_machine;
33- Elf64_Word e_version;
34- Elf64_Addr e_entry;
35- Elf64_Off e_phoff;
36- Elf64_Off e_shoff;
37- Elf64_Word e_flags;
38- Elf64_Half e_ehsize;
39- Elf64_Half e_phentsize;
40- Elf64_Half e_phnum;
41- Elf64_Half e_shentsize;
42- Elf64_Half e_shnum;
43- Elf64_Half e_shstrndx;
44- }
45-
46- struct Elf64_Shdr
47- {
48- Elf64_Word sh_name;
49- Elf64_Word sh_type;
50- Elf64_Xword sh_flags;
51- Elf64_Addr sh_addr;
52- Elf64_Off sh_offset;
53- Elf64_Xword sh_size;
54- Elf64_Word sh_link;
55- Elf64_Word sh_info;
56- Elf64_Xword sh_addralign;
57- Elf64_Xword sh_entsize;
58- }
59-
60- struct Elf64_Phdr
61- {
62- Elf64_Word p_type;
63- Elf64_Word p_flags;
64- Elf64_Off p_offset;
65- Elf64_Addr p_vaddr;
66- Elf64_Addr p_paddr;
67- Elf64_Xword p_filesz;
68- Elf64_Xword p_memsz;
69- Elf64_Xword p_align;
70- }
71-
72- struct Elf64_Dyn
73- {
74- Elf64_Sxword d_tag;
75- union _d_un
76- {
77- Elf64_Xword d_val;
78- Elf64_Addr d_ptr;
79- } _d_un d_un;
80- }
81-
82- struct Elf64_Rel
83- {
84- Elf64_Addr r_offset;
85- Elf64_Xword r_info;
86- }
87-
88- struct Elf64_Rela
89- {
90- Elf64_Addr r_offset;
91- Elf64_Xword r_info;
92- Elf64_Sxword r_addend;
93- }
94-
9521extern (D ) pure
9622{
97- auto ELF64_R_SYM (I)(I i) @safe { return i >> 32 ; }
98- auto ELF64_R_TYPE (I)(I i) @safe { return i & 0xffffffff ; }
99- auto ELF64_R_INFO (S, T)(S sym, T type) @safe { return (sym << 32 ) + (type & 0xffffffff ); }
100-
10123 auto ELF64_R_TYPE_DATA (I)(I i) { return (cast (Elf64_Xword) i << 32 ) >> 40 ; }
10224 auto ELF64_R_TYPE_ID (I)(I i) { return (cast (Elf64_Xword) i << 56 ) >> 56 ; }
10325 auto ELF64_R_TYPE_INFO (D, T)(D d, T t) { return cast (Elf64_Xword) d << 8 + cast (Elf64_Xword) t; }
10426}
10527
10628alias Elf_Note Elf64_Nhdr;
10729
108- struct Elf64_Move
109- {
110- Elf64_Lword m_value;
111- Elf64_Xword m_info;
112- Elf64_Xword m_poffset;
113- Elf64_Half m_repeat;
114- Elf64_Half m_stride;
115- }
116-
117- extern (D ) pure
118- {
119- auto ELF64_M_SYM (I)(I info) @safe { return info >> 8 ; }
120- auto ELF64_M_SIZE (I)(I info) { return cast (ubyte )info; }
121- auto ELF64_M_INFO (S, SZ )(S sym, SZ size) @safe { return (sym << 8 ) + cast (ubyte )size; }
122- }
123-
12430struct Elf64_Cap
12531{
12632 Elf64_Xword c_tag;
@@ -131,63 +37,7 @@ struct Elf64_Cap
13137 } _c_un c_un;
13238}
13339
134- struct Elf64_Sym
135- {
136- Elf64_Word st_name;
137- ubyte st_info;
138- ubyte st_other;
139- Elf64_Half st_shndx;
140- Elf64_Addr st_value;
141- Elf64_Xword st_size;
142- }
143-
144- extern (D ) pure
145- {
146- auto ELF64_ST_BIND (T)(T val) { return cast (ubyte )val >> 4 ; }
147- auto ELF64_ST_TYPE (T)(T val) @safe { return val & 0xf ; }
148- auto ELF64_ST_INFO (B, T)(B bind, T type) @safe { return (bind << 4 ) + (type & 0xf ); }
149- auto ELF64_ST_VISIBILITY (O)(O o) @safe { return o & 0x03 ; }
150- }
151-
152- struct Elf64_Verdef
153- {
154- Elf64_Half vd_version;
155- Elf64_Half vd_flags;
156- Elf64_Half vd_ndx;
157- Elf64_Half vd_cnt;
158- Elf64_Word vd_hash;
159- Elf64_Word vd_aux;
160- Elf64_Word vd_next;
161- }
162-
163- struct Elf64_Verdaux
164- {
165- Elf64_Word vda_name;
166- Elf64_Word vda_next;
167- }
168-
169- struct Elf64_Verneed
170- {
171- Elf64_Half vn_version;
172- Elf64_Half vn_cnt;
173- Elf64_Word vn_file;
174- Elf64_Word vn_aux;
175- Elf64_Word vn_next;
176- }
177-
178- struct Elf64_Vernaux
179- {
180- Elf64_Word vna_hash;
181- Elf64_Half vna_flags;
182- Elf64_Half vna_other;
183- Elf64_Word vna_name;
184- Elf64_Word vna_next;
185- }
186-
187- alias Elf64_Half Elf64_Versym;
188-
189- struct Elf64_Syminfo
40+ extern (D )
19041{
191- Elf64_Half si_boundto;
192- Elf64_Half si_flags;
42+ auto ELF64_ST_VISIBILITY (O)(O o) { return o & 0x03 ; }
19343}
0 commit comments