aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2013-12-06 09:12:36 +1100
committerNikunj A Dadhania <nikunj@linux.vnet.ibm.com>2013-12-06 16:30:34 +0530
commit7d0c28432892bcd44478b1c72c4d4cb9ae42077a (patch)
treec309f5a16065b0a0c95d0a7d0182192a35f98e05 /include
parentdad7598b1b53a3c9cd8a3c20300270d0d621a5f3 (diff)
downloadSLOF-7d0c28432892bcd44478b1c72c4d4cb9ae42077a.zip
SLOF-7d0c28432892bcd44478b1c72c4d4cb9ae42077a.tar.gz
SLOF-7d0c28432892bcd44478b1c72c4d4cb9ae42077a.tar.bz2
Add support for loading little endian ELF binaries.
We byte swap the entire header in place in elf_check_file. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/libelf.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/libelf.h b/include/libelf.h
index 9446fcf..495d697 100644
--- a/include/libelf.h
+++ b/include/libelf.h
@@ -26,6 +26,10 @@
#define ET_DYN 3 /* Shared object file */
#define ET_CORE 4 /* Core file */
+/* ELF object endian */
+#define ELFDATA2LSB 1 /* 2's complement, little endian */
+#define ELFDATA2MSB 2 /* 2's complement, big endian */
+
/* Generic ELF header */
struct ehdr {
uint32_t ei_ident;
@@ -72,6 +76,9 @@ int elf_load_file_to_addr(void *file_addr, void *addr, unsigned long *entry,
int (*pre_load)(void*, long),
void (*post_load)(void*, long));
+void elf_byteswap_header32(void *file_addr);
+void elf_byteswap_header64(void *file_addr);
+
unsigned int elf_load_segments32(void *file_addr, signed long offset,
int (*pre_load)(void*, long),
void (*post_load)(void*, long));