xref: /optee_os/lib/libutee/include/elf.h (revision 69e63e33175769bc04a42854a357eb99171e660c)
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