[BOOT] Add EFI headers and entry point
This commit is contained in:
84
BOOT/ENVIRON/LIB/EFI/efistatus.c
Normal file
84
BOOT/ENVIRON/LIB/EFI/efistatus.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2024, the LibreXP developers.
|
||||
Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
|
||||
efistatus.c
|
||||
|
||||
Abstract:
|
||||
|
||||
Provides EFI status code utilities.
|
||||
|
||||
--*/
|
||||
|
||||
#include "bootmgr.h"
|
||||
|
||||
EFI_STATUS
|
||||
EfiGetEfiStatusCode (
|
||||
IN NTSTATUS Status
|
||||
)
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Converts an NT status code into an EFI status code.
|
||||
|
||||
Arguments:
|
||||
|
||||
Status - The NT status code to be converted.
|
||||
|
||||
Return Value:
|
||||
|
||||
The EFI status code.
|
||||
|
||||
--*/
|
||||
|
||||
{
|
||||
switch (Status) {
|
||||
case STATUS_SUCCESS:
|
||||
return EFI_SUCCESS;
|
||||
case STATUS_DRIVER_UNABLE_TO_LOAD:
|
||||
return EFI_LOAD_ERROR;
|
||||
case STATUS_INVALID_PARAMETER:
|
||||
return EFI_INVALID_PARAMETER;
|
||||
case STATUS_NOT_SUPPORTED:
|
||||
return EFI_UNSUPPORTED;
|
||||
case STATUS_INVALID_BUFFER_SIZE:
|
||||
return EFI_BAD_BUFFER_SIZE;
|
||||
case STATUS_BUFFER_TOO_SMALL:
|
||||
return EFI_BUFFER_TOO_SMALL;
|
||||
case STATUS_IO_DEVICE_ERROR:
|
||||
return EFI_DEVICE_ERROR;
|
||||
case STATUS_MEDIA_WRITE_PROTECTED:
|
||||
return EFI_WRITE_PROTECTED;
|
||||
case STATUS_INSUFFICIENT_RESOURCES:
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
case STATUS_DISK_CORRUPT_ERROR:
|
||||
return EFI_VOLUME_CORRUPTED;
|
||||
case STATUS_DISK_FULL:
|
||||
return EFI_VOLUME_FULL;
|
||||
case STATUS_NO_MEDIA:
|
||||
return EFI_NO_MEDIA;
|
||||
case STATUS_MEDIA_CHANGED:
|
||||
return EFI_MEDIA_CHANGED;
|
||||
case STATUS_NOT_FOUND:
|
||||
return EFI_NOT_FOUND;
|
||||
case STATUS_ACCESS_DENIED:
|
||||
return EFI_ACCESS_DENIED;
|
||||
case STATUS_NO_MATCH:
|
||||
return EFI_NO_MAPPING;
|
||||
case STATUS_TIMEOUT:
|
||||
return EFI_TIMEOUT;
|
||||
case STATUS_DEVICE_NOT_READY:
|
||||
return EFI_NOT_STARTED;
|
||||
case STATUS_DEVICE_ALREADY_ATTACHED:
|
||||
return EFI_ALREADY_STARTED;
|
||||
case STATUS_REQUEST_ABORTED:
|
||||
return EFI_ABORTED;
|
||||
default:
|
||||
return EFI_NO_MAPPING;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user