xref: /relibc/include/bits/elf.h (revision e14b3e09a5ac91bf7de9a58873ad4f1da3c52aa3)
1 #ifndef _BITS_ELF_H
2 #define _BITS_ELF_H
3 #define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
4 #define ELF32_ST_TYPE(val)		((val) & 0xf)
5 #define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf))
6 
7 #define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
8 #define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
9 #define ELF64_ST_INFO(bind, type)	ELF32_ST_INFO ((bind), (type))
10 
11 
12 #define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
13 #define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
14 
15 #define ELF32_R_SYM(val)		((val) >> 8)
16 #define ELF32_R_TYPE(val)		((val) & 0xff)
17 #define ELF32_R_INFO(sym, type)		(((sym) << 8) + ((type) & 0xff))
18 
19 #define ELF64_R_SYM(i)			((i) >> 32)
20 #define ELF64_R_TYPE(i)			((i) & 0xffffffff)
21 #define ELF64_R_INFO(sym,type)		((((Elf64_Xword) (sym)) << 32) + (type))
22 
23 #define DT_VALRNGHI	0x6ffffdff
24 #define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))
25 
26 #define DT_ADDRRNGHI	0x6ffffeff
27 #define DT_ADDRTAGIDX(tag)	(DT_ADDRRNGHI - (tag))
28 
29 #define	DT_VERNEEDNUM	0x6fffffff
30 #define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))
31 
32 #define ELF32_M_SYM(info)	((info) >> 8)
33 #define ELF32_M_SIZE(info)	((unsigned char) (info))
34 #define ELF32_M_INFO(sym, size)	(((sym) << 8) + (unsigned char) (size))
35 
36 #define ELF64_M_SYM(info)	ELF32_M_SYM (info)
37 #define ELF64_M_SIZE(info)	ELF32_M_SIZE (info)
38 #define ELF64_M_INFO(sym, size)	ELF32_M_INFO (sym, size)
39 
40 #endif /* ifdef _BITS_ELF_H*/
41