Add basic volume support to XTLDR protocol
This commit is contained in:
parent
3025338e71
commit
a261c68808
@ -31,6 +31,7 @@
|
|||||||
/* Loader protocol routine pointers */
|
/* Loader protocol routine pointers */
|
||||||
typedef EFI_STATUS (*PBL_ALLOCATE_PAGES)(IN UINT64 Size, OUT PEFI_PHYSICAL_ADDRESS Memory);
|
typedef EFI_STATUS (*PBL_ALLOCATE_PAGES)(IN UINT64 Size, OUT PEFI_PHYSICAL_ADDRESS Memory);
|
||||||
typedef EFI_STATUS (*PBL_ALLOCATE_POOL)(IN UINT_PTR Size, OUT PVOID *Memory);
|
typedef EFI_STATUS (*PBL_ALLOCATE_POOL)(IN UINT_PTR Size, OUT PVOID *Memory);
|
||||||
|
typedef EFI_STATUS (*PBL_CLOSE_VOLUME)(IN PEFI_HANDLE VolumeHandle);
|
||||||
typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)();
|
typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)();
|
||||||
typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)();
|
typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)();
|
||||||
typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)();
|
typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)();
|
||||||
@ -39,6 +40,7 @@ typedef VOID (*PBL_DEBUG_PRINT)(IN PUINT16 Format, IN ...);
|
|||||||
typedef EFI_STATUS (*PBL_EXIT_BOOT_SERVICES)(IN UINT_PTR MapKey);
|
typedef EFI_STATUS (*PBL_EXIT_BOOT_SERVICES)(IN UINT_PTR MapKey);
|
||||||
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_OPEN_VOLUME)(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath, OUT PEFI_HANDLE DiskHandle, OUT PEFI_FILE_HANDLE *FsHandle);
|
||||||
typedef EFI_STATUS (*PBL_OPEN_XT_PROTOCOL)(OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
|
typedef EFI_STATUS (*PBL_OPEN_XT_PROTOCOL)(OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
|
||||||
typedef VOID (*PBL_SLEEP_EXECUTION)(IN ULONG_PTR Milliseconds);
|
typedef VOID (*PBL_SLEEP_EXECUTION)(IN ULONG_PTR Milliseconds);
|
||||||
|
|
||||||
@ -91,6 +93,11 @@ typedef struct _XTBL_LOADER_PROTOCOL
|
|||||||
PBL_EXIT_BOOT_SERVICES ExitBootServices;
|
PBL_EXIT_BOOT_SERVICES ExitBootServices;
|
||||||
PBL_SLEEP_EXECUTION SleepExecution;
|
PBL_SLEEP_EXECUTION SleepExecution;
|
||||||
} Util;
|
} Util;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
PBL_CLOSE_VOLUME Close;
|
||||||
|
PBL_OPEN_VOLUME Open;
|
||||||
|
} Volume;
|
||||||
} XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
|
} XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
|
||||||
|
|
||||||
#endif /* __XTDK_BMTYPES_H */
|
#endif /* __XTDK_BMTYPES_H */
|
||||||
|
@ -102,6 +102,8 @@ BlpRegisterXtLoaderProtocol()
|
|||||||
LdrProtocol.Protocol.Open = BlOpenXtProtocol;
|
LdrProtocol.Protocol.Open = BlOpenXtProtocol;
|
||||||
LdrProtocol.Util.ExitBootServices = BlExitBootServices;
|
LdrProtocol.Util.ExitBootServices = BlExitBootServices;
|
||||||
LdrProtocol.Util.SleepExecution = BlSleepExecution;
|
LdrProtocol.Util.SleepExecution = BlSleepExecution;
|
||||||
|
LdrProtocol.Volume.Close = BlCloseVolume;
|
||||||
|
LdrProtocol.Volume.Open = BlOpenVolume;
|
||||||
|
|
||||||
/* Register XTLDR loader protocol */
|
/* Register XTLDR loader protocol */
|
||||||
BlDebugPrint(L"Registering XT loader protocol\n");
|
BlDebugPrint(L"Registering XT loader protocol\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user