Create include/gpxe/elf.h for the ELF bits that aren't part of the ELF
authorMichael Brown <mcb30@etherboot.org>
Thu, 11 Jan 2007 15:25:07 +0000 (15:25 +0000)
committerMichael Brown <mcb30@etherboot.org>
Thu, 11 Jan 2007 15:25:07 +0000 (15:25 +0000)
standard and so don't belong in include/elf.h

src/image/elf.c
src/include/gpxe/elf.h [new file with mode: 0644]

index c746caa..c76c8f5 100644 (file)
 #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
  *
@@ -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 (file)
index 0000000..8abbb02
--- /dev/null
@@ -0,0 +1,26 @@
+#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 */