37#define _SYS_ELF64_H_ 1
43typedef UINT64 Elf64_Addr;
44typedef UINT16 Elf64_Half;
45typedef UINT64 Elf64_Off;
46typedef INT32 Elf64_Sword;
47typedef INT64 Elf64_Sxword;
48typedef UINT32 Elf64_Word;
49typedef UINT64 Elf64_Lword;
50typedef UINT64 Elf64_Xword;
59typedef Elf64_Word Elf64_Hashelt;
62typedef Elf64_Xword Elf64_Size;
63typedef Elf64_Sxword Elf64_Ssize;
70 unsigned char e_ident[EI_NIDENT];
79 Elf64_Half e_phentsize;
81 Elf64_Half e_shentsize;
83 Elf64_Half e_shstrndx;
100 Elf64_Xword sh_addralign;
101 Elf64_Xword sh_entsize;
114 Elf64_Xword p_filesz;
145 Elf64_Sxword r_addend;
149#define ELF64_R_SYM(info) ((UINT32) RShiftU64 ((info), 32))
150#define ELF64_R_TYPE(info) ((info) & 0xffffffffL)
153#define ELF64_R_INFO(sym, type) (((sym) << 32) + ((type) & 0xffffffffL))
155#define ELF64_R_TYPE_DATA(info) (((Elf64_Xword)(info)<<32)>>40)
156#define ELF64_R_TYPE_ID(info) (((Elf64_Xword)(info)<<56)>>56)
157#define ELF64_R_TYPE_INFO(data, type) \
158 (((Elf64_Xword)(data)<<8)+(Elf64_Xword)(type))
171 Elf64_Xword m_poffset;
176#define ELF64_M_SYM(info) ((info)>>8)
177#define ELF64_M_SIZE(info) ((unsigned char)(info))
178#define ELF64_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size))
197 unsigned char st_info;
198 unsigned char st_other;
205#define ELF64_ST_BIND(info) ((info) >> 4)
206#define ELF64_ST_TYPE(info) ((info) & 0xf)
209#define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
212#define ELF64_ST_VISIBILITY(oth) ((oth) & 0x3)
216 Elf64_Half vd_version;
231 Elf64_Half vn_version;
240 Elf64_Half vna_flags;
241 Elf64_Half vna_other;
246typedef Elf64_Half Elf64_Versym;
249 Elf64_Half si_boundto;