1 /**
2  * D header file for Solaris.
3  *
4  * $(LINK2 http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/sys/elf_amd64.h, illumos sys/elf_amd64.h)
5  */
6 module core.sys.solaris.sys.elf_amd64;
7 
8 version (Solaris):
9 extern (C):
10 nothrow:
11 
12 public import core.sys.solaris.sys.elf_386;
13 
14 enum R_AMD64_NONE       = 0;
15 enum R_AMD64_64         = 1;
16 enum R_AMD64_PC32       = 2;
17 enum R_AMD64_GOT32      = 3;
18 enum R_AMD64_PLT32      = 4;
19 enum R_AMD64_COPY       = 5;
20 enum R_AMD64_GLOB_DAT   = 6;
21 enum R_AMD64_JUMP_SLOT  = 7;
22 enum R_AMD64_RELATIVE   = 8;
23 enum R_AMD64_GOTPCREL   = 9;
24 enum R_AMD64_32         = 10;
25 enum R_AMD64_32S        = 11;
26 enum R_AMD64_16         = 12;
27 enum R_AMD64_PC16       = 13;
28 enum R_AMD64_8          = 14;
29 enum R_AMD64_PC8        = 15;
30 enum R_AMD64_DTPMOD64   = 16;
31 enum R_AMD64_DTPOFF64   = 17;
32 enum R_AMD64_TPOFF64    = 18;
33 enum R_AMD64_TLSGD      = 19;
34 enum R_AMD64_TLSLD      = 20;
35 enum R_AMD64_DTPOFF32   = 21;
36 enum R_AMD64_GOTTPOFF   = 22;
37 enum R_AMD64_TPOFF32    = 23;
38 enum R_AMD64_PC64       = 24;
39 enum R_AMD64_GOTOFF64   = 25;
40 enum R_AMD64_GOTPC32    = 26;
41 enum R_AMD64_GOT64      = 27;
42 enum R_AMD64_GOTPCREL64 = 28;
43 enum R_AMD64_GOTPC64    = 29;
44 enum R_AMD64_GOTPLT64   = 30;
45 enum R_AMD64_PLTOFF64   = 31;
46 enum R_AMD64_SIZE32     = 32;
47 enum R_AMD64_SIZE64     = 33;
48 enum R_AMD64_NUM        = 34;
49 
50 
51 enum R_X86_64_NONE       = R_AMD64_NONE;
52 enum R_X86_64_64         = R_AMD64_64;
53 enum R_X86_64_PC32       = R_AMD64_PC32;
54 enum R_X86_64_GOT32      = R_AMD64_GOT32;
55 enum R_X86_64_PLT32      = R_AMD64_PLT32;
56 enum R_X86_64_COPY       = R_AMD64_COPY;
57 enum R_X86_64_GLOB_DAT   = R_AMD64_GLOB_DAT;
58 enum R_X86_64_JUMP_SLOT  = R_AMD64_JUMP_SLOT;
59 enum R_X86_64_RELATIVE   = R_AMD64_RELATIVE;
60 enum R_X86_64_GOTPCREL   = R_AMD64_GOTPCREL;
61 enum R_X86_64_32         = R_AMD64_32;
62 enum R_X86_64_32S        = R_AMD64_32S;
63 enum R_X86_64_16         = R_AMD64_16;
64 enum R_X86_64_PC16       = R_AMD64_PC16;
65 enum R_X86_64_8          = R_AMD64_8;
66 enum R_X86_64_PC8        = R_AMD64_PC8;
67 enum R_X86_64_DTPMOD64   = R_AMD64_DTPMOD64;
68 enum R_X86_64_DTPOFF64   = R_AMD64_DTPOFF64;
69 enum R_X86_64_TPOFF64    = R_AMD64_TPOFF64;
70 enum R_X86_64_TLSGD      = R_AMD64_TLSGD;
71 enum R_X86_64_TLSLD      = R_AMD64_TLSLD;
72 enum R_X86_64_DTPOFF32   = R_AMD64_DTPOFF32;
73 enum R_X86_64_GOTTPOFF   = R_AMD64_GOTTPOFF;
74 enum R_X86_64_TPOFF32    = R_AMD64_TPOFF32;
75 enum R_X86_64_PC64       = R_AMD64_PC64;
76 enum R_X86_64_GOTPC32    = R_AMD64_GOTPC32;
77 enum R_X86_64_GOTOFF64   = R_AMD64_GOTOFF64;
78 enum R_X86_64_GOT64      = R_AMD64_GOT64;
79 enum R_X86_64_GOTPCREL64 = R_AMD64_GOTPCREL64;
80 enum R_X86_64_GOTPC64    = R_AMD64_GOTPC64;
81 enum R_X86_64_GOTPLT64   = R_AMD64_GOTPLT64;
82 enum R_X86_64_PLTOFF64   = R_AMD64_PLTOFF64;
83 enum R_X86_64_SIZE32     = R_AMD64_SIZE32;
84 enum R_X86_64_SIZE64     = R_AMD64_SIZE64;
85 enum R_X86_64_NUM        = R_AMD64_NUM;
86 
87 enum ELF_AMD64_MAXPGSZ = 0x100000;
88 
89 enum SHT_AMD64_UNWIND   = 0x70000001;
90 enum SHT_X86_64_UNWIND  = SHT_AMD64_UNWIND;
91 
92 enum SHF_AMD64_LARGE  = 0x10000000;
93 enum SHF_X86_64_LARGE = SHF_AMD64_LARGE;
94 
95 enum SHN_AMD64_LCOMMON  = 0xff02;
96 enum SHN_X86_64_LCOMMON = SHN_AMD64_LCOMMON;
97 
98 enum M64_WORD_ALIGN   = 8;
99 enum M64_PLT_ENTSIZE  = M32_PLT_ENTSIZE;
100 enum M64_PLT_ALIGN    = M64_WORD_ALIGN;
101 enum M64_GOT_ENTSIZE  = 8;
102 enum M64_PLT_RESERVSZ = M32_PLT_RESERVSZ;
103 
104 version (_ELF64)
105 {
106     enum M_WORD_ALIGN   = M64_WORD_ALIGN;
107     enum M_PLT_ENTSIZE  = M64_PLT_ENTSIZE;
108     enum M_PLT_ALIGN    = M64_PLT_ALIGN;
109     enum M_PLT_RESERVSZ = M64_PLT_RESERVSZ;
110     enum M_GOT_ENTSIZE  = M64_GOT_ENTSIZE;
111 }