Implement BlRebootSystem() and BlShutdownSystem() routines
失敗したステータスチェックがあります
Builds / ExectOS (amd64) (push) Failing after 16s
Builds / ExectOS (i686) (push) Failing after 15s

このコミットが含まれているのは:
Rafal Kupiec 2024-01-12 15:59:38 +01:00
コミット 521006d939
署名者: belliash
GPGキーID: 4E829243E0CFE6B4
3個のファイルの変更35行の追加0行の削除

ファイルの表示

@ -98,6 +98,7 @@ typedef EFI_STATUS (*PBL_LOCATE_PROTOCOL_HANDLES)(OUT PEFI_HANDLE *Handles, OUT
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_PROTOCOL)(OUT PEFI_HANDLE Handle, OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
typedef EFI_STATUS (*PBL_OPEN_PROTOCOL_HANDLE)(IN EFI_HANDLE Handle, OUT PVOID *ProtocolHandler, IN PEFI_GUID ProtocolGuid);
typedef EFI_STATUS (*PBL_POWER_SYSTEM)();
typedef EFI_STATUS (*PBL_READ_FILE)(IN PEFI_FILE_HANDLE DirHandle, IN CONST PWCHAR FileName, OUT PVOID *FileData, OUT PSIZE_T FileSize);
typedef EFI_STATUS (*PBL_REGISTER_BOOT_PROTOCOL)(IN PWCHAR SystemType, IN PEFI_GUID BootProtocolGuid);
typedef VOID (*PBL_REGISTER_XT_BOOT_MENU)(PVOID BootMenuRoutine);
@ -291,6 +292,8 @@ typedef struct _XTBL_LOADER_PROTOCOL
{
PBL_EXIT_BOOT_SERVICES ExitBootServices;
PBL_GET_SECURE_BOOT_STATUS GetSecureBootStatus;
PBL_POWER_SYSTEM RebootSystem;
PBL_POWER_SYSTEM ShutdownSystem;
PBL_SLEEP_EXECUTION SleepExecution;
PBL_WAIT_FOR_EFI_EVENT WaitForEfiEvent;
} Util;

ファイルの表示

@ -99,6 +99,36 @@ BlGetSecureBootStatus()
return SecureBootStatus;
}
/**
* Reboots the machine.
*
* @return This routine returns a status code.
*
* @since XT 1.0
*/
XTCDECL
EFI_STATUS
BlRebootSystem()
{
/* Reboot machine */
return EfiSystemTable->RuntimeServices->ResetSystem(EfiResetCold, STATUS_EFI_SUCCESS, 0, NULL);
}
/**
* Shuts down the machine.
*
* @return This routine returns a status code.
*
* @since XT 1.0
*/
XTCDECL
EFI_STATUS
BlShutdownSystem()
{
/* Shutdown machine */
return EfiSystemTable->RuntimeServices->ResetSystem(EfiResetShutdown, STATUS_EFI_SUCCESS, 0, NULL);
}
/**
* Puts the system to sleep for the specified number of milliseconds.
*

ファイルの表示

@ -646,6 +646,8 @@ BlpInstallXtLoaderProtocol()
BlpLdrProtocol.Tui.UpdateProgressBar = BlUpdateProgressBar;
BlpLdrProtocol.Util.ExitBootServices = BlExitBootServices;
BlpLdrProtocol.Util.GetSecureBootStatus = BlGetSecureBootStatus;
BlpLdrProtocol.Util.RebootSystem = BlRebootSystem;
BlpLdrProtocol.Util.ShutdownSystem = BlShutdownSystem;
BlpLdrProtocol.Util.SleepExecution = BlSleepExecution;
BlpLdrProtocol.Util.WaitForEfiEvent = BlWaitForEfiEvent;