2 * D header file for NetBSD.
4 * http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/sys/exec_elf.h
6 module core.sys.netbsd.sys.elf64;
13 import core.stdc.stdint;
14 public import core.sys.netbsd.sys.elf_common;
16 alias uint16_t Elf64_Half;
17 alias uint32_t Elf64_Word;
18 alias int32_t Elf64_Sword;
19 alias 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;
24 alias Elf64_Word Elf64_Hashelt;
25 alias Elf64_Xword Elf64_Size;
26 alias Elf64_Sxword Elf64_Ssize;
30 char[EI_NIDENT] e_ident;
39 Elf64_Half e_phentsize;
41 Elf64_Half e_shentsize;
43 Elf64_Half e_shstrndx;
56 Elf64_Xword sh_addralign;
57 Elf64_Xword sh_entsize;
92 Elf64_Sxword r_addend;
97 auto ELF64_R_SYM(I)(I i) { return i >> 32; }
98 auto ELF64_R_TYPE(I)(I i) { return i & 0xffffffff; }
99 auto ELF64_R_INFO(S, T)(S sym, T type) { return (sym << 32) + (type & 0xffffffff); }
101 auto ELF64_R_TYPE_DATA(I)(I i) { return (cast(Elf64_Xword) i << 32) >> 40; }
102 auto ELF64_R_TYPE_ID(I)(I i) { return (cast(Elf64_Xword) i << 56 ) >> 56; }
103 auto ELF64_R_TYPE_INFO(D, T)(D d, T t) { return cast(Elf64_Xword) d << 8 + cast(Elf64_Xword) t; }
106 alias Elf_Note Elf64_Nhdr;
112 Elf64_Xword m_poffset;
119 auto ELF64_M_SYM(I)(I info) { 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) { return (sym << 8) + cast(ubye)size; }
146 auto ELF64_ST_BIND(T)(T val) { return cast(ubyte)val >> 4; }
147 auto ELF64_ST_TYPE(T)(T val) { return val & 0xf; }
148 auto ELF64_ST_INFO(B, T)(B bind, T type) { return (bind << 4) + (type & 0xf); }
149 auto ELF64_ST_VISIBILITY(O)(O o) { return o & 0x03; }
154 Elf64_Half vd_version;
171 Elf64_Half vn_version;
181 Elf64_Half vna_flags;
182 Elf64_Half vna_other;
187 alias Elf64_Half Elf64_Versym;
191 Elf64_Half si_boundto;