summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe/efi/efi.h
Commit message (Collapse)AuthorAgeFilesLines
* [build] Rename gPXE to iPXEMichael Brown2010-04-201-142/+0Star
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Fix compilation on Mac OS X.Michael Brown2009-03-311-0/+1
| | | | | | | | | | | | | The Mac compiler treats "#pragma pack()" as gcc's "#pragma pack(pop)", and so dies if the pragma pack stack is empty. Adding a "#pragma pack(1)" immediately beforehand is enough to keep the Mac compiler happy. The combination of "#pragma pack(1)", "#pragma pack()" won't actually achieve anything on a Mac, but it will at least build. (With gcc, the "#pragma pack()" overrides any previous pragmas, so is still useful.) Suggested-by: Joshua Oreman <oremanj@rwcr.net>
* [build] Enable building with the Intel C compiler (icc)Michael Brown2009-03-261-1/+6
|
* [tables] Incorporate table data type information into table definitionMichael Brown2009-03-131-6/+5Star
| | | | | | | Eliminate the potential for mismatches between table names and the table entry data type by incorporating the data type into the definition of the table, rather than specifying it explicitly in each table accessor method.
* [tables] Redefine methods for accessing linker tablesMichael Brown2009-03-131-2/+8
| | | | | | | | | | | | | | | Intel's C compiler (icc) chokes on the zero-length arrays that we currently use as part of the mechanism for accessing linker table entries. Abstract away the zero-length arrays, to make a port to icc easier. Introduce macros such as for_each_table_entry() to simplify the common case of iterating over all entries in a linker table. Represent table names as #defined string constants rather than unquoted literals; this avoids visual confusion between table names and C variable or type names, and also allows us to force a compilation error in the event of incorrect table names.
* [efi] Allow for .efidrv images as well as .efi imagesMichael Brown2009-01-081-0/+1
| | | | | | Merge in the changes that allow for building EFI driver images (that can be loaded using the EFI shell's "load" command) as well as EFI applications.
* [efi] Use elf2efi utility in place of efilinkMichael Brown2009-01-071-0/+2
| | | | | | | | | | | elf2efi converts a suitable ELF executable (containing relocation information, and with appropriate virtual addresses) into an EFI executable. It is less tightly coupled with the gPXE build process and, in particular, does not require the use of a hand-crafted PE image header in efiprefix.S. elf2efi correctly handles .bss sections, which significantly reduces the size of the gPXE EFI executable.
* [efi] Allow use of EFI configuration tablesMichael Brown2008-12-051-0/+33
| | | | | | | EFI passes in copies of SMBIOS and other system configuration tables via the EFI system table. Allow configuration tables to be requested using a mechanism similar to the current method for requesting EFI protocols.
* [efi] Add efi_strerror()Michael Brown2008-11-191-0/+2
| | | | | | | | | EFI_STATUS is defined as an INTN, which maps to UINT32 (i.e. unsigned int) on i386 and UINT64 (i.e. unsigned long) on x86_64. This would require a cast each time the error status is printed. Add efi_strerror() to avoid this ickiness and simultaneously enable prettier reporting of EFI status codes.
* [efi] Update to latest UEFI headersMichael Brown2008-11-181-1/+5
|
* [efi] Add EFI image format and basic runtime environmentMichael Brown2008-10-131-0/+52
| | | | | | | | | We have EFI APIs for CPU I/O, PCI I/O, timers, console I/O, user access and user memory allocation. EFI executables are created using the vanilla GNU toolchain, with the EXE header handcrafted in assembly and relocations generated by a custom efilink utility.
* [efi] Add EFI headers from the EFI Development Kit (edk2)Michael Brown2008-10-101-0/+37
The intention is to include near-verbatim copies of the EFI headers required by gPXE. This is achieved using the import.pl script in src/include/gpxe/efi. Note that import.pl will modify any #include lines in each imported header to reflect its new location within the gPXE tree. It will also tidy up the file by removing carriage return characters and trailing whitespace.