#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;
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)
#define EC_ADDR(a) ((Elf64_Addr)(a))
#define EC_OFF(a) ((Elf64_Off)(a))
#define EC_HALF(a) ((Elf64_Half)(a))
#define EC_WORD(a) ((Elf64_Word)(a))
#define EC_SWORD(a) ((Elf64_Sword)(a))
#define EC_XWORD(a) ((Elf64_Xword)(a))
#define EC_SXWORD(a) ((Elf64_Sxword)(a))
#define EC_LWORD(a) ((Elf64_Lword)(a))
#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