16#ifndef APPLE_SECURE_BOOT_H
17#define APPLE_SECURE_BOOT_H
19#define APPLE_SECURE_BOOT_PROTOCOL_REVISION 4U
21#define APPLE_SECURE_BOOT_PROTOCOL_GUID \
22 { 0x24B73556, 0x2197, 0x4702, \
23 { 0x82, 0xA8, 0x3E, 0x13, 0x37, 0xDA, 0xFB, 0xF2 } }
27#define APPLE_SB_OBJ_TYPE(A, B, C, D) \
39#define APPLE_SB_OBJ_EFIBOOT APPLE_SB_OBJ_TYPE ('e', 'f', 'i', 'b')
40#define APPLE_SB_OBJ_EFIBOOT_DEBUG APPLE_SB_OBJ_TYPE ('e', 'f', 'b', 'd')
41#define APPLE_SB_OBJ_EFIBOOT_BASE APPLE_SB_OBJ_TYPE ('e', 'f', 'b', 'b')
43#define APPLE_SB_OBJ_MUPD APPLE_SB_OBJ_TYPE ('m', 'u', 'p', 'd')
44#define APPLE_SB_OBJ_HPMU APPLE_SB_OBJ_TYPE ('h', 'p', 'm', 'u')
45#define APPLE_SB_OBJ_THOU APPLE_SB_OBJ_TYPE ('t', 'h', 'o', 'u')
46#define APPLE_SB_OBJ_GPUU APPLE_SB_OBJ_TYPE ('g', 'p', 'u', 'u')
47#define APPLE_SB_OBJ_ETHU APPLE_SB_OBJ_TYPE ('e', 't', 'h', 'u')
48#define APPLE_SB_OBJ_SDFU APPLE_SB_OBJ_TYPE ('s', 'd', 'f', 'u')
49#define APPLE_SB_OBJ_DTHU APPLE_SB_OBJ_TYPE ('d', 't', 'h', 'u')
55#define APPLE_SB_OBJ_KERNEL APPLE_SB_OBJ_TYPE ('m', 'k', 'r', 'n')
56#define APPLE_SB_OBJ_KERNEL_DEBUG APPLE_SB_OBJ_TYPE ('m', 'k', 'r', 'd')
96 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
125 IN CONST VOID *ImageBuffer,
127 IN CONST VOID *ManifestBuffer,
128 IN UINTN ManifestSize,
242 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
267 IN CONST VOID *ImageBuffer,
VOID(EFIAPI * APPLE_SB_SET_AVAILABILITY)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN BOOLEAN Available)
EFI_STATUS(EFIAPI * APPLE_SB_VERIFY_WINDOWS)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN CONST VOID *ImageBuffer, IN UINTN ImageSize, IN BOOLEAN SetFailureReason)
EFI_STATUS(EFIAPI * APPLE_SB_VERIFY_IMG4)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN CONST VOID *ImageBuffer, IN UINTN ImageSize, IN CONST VOID *ManifestBuffer, IN UINTN ManifestSize, IN UINT32 ObjType, IN BOOLEAN SetFailureReason)
EFI_STATUS(EFIAPI * APPLE_SB_VERIFY_WINDOWS_BY_PATH)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN BOOLEAN SetFailureReason)
EFI_STATUS(EFIAPI * APPLE_SB_SET_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN UINT8 Reason)
EFI_STATUS(EFIAPI * APPLE_SB_GET_WINDOWS_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, OUT UINT8 *Reason)
EFI_STATUS(EFIAPI * APPLE_SB_GET_POLICY)(IN APPLE_SECURE_BOOT_PROTOCOL *This, OUT UINT8 *Policy)
EFI_GUID gAppleSecureBootProtocolGuid
EFI_STATUS(EFIAPI * APPLE_SB_GET_KERNEL_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, OUT UINT8 *Reason)
EFI_STATUS(EFIAPI * APPLE_SB_SET_KERNEL_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN UINT8 Reason)
EFI_STATUS(EFIAPI * APPLE_SB_GET_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, OUT UINT8 *Reason)
EFI_STATUS(EFIAPI * APPLE_SB_SET_WINDOWS_FAILURE_REASON)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN UINT8 Reason)
EFI_STATUS(EFIAPI * APPLE_SB_GET_WINDOWS_POLICY)(IN APPLE_SECURE_BOOT_PROTOCOL *This, OUT UINT8 *Policy)
EFI_STATUS(EFIAPI * APPLE_SB_VERIFY_IMG4_BY_PATH)(IN APPLE_SECURE_BOOT_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN UINT32 ObjType, IN BOOLEAN SetFailureReason)
APPLE_SB_VERIFY_WINDOWS VerifyWindows
APPLE_SB_GET_FAILURE_REASON GetFailureReason
APPLE_SB_VERIFY_IMG4_BY_PATH VerifyImg4ByPath
APPLE_SB_GET_POLICY GetPolicy
APPLE_SB_VERIFY_WINDOWS_BY_PATH VerifyWindowsByPath
APPLE_SB_SET_KERNEL_FAILURE_REASON SetKernelFailureReason
APPLE_SB_GET_WINDOWS_FAILURE_REASON GetWindowsFailureReason
APPLE_SB_SET_WINDOWS_FAILURE_REASON SetWindowsFailureReason
APPLE_SB_GET_WINDOWS_POLICY GetWindowsPolicy
APPLE_SB_GET_KERNEL_FAILURE_REASON GetKernelFailureReason
APPLE_SB_SET_FAILURE_REASON SetFailureReason
APPLE_SB_VERIFY_IMG4 VerifyImg4
APPLE_SB_SET_AVAILABILITY SetAvailability