standard and so don't belong in include/elf.h
#include <elf.h>
#include <gpxe/uaccess.h>
#include <gpxe/segment.h>
+#include <gpxe/elf.h>
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
*
return rc;
}
+ /* Fill in entry point address */
+ elf->entry = ehdr.e_entry;
+
return 0;
}
--- /dev/null
+#ifndef _GPXE_ELF_H
+#define _GPXE_ELF_H
+
+/**
+ * @file
+ *
+ * ELF image format
+ *
+ */
+
+#include <elf.h>
+
+/** 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 */