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