Import volumes suppport
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s

This commit is contained in:
2023-12-06 23:09:43 +01:00
parent cd1ab2128b
commit 2356f4da54
5 changed files with 962 additions and 0 deletions

View File

@@ -16,10 +16,31 @@
typedef VOID (BMPRINTCHAR)(IN USHORT Character);
/* XTLDR routines forward references */
XTCDECL
EFI_STATUS
BlCloseVolume(IN PEFI_HANDLE VolumeHandle);
XTCDECL
EFI_STATUS
BlEnumerateBlockDevices();
XTCDECL
EFI_STATUS
BlExitBootServices(IN UINT_PTR MapKey);
XTCDECL
EFI_STATUS
BlFindVolumeDevicePath(IN PEFI_DEVICE_PATH_PROTOCOL FsHandle,
IN CONST PWCHAR FileSystemPath,
OUT PEFI_DEVICE_PATH_PROTOCOL* DevicePath);
XTCDECL
EFI_STATUS
BlGetVolumeDevicePath(IN PCHAR SystemPath,
OUT PEFI_DEVICE_PATH_PROTOCOL *DevicePath,
OUT PCHAR *ArcName,
OUT PCHAR *Path);
XTCDECL
EFI_STATUS
BlMemoryAllocatePages(IN UINT64 Pages,
@@ -30,6 +51,12 @@ EFI_STATUS
BlMemoryAllocatePool(IN UINT_PTR Size,
OUT PVOID *Memory);
XTCDECL
EFI_STATUS
BlOpenVolume(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,
OUT PEFI_HANDLE DiskHandle,
OUT PEFI_FILE_HANDLE *FsHandle);
XTCDECL
VOID
BlConsoleClearScreen();
@@ -79,6 +106,34 @@ XTCDECL
EFI_STATUS
BlpActivateSerialIOController();
XTCDECL
EFI_STATUS
BlpDiscoverEfiBlockDevices(OUT PLIST_ENTRY BlockDevices);
XTCDECL
EFI_STATUS
BlpDissectVolumeArcPath(IN PCHAR SystemPath,
OUT PCHAR *ArcName,
OUT PCHAR *Path,
OUT PUSHORT DriveType,
OUT PULONG DriveNumber,
OUT PULONG PartNumber);
XTCDECL
PEFI_DEVICE_PATH_PROTOCOL
BlpDuplicateDevicePath(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath);
XTCDECL
EFI_STATUS
BlpFindLastBlockDeviceNode(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,
OUT PEFI_DEVICE_PATH_PROTOCOL *LastNode);
XTCDECL
BOOLEAN
BlpFindParentBlockDevice(IN PLIST_ENTRY BlockDevices,
IN PEFI_BLOCK_DEVICE_DATA ChildNode,
OUT PEFI_BLOCK_DEVICE_DATA ParentNode);
XTCDECL
VOID
BlpParseCommandLineOptions(VOID);

View File

@@ -24,6 +24,9 @@ EXTERN CPPORT BlpSerialPort;
/* XT Boot Loader status data */
EXTERN XTBL_STATUS BlpStatus;
/* List of available block devices */
EXTERN LIST_ENTRY EfiBlockDevices;
/* EFI Image Handle */
EXTERN EFI_HANDLE EfiImageHandle;