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