2 * D header file for OpenBSD.
5 * Based-on: core/sys/freebsd/sys
7 module core.sys.openbsd.sys.elf32;
13 import core.stdc.stdint;
14 public import core.sys.openbsd.sys.elf_common;
16 alias uint16_t Elf32_Half;
17 alias uint32_t Elf32_Word;
18 alias int32_t Elf32_Sword;
19 alias uint64_t Elf32_Lword;
20 alias uint32_t Elf32_Addr;
21 alias uint32_t Elf32_Off;
22 alias Elf32_Word Elf32_Hashelt;
23 alias Elf32_Word Elf32_Size;
24 alias Elf32_Sword Elf32_Ssize;
28 char[EI_NIDENT] e_ident = 0;
37 Elf32_Half e_phentsize;
39 Elf32_Half e_shentsize;
41 Elf32_Half e_shstrndx;
54 Elf32_Word sh_addralign;
55 Elf32_Word sh_entsize;
95 auto ELF32_R_SYM(V)(V val) { return val >> 8; }
96 auto ELF32_R_TYPE(V)(V val) { return val & 0xff; }
97 auto ELF32_R_INFO(S, T)(S sym, T type) { return (sym << 8) + (type & 0xff); }
100 alias Elf_Note Elf32_Nhdr;
106 Elf32_Word m_poffset;
113 auto ELF32_M_SYM(I)(I info) @safe { return info >> 8; }
114 auto ELF32_M_SIZE(I)(I info) { return cast(ubyte)info; }
115 auto ELF32_M_INFO(S, SZ)(S sym, SZ size) { return (sym << 8) + cast(ubyte)size; }
140 auto ELF32_ST_BIND(T)(T val) { return cast(ubyte)val >> 4; }
141 auto ELF32_ST_TYPE(T)(T val) @safe { return val & 0xf; }
142 auto ELF32_ST_INFO(B, T)(B bind, T type) @safe { return (bind << 4) + (type & 0xf); }
143 auto ELF32_ST_VISIBILITY(O)(O o) @safe { return o & 0x03; }
148 Elf32_Half vd_version;
165 Elf32_Half vn_version;
175 Elf32_Half vna_flags;
176 Elf32_Half vna_other;
181 alias Elf32_Half Elf32_Versym;
185 Elf32_Half si_boundto;