From 230f16538f4b0ad9ddd1edd7da24c52c39da0c8d Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 11 Jan 2007 15:25:07 +0000 Subject: [PATCH] Create include/gpxe/elf.h for the ELF bits that aren't part of the ELF standard and so don't belong in include/elf.h --- src/image/elf.c | 12 ++++-------- src/include/gpxe/elf.h | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 src/include/gpxe/elf.h diff --git a/src/image/elf.c b/src/image/elf.c index c746caa4..c76c8f5e 100644 --- a/src/image/elf.c +++ b/src/image/elf.c @@ -27,19 +27,12 @@ #include #include #include +#include typedef Elf32_Ehdr Elf_Ehdr; typedef Elf32_Phdr Elf_Phdr; typedef Elf32_Off Elf_Off; -/** An ELF file */ -struct elf { - /** ELF file image */ - userptr_t image; - /** Length of ELF file image */ - size_t len; -}; - /** * Load ELF segment into memory * @@ -126,5 +119,8 @@ int elf_load ( struct elf *elf ) { return rc; } + /* Fill in entry point address */ + elf->entry = ehdr.e_entry; + return 0; } diff --git a/src/include/gpxe/elf.h b/src/include/gpxe/elf.h new file mode 100644 index 00000000..8abbb02e --- /dev/null +++ b/src/include/gpxe/elf.h @@ -0,0 +1,26 @@ +#ifndef _GPXE_ELF_H +#define _GPXE_ELF_H + +/** + * @file + * + * ELF image format + * + */ + +#include + +/** An ELF file */ +struct elf { + /** ELF file image */ + userptr_t image; + /** Length of ELF file image */ + size_t len; + + /** Entry point */ + physaddr_t entry; +}; + +extern int elf_load ( struct elf *elf ); + +#endif /* _GPXE_ELF_H */