WIP: ELF Module for XTLDR #8
Reference in New Issue
Block a user
No description provided.
Delete Branch "(deleted):master"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR adds a new module
elf
to XTLDR, which allows to boot 32-bit and 64-bit ELF kernels.Proposed changes
elf
modulextimage.h
TODO
Agreements
I have done some initial review.
@@ -607,2 +607,4 @@
} PECOFF_IMAGE_RESOURCE_DATA_ENTRY, *PPECOFF_IMAGE_RESOURCE_DATA_ENTRY;
/* ELF identities */
typedef enum _ELF_IDENT
Maybe _ELF_IMAGE_IDENTITY ?
@@ -609,0 +621,4 @@
} ELF_IDENT;
/* ELF Program header types */
typedef enum _ELF_PT
_ELF_IMAGE_PROGRAM_TYPE ?
@@ -609,0 +652,4 @@
} ELF_IMAGE_CONTEXT, *PELF_IMAGE_CONTEXT;
/* 32-bit ELF image header structure */
typedef struct _ELF32_HEADER
Maybe _ELF_IMAGE_HEADER32?
@@ -609,0 +672,4 @@
} ELF32_HEADER, *PELF32_HEADER;
/* 64-bit ELF image header structure */
typedef struct _ELF64_HEADER
_ELF_IMAGE_HEADER64 ?
@@ -609,0 +692,4 @@
} ELF64_HEADER, *PELF64_HEADER;
/* 32-bit ELF program header structure */
typedef struct _ELF32_PROGRAM_HEADER
_ELF_IMAGE_PROGRAM_HEADER32?
@@ -609,0 +705,4 @@
} ELF32_PROGRAM_HEADER, *PELF32_PROGRAM_HEADER;
/* 64-bit ELF program header structure */
typedef struct _ELF64_PROGRAM_HEADER
_ELF_IMAGE_PROGRAM_HEADER64?
@@ -0,0 +14,4 @@
add_executable(elf ${XTLDR_ELF_SOURCE})
# Add linker libraries
target_link_libraries(elf libxtos libxtldr)
libxtos should not be needed, is it?
@@ -0,0 +8,4 @@
#include <elf.h>
/* ELF_O module information */
ELF module information? Looks like a typo.
@@ -0,0 +124,4 @@
if(Status != STATUS_EFI_SUCCESS)
{
/* Memory allocation failure */
XtLdrProtocol->Debug.Print(L"ERROR: Memory pool allocation failure\n");
I suggest to print status code as well where possible.
@@ -0,0 +204,4 @@
ImageData->Header32->e_ident[EI_MAG3] != 0x46)
{
/* ELF file header is invalid */
return STATUS_EFI_INVALID_PARAMETER;
XTBL_EXECUTABLE_IMAGE_PROTOCOL expects some validation routine. Could you reconsider creating ElfVerifyImage() routine and just calling it from ElfLoadImage()?
@@ -0,0 +6,4 @@
* DEVELOPERS: Jozef Nagy <schkwve@gmail.com>
*/
#ifndef __XTLDR_MODULES_ELF_O_H
__XTLDR_MODULES_ELF_H ?
@@ -0,0 +44,4 @@
BlXtLdrModuleMain(IN EFI_HANDLE ImageHandle,
IN PEFI_SYSTEM_TABLE SystemTable);
#endif /* __XTLDR_MODULES_ELF_O_H */
__XTLDR_MODULES_ELF_H ?
Pull request closed