Implement PeGetSubSystem() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
9f43ad06af
commit
5ec08cb84a
@ -22,6 +22,7 @@ typedef struct _XT_PECOFFF_IMAGE_PROTOCOL XT_PECOFF_IMAGE_PROTOCOL, *PXT_PECOFF_
|
|||||||
/* Pointers to the routines provided by the modules */
|
/* Pointers to the routines provided by the modules */
|
||||||
typedef EFI_STATUS (*PXT_BOOTPROTO_BOOT_SYSTEM)(IN PXT_BOOT_PROTOCOL_PARAMETERS Parameters);
|
typedef EFI_STATUS (*PXT_BOOTPROTO_BOOT_SYSTEM)(IN PXT_BOOT_PROTOCOL_PARAMETERS Parameters);
|
||||||
typedef EFI_STATUS (*PXT_PECOFF_GET_ENTRY_POINT)(IN PPECOFF_IMAGE_CONTEXT Image, OUT PVOID *EntryPoint);
|
typedef EFI_STATUS (*PXT_PECOFF_GET_ENTRY_POINT)(IN PPECOFF_IMAGE_CONTEXT Image, OUT PVOID *EntryPoint);
|
||||||
|
typedef EFI_STATUS (*PXT_PECOFF_GET_SUBSYSTEM)(IN PPECOFF_IMAGE_CONTEXT Image, OUT PUSHORT SubSystem);
|
||||||
typedef EFI_STATUS (*PXT_PECOFF_LOAD_IMAGE)(IN PEFI_FILE_HANDLE FileHandle, IN LOADER_MEMORY_TYPE MemoryType,
|
typedef EFI_STATUS (*PXT_PECOFF_LOAD_IMAGE)(IN PEFI_FILE_HANDLE FileHandle, IN LOADER_MEMORY_TYPE MemoryType,
|
||||||
IN PVOID VirtualAddress, OUT PPECOFF_IMAGE_CONTEXT *Image);
|
IN PVOID VirtualAddress, OUT PPECOFF_IMAGE_CONTEXT *Image);
|
||||||
typedef EFI_STATUS (*PXT_PECOFF_RELOCATE_IMAGE)(IN PPECOFF_IMAGE_CONTEXT Image, IN EFI_VIRTUAL_ADDRESS Address);
|
typedef EFI_STATUS (*PXT_PECOFF_RELOCATE_IMAGE)(IN PPECOFF_IMAGE_CONTEXT Image, IN EFI_VIRTUAL_ADDRESS Address);
|
||||||
@ -49,6 +50,7 @@ typedef struct _XT_BOOT_PROTOCOL_PARAMETERS
|
|||||||
typedef struct _XT_PECOFFF_IMAGE_PROTOCOL
|
typedef struct _XT_PECOFFF_IMAGE_PROTOCOL
|
||||||
{
|
{
|
||||||
PXT_PECOFF_GET_ENTRY_POINT GetEntryPoint;
|
PXT_PECOFF_GET_ENTRY_POINT GetEntryPoint;
|
||||||
|
PXT_PECOFF_GET_SUBSYSTEM GetSubSystem;
|
||||||
PXT_PECOFF_LOAD_IMAGE Load;
|
PXT_PECOFF_LOAD_IMAGE Load;
|
||||||
PXT_PECOFF_RELOCATE_IMAGE Relocate;
|
PXT_PECOFF_RELOCATE_IMAGE Relocate;
|
||||||
} XT_PECOFF_IMAGE_PROTOCOL, *PXT_PECOFF_IMAGE_PROTOCOL;
|
} XT_PECOFF_IMAGE_PROTOCOL, *PXT_PECOFF_IMAGE_PROTOCOL;
|
||||||
|
@ -17,6 +17,10 @@ EFI_STATUS
|
|||||||
PeGetEntryPoint(IN PPECOFF_IMAGE_CONTEXT Image,
|
PeGetEntryPoint(IN PPECOFF_IMAGE_CONTEXT Image,
|
||||||
OUT PVOID *EntryPoint);
|
OUT PVOID *EntryPoint);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
PeGetSubSystem(IN PPECOFF_IMAGE_CONTEXT Image,
|
||||||
|
OUT PUSHORT SubSystem);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
PeLoadImage(IN PEFI_FILE_HANDLE FileHandle,
|
PeLoadImage(IN PEFI_FILE_HANDLE FileHandle,
|
||||||
IN LOADER_MEMORY_TYPE MemoryType,
|
IN LOADER_MEMORY_TYPE MemoryType,
|
||||||
|
@ -50,6 +50,27 @@ PeGetEntryPoint(IN PPECOFF_IMAGE_CONTEXT Image,
|
|||||||
return STATUS_EFI_SUCCESS;
|
return STATUS_EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an information about subsystem that is required to run PE/COFF image.
|
||||||
|
*
|
||||||
|
* @param Image
|
||||||
|
* A pointer to the PE/COFF context structure representing the loaded image.
|
||||||
|
*
|
||||||
|
* @param SubSystem
|
||||||
|
* A pointer to the memory area storing a value defined for the 'subsystem' field of the image.
|
||||||
|
*
|
||||||
|
* @return This routine returns a status code.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
EFI_STATUS
|
||||||
|
PeGetSubSystem(IN PPECOFF_IMAGE_CONTEXT Image,
|
||||||
|
OUT PUSHORT SubSystem)
|
||||||
|
{
|
||||||
|
*SubSystem = Image->PeHeader->OptionalHeader.Subsystem;
|
||||||
|
return STATUS_EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads a PE/COFF image file.
|
* Loads a PE/COFF image file.
|
||||||
*
|
*
|
||||||
@ -526,6 +547,7 @@ BlXtLdrModuleMain(IN EFI_HANDLE ImageHandle,
|
|||||||
|
|
||||||
/* Set routines available via PE/COFF image protocol */
|
/* Set routines available via PE/COFF image protocol */
|
||||||
XtPeCoffProtocol.GetEntryPoint = PeGetEntryPoint;
|
XtPeCoffProtocol.GetEntryPoint = PeGetEntryPoint;
|
||||||
|
XtPeCoffProtocol.GetSubSystem = PeGetSubSystem;
|
||||||
XtPeCoffProtocol.Load = PeLoadImage;
|
XtPeCoffProtocol.Load = PeLoadImage;
|
||||||
XtPeCoffProtocol.Relocate = PeRelocateImage;
|
XtPeCoffProtocol.Relocate = PeRelocateImage;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user