1*cc4de916SJerome Forissier /* SPDX-License-Identifier: BSD-2-Clause */ 2*cc4de916SJerome Forissier /* 3*cc4de916SJerome Forissier * Copyright (c) 2020, Huawei Technologies Co., Ltd 4*cc4de916SJerome Forissier */ 5*cc4de916SJerome Forissier #ifndef _ELF_H_ 6*cc4de916SJerome Forissier #define _ELF_H_ 7*cc4de916SJerome Forissier 8*cc4de916SJerome Forissier #if defined(ARM32) 9*cc4de916SJerome Forissier 10*cc4de916SJerome Forissier #include <elf32.h> 11*cc4de916SJerome Forissier 12*cc4de916SJerome Forissier typedef Elf32_Addr Elf_Addr; 13*cc4de916SJerome Forissier typedef Elf32_Half Elf_Half; 14*cc4de916SJerome Forissier typedef Elf32_Off Elf_Off; 15*cc4de916SJerome Forissier typedef Elf32_Sword Elf_Sword; 16*cc4de916SJerome Forissier typedef Elf32_Word Elf_Word; 17*cc4de916SJerome Forissier typedef Elf32_Lword Elf_Lword; 18*cc4de916SJerome Forissier typedef Elf32_Hashelt Elf_Hashelt; 19*cc4de916SJerome Forissier typedef Elf32_Size Elf_Size; 20*cc4de916SJerome Forissier typedef Elf32_Ssize Elf_Ssize; 21*cc4de916SJerome Forissier typedef Elf32_Ehdr Elf_Ehdr; 22*cc4de916SJerome Forissier typedef Elf32_Shdr Elf_Shdr; 23*cc4de916SJerome Forissier typedef Elf32_Phdr Elf_Phdr; 24*cc4de916SJerome Forissier typedef Elf32_Dyn Elf_Dyn; 25*cc4de916SJerome Forissier typedef Elf32_Rel Elf_Rel; 26*cc4de916SJerome Forissier typedef Elf32_Rela Elf_Rela; 27*cc4de916SJerome Forissier typedef Elf32_Move Elf_Move; 28*cc4de916SJerome Forissier typedef Elf32_Cap Elf_Cap; 29*cc4de916SJerome Forissier typedef Elf32_Sym Elf_Sym; 30*cc4de916SJerome Forissier typedef Elf32_Verdef Elf_Verdef; 31*cc4de916SJerome Forissier typedef Elf32_Verdaux Elf_Verdaux; 32*cc4de916SJerome Forissier typedef Elf32_Verneed Elf_Verneed; 33*cc4de916SJerome Forissier typedef Elf32_Vernaux Elf_Vernaux; 34*cc4de916SJerome Forissier typedef Elf32_Syminfo Elf_Syminfo; 35*cc4de916SJerome Forissier 36*cc4de916SJerome Forissier #elif defined(ARM64) 37*cc4de916SJerome Forissier 38*cc4de916SJerome Forissier #include <elf64.h> 39*cc4de916SJerome Forissier 40*cc4de916SJerome Forissier typedef Elf64_Addr Elf_Addr; 41*cc4de916SJerome Forissier typedef Elf64_Half Elf_Half; 42*cc4de916SJerome Forissier typedef Elf64_Off Elf_Off; 43*cc4de916SJerome Forissier typedef Elf64_Sword Elf_Sword; 44*cc4de916SJerome Forissier typedef Elf64_Sxword Elf_Sxword; 45*cc4de916SJerome Forissier typedef Elf64_Word Elf_Word; 46*cc4de916SJerome Forissier typedef Elf64_Lword Elf_Lword; 47*cc4de916SJerome Forissier typedef Elf64_Xword Elf_Xword; 48*cc4de916SJerome Forissier typedef Elf64_Hashelt Elf_Hashelt; 49*cc4de916SJerome Forissier typedef Elf64_Size Elf_Size; 50*cc4de916SJerome Forissier typedef Elf64_Ssize Elf_Ssize; 51*cc4de916SJerome Forissier typedef Elf64_Ehdr Elf_Ehdr; 52*cc4de916SJerome Forissier typedef Elf64_Shdr Elf_Shdr; 53*cc4de916SJerome Forissier typedef Elf64_Phdr Elf_Phdr; 54*cc4de916SJerome Forissier typedef Elf64_Dyn Elf_Dyn; 55*cc4de916SJerome Forissier typedef Elf64_Rel Elf_Rel; 56*cc4de916SJerome Forissier typedef Elf64_Rela Elf_Rela; 57*cc4de916SJerome Forissier typedef Elf64_Move Elf_Move; 58*cc4de916SJerome Forissier typedef Elf64_Cap Elf_Cap; 59*cc4de916SJerome Forissier typedef Elf64_Sym Elf_Sym; 60*cc4de916SJerome Forissier typedef Elf64_Verdef Elf_Verdef; 61*cc4de916SJerome Forissier typedef Elf64_Verdaux Elf_Verdaux; 62*cc4de916SJerome Forissier typedef Elf64_Verneed Elf_Verneed; 63*cc4de916SJerome Forissier typedef Elf64_Vernaux Elf_Vernaux; 64*cc4de916SJerome Forissier typedef Elf64_Syminfo Elf_Syminfo; 65*cc4de916SJerome Forissier 66*cc4de916SJerome Forissier #else 67*cc4de916SJerome Forissier #error Unknown architecture 68*cc4de916SJerome Forissier #endif 69*cc4de916SJerome Forissier 70*cc4de916SJerome Forissier #endif /* _ELF_H_ */ 71