Add temporary solution for mapping modules code
This commit is contained in:
parent
ed8b93beb0
commit
d7abe40e5d
@ -74,6 +74,7 @@ typedef EFI_STATUS (*PBL_FIND_BOOT_PROTOCOL)(IN PWCHAR SystemType, OUT PEFI_GUID
|
|||||||
typedef EFI_STATUS (*PBL_FREE_PAGES)(IN UINT64 Size, IN EFI_PHYSICAL_ADDRESS Memory);
|
typedef EFI_STATUS (*PBL_FREE_PAGES)(IN UINT64 Size, IN EFI_PHYSICAL_ADDRESS Memory);
|
||||||
typedef EFI_STATUS (*PBL_FREE_POOL)(IN PVOID Memory);
|
typedef EFI_STATUS (*PBL_FREE_POOL)(IN PVOID Memory);
|
||||||
typedef EFI_STATUS (*PBL_GET_MEMORY_MAP)(OUT PEFI_MEMORY_MAP MemoryMap);
|
typedef EFI_STATUS (*PBL_GET_MEMORY_MAP)(OUT PEFI_MEMORY_MAP MemoryMap);
|
||||||
|
typedef PLIST_ENTRY (*PBL_GET_MODULES_LIST)();
|
||||||
typedef INT_PTR (*PBL_GET_SECURE_BOOT_STATUS)();
|
typedef INT_PTR (*PBL_GET_SECURE_BOOT_STATUS)();
|
||||||
typedef EFI_STATUS (*PBL_INVOKE_BOOT_PROTOCOL)(IN PLIST_ENTRY OptionsList);
|
typedef EFI_STATUS (*PBL_INVOKE_BOOT_PROTOCOL)(IN PLIST_ENTRY OptionsList);
|
||||||
typedef EFI_STATUS (*PBL_OPEN_VOLUME)(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath, OUT PEFI_HANDLE DiskHandle, OUT PEFI_FILE_HANDLE *FsHandle);
|
typedef EFI_STATUS (*PBL_OPEN_VOLUME)(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath, OUT PEFI_HANDLE DiskHandle, OUT PEFI_FILE_HANDLE *FsHandle);
|
||||||
@ -244,6 +245,7 @@ typedef struct _XTBL_LOADER_PROTOCOL
|
|||||||
} Memory;
|
} Memory;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
PBL_GET_MODULES_LIST GetModulesList;
|
||||||
PBL_OPEN_XT_PROTOCOL Open;
|
PBL_OPEN_XT_PROTOCOL Open;
|
||||||
PBL_REGISTER_XT_PROTOCOL Register;
|
PBL_REGISTER_XT_PROTOCOL Register;
|
||||||
} Protocol;
|
} Protocol;
|
||||||
|
@ -106,6 +106,10 @@ XTCDECL
|
|||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlGetMemoryMap(OUT PEFI_MEMORY_MAP MemoryMap);
|
BlGetMemoryMap(OUT PEFI_MEMORY_MAP MemoryMap);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
PLIST_ENTRY
|
||||||
|
BlGetModulesList();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
INT_PTR
|
INT_PTR
|
||||||
BlGetSecureBootStatus();
|
BlGetSecureBootStatus();
|
||||||
|
@ -52,6 +52,23 @@ BlFindBootProtocol(IN PWCHAR SystemType,
|
|||||||
return STATUS_EFI_NOT_FOUND;
|
return STATUS_EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a linked list of all loaded modules.
|
||||||
|
*
|
||||||
|
* @return This routine returns a pointer to a linked list of all loaded modules.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*
|
||||||
|
* @todo This is a temporary solution and it should be replaced by a complex API allowing to map modules.
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
PLIST_ENTRY
|
||||||
|
BlGetModulesList()
|
||||||
|
{
|
||||||
|
/* Return a pointer to a list of all loaded modules */
|
||||||
|
return &BlpLoadedModules;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads a specified XTLDR module from disk.
|
* Loads a specified XTLDR module from disk.
|
||||||
*
|
*
|
||||||
@ -404,7 +421,7 @@ BlOpenProtocol(OUT PVOID *ProtocolHandler,
|
|||||||
*/
|
*/
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
BlRegisterBootMenu(PVOID BootMenuRoutine)
|
BlRegisterBootMenu(IN PVOID BootMenuRoutine)
|
||||||
{
|
{
|
||||||
/* Set boot menu routine */
|
/* Set boot menu routine */
|
||||||
BlpStatus.BootMenu = BootMenuRoutine;
|
BlpStatus.BootMenu = BootMenuRoutine;
|
||||||
@ -529,6 +546,7 @@ BlpRegisterXtLoaderProtocol()
|
|||||||
BlpLdrProtocol.Memory.FreePages = BlMemoryFreePages;
|
BlpLdrProtocol.Memory.FreePages = BlMemoryFreePages;
|
||||||
BlpLdrProtocol.Memory.FreePool = BlMemoryFreePool;
|
BlpLdrProtocol.Memory.FreePool = BlMemoryFreePool;
|
||||||
BlpLdrProtocol.Memory.GetMemoryMap = BlGetMemoryMap;
|
BlpLdrProtocol.Memory.GetMemoryMap = BlGetMemoryMap;
|
||||||
|
BlpLdrProtocol.Protocol.GetModulesList = BlGetModulesList;
|
||||||
BlpLdrProtocol.Protocol.Open = BlOpenProtocol;
|
BlpLdrProtocol.Protocol.Open = BlOpenProtocol;
|
||||||
BlpLdrProtocol.Protocol.Register = BlRegisterProtocol;
|
BlpLdrProtocol.Protocol.Register = BlRegisterProtocol;
|
||||||
BlpLdrProtocol.Tui.DisplayErrorDialog = BlDisplayErrorDialog;
|
BlpLdrProtocol.Tui.DisplayErrorDialog = BlDisplayErrorDialog;
|
||||||
|
Loading…
Reference in New Issue
Block a user