/usr/lib/gcc/x86_64-linux-gnu/6/include/d/core/sys/solaris/libelf.d is in libgphobos-6-dev 6.4.0-17ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | /**
* 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(in 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*, in Elf_Data*, uint);
Elf_Data* elf32_xlatetom(Elf_Data*, in 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*, in Elf_Data*, uint);
Elf_Data* elf64_xlatetom(Elf_Data*, in Elf_Data*, uint);
}
|