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