blob: a630f28fbc2176ae5ce4268081ea6fcfac1799e3 (
plain) (
blame)
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
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* $FreeBSD$
*
* ELF compatibility definitions for OpenSolaris source.
*
*/
#ifndef _SYS__ELF_SOLARIS_H_
#define _SYS__ELF_SOLARIS_H_
#include_next <sys/elf.h>
#define __sElfN(x) typedef __CONCAT(__CONCAT(__CONCAT(Elf,__ELF_WORD_SIZE),_),x) x
__sElfN(Addr);
__sElfN(Cap);
__sElfN(Dyn);
__sElfN(Ehdr);
__sElfN(Move);
__sElfN(Off);
__sElfN(Phdr);
__sElfN(Rel);
__sElfN(Rela);
__sElfN(Shdr);
__sElfN(Sym);
__sElfN(Syminfo);
__sElfN(Verdaux);
__sElfN(Verdef);
__sElfN(Vernaux);
__sElfN(Verneed);
__sElfN(Versym);
__sElfN(Half);
__sElfN(Sword);
__sElfN(Word);
#if __ELF_WORD_SIZE == 32
typedef Elf32_Word Xword; /* Xword/Sxword are 32-bits in Elf32 */
typedef Elf32_Sword Sxword;
#else
typedef Elf64_Xword Xword;
typedef Elf64_Sxword Sxword;
#endif
#define ELF_M_INFO __ELFN(M_INFO)
#define ELF_M_SIZE __ELFN(M_SIZE)
#define ELF_M_SYM __ELFN(M_SYM)
/*
* Elf `printf' type-cast macros. These force arguments to be a fixed size
* so that Elf32 and Elf64 can share common format strings.
*/
#define EC_ADDR(a) ((Elf64_Addr)(a)) /* "ull" */
#define EC_OFF(a) ((Elf64_Off)(a)) /* "ull" */
#define EC_HALF(a) ((Elf64_Half)(a)) /* "d" */
#define EC_WORD(a) ((Elf64_Word)(a)) /* "u" */
#define EC_SWORD(a) ((Elf64_Sword)(a)) /* "d" */
#define EC_XWORD(a) ((Elf64_Xword)(a)) /* "ull" */
#define EC_SXWORD(a) ((Elf64_Sxword)(a)) /* "ll" */
#define EC_LWORD(a) ((Elf64_Lword)(a)) /* "ull" */
#define elf_checksum __elfN(checksum)
#define elf_fsize __elfN(fsize)
#define elf_getehdr __elfN(getehdr)
#define elf_getphdr __elfN(getphdr)
#define elf_newehdr __elfN(newehdr)
#define elf_newphdr __elfN(newphdr)
#define elf_getshdr __elfN(getshdr)
#define elf_xlatetof __elfN(xlatetof)
#define elf_xlatetom __elfN(xlatetom)
#define Elf_cap_entry __ElfN(cap_entry)
#define Elf_cap_title __ElfN(cap_title)
#define Elf_demangle_name __ElfN(demangle_name)
#define Elf_dyn_entry __ElfN(dyn_entry)
#define Elf_dyn_title __ElfN(dyn_title)
#define Elf_ehdr __ElfN(ehdr)
#define Elf_got_entry __ElfN(got_entry)
#define Elf_got_title __ElfN(got_title)
#define Elf_reloc_apply_reg __ElfN(reloc_apply_reg)
#define Elf_reloc_apply_val __ElfN(reloc_apply_val)
#define Elf_reloc_entry_1 __ElfN(reloc_entry_1)
#define Elf_reloc_entry_2 __ElfN(reloc_entry_2)
#define Elf_reloc_title __ElfN(reloc_title)
#define Elf_phdr __ElfN(phdr)
#define Elf_shdr __ElfN(shdr)
#define Elf_syms_table_entry __ElfN(syms_table_entry)
#define Elf_syms_table_title __ElfN(syms_table_title)
#define Elf_ver_def_title __ElfN(ver_def_title)
#define Elf_ver_line_1 __ElfN(ver_line_1)
#define Elf_ver_line_2 __ElfN(ver_line_2)
#define Elf_ver_line_3 __ElfN(ver_line_3)
#define Elf_ver_line_4 __ElfN(ver_line_4)
#define Elf_ver_line_5 __ElfN(ver_line_5)
#define Elf_ver_need_title __ElfN(ver_need_title)
#endif /* !_SYS__ELF_SOLARIS_H_ */
|