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