From cc4de916e62aeac51d87d4d2de84e749a94cfc86 Mon Sep 17 00:00:00 2001 From: Jerome Forissier Date: Tue, 21 Jul 2020 10:55:07 +0200 Subject: libutee: add Preparing for C++ support in TAs. Adds header file in addition to and . This file defines the various Elf types depending on the current architecture. In other words: when building for Aarch32 Elf_* is defined as Elf32_*, but when building for Aarch64 it is defined as Elf64_*. This will be useful for programs which need to examine their own structure via dl_iterate_phdr() (which will come in a later commit). Note: serves the same purpose as FreeBSD's but does it differently; the file is not imported from FreeBSD. Signed-off-by: Jerome Forissier Acked-by: Etienne Carriere Reviewed-by: Jens Wiklander --- lib/libutee/include/elf.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++ scripts/checkpatch_inc.sh | 1 + 2 files changed, 71 insertions(+) create mode 100644 lib/libutee/include/elf.h diff --git a/lib/libutee/include/elf.h b/lib/libutee/include/elf.h new file mode 100644 index 00000000..752ce3b0 --- /dev/null +++ b/lib/libutee/include/elf.h @@ -0,0 +1,70 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (c) 2020, Huawei Technologies Co., Ltd + */ +#ifndef _ELF_H_ +#define _ELF_H_ + +#if defined(ARM32) + +#include + +typedef Elf32_Addr Elf_Addr; +typedef Elf32_Half Elf_Half; +typedef Elf32_Off Elf_Off; +typedef Elf32_Sword Elf_Sword; +typedef Elf32_Word Elf_Word; +typedef Elf32_Lword Elf_Lword; +typedef Elf32_Hashelt Elf_Hashelt; +typedef Elf32_Size Elf_Size; +typedef Elf32_Ssize Elf_Ssize; +typedef Elf32_Ehdr Elf_Ehdr; +typedef Elf32_Shdr Elf_Shdr; +typedef Elf32_Phdr Elf_Phdr; +typedef Elf32_Dyn Elf_Dyn; +typedef Elf32_Rel Elf_Rel; +typedef Elf32_Rela Elf_Rela; +typedef Elf32_Move Elf_Move; +typedef Elf32_Cap Elf_Cap; +typedef Elf32_Sym Elf_Sym; +typedef Elf32_Verdef Elf_Verdef; +typedef Elf32_Verdaux Elf_Verdaux; +typedef Elf32_Verneed Elf_Verneed; +typedef Elf32_Vernaux Elf_Vernaux; +typedef Elf32_Syminfo Elf_Syminfo; + +#elif defined(ARM64) + +#include + +typedef Elf64_Addr Elf_Addr; +typedef Elf64_Half Elf_Half; +typedef Elf64_Off Elf_Off; +typedef Elf64_Sword Elf_Sword; +typedef Elf64_Sxword Elf_Sxword; +typedef Elf64_Word Elf_Word; +typedef Elf64_Lword Elf_Lword; +typedef Elf64_Xword Elf_Xword; +typedef Elf64_Hashelt Elf_Hashelt; +typedef Elf64_Size Elf_Size; +typedef Elf64_Ssize Elf_Ssize; +typedef Elf64_Ehdr Elf_Ehdr; +typedef Elf64_Shdr Elf_Shdr; +typedef Elf64_Phdr Elf_Phdr; +typedef Elf64_Dyn Elf_Dyn; +typedef Elf64_Rel Elf_Rel; +typedef Elf64_Rela Elf_Rela; +typedef Elf64_Move Elf_Move; +typedef Elf64_Cap Elf_Cap; +typedef Elf64_Sym Elf_Sym; +typedef Elf64_Verdef Elf_Verdef; +typedef Elf64_Verdaux Elf_Verdaux; +typedef Elf64_Verneed Elf_Verneed; +typedef Elf64_Vernaux Elf_Vernaux; +typedef Elf64_Syminfo Elf_Syminfo; + +#else +#error Unknown architecture +#endif + +#endif /* _ELF_H_ */ diff --git a/scripts/checkpatch_inc.sh b/scripts/checkpatch_inc.sh index 5ec711f4..e5b8f8fa 100644 --- a/scripts/checkpatch_inc.sh +++ b/scripts/checkpatch_inc.sh @@ -6,6 +6,7 @@ CHECKPATCH_IGNORE=$(echo \ core/include/gen-asm-defines.h \ core/lib/lib{fdt,tomcrypt} core/lib/zlib \ lib/libutils lib/libmbedtls \ + lib/libutee/include/elf.h \ core/arch/arm/include/arm{32,64}.h \ core/arch/arm/plat-ti/api_monitor_index_a{9,15}.h \ core/arch/arm/dts) -- cgit v1.2.3