OpenCore
1.0.4
OpenCore Bootloader
|
Go to the source code of this file.
Data Structures | |
struct | APPLE_DMG_BOOT_PROTOCOL_ |
Macros | |
#define | APPLE_FAILED_BOOT_POLICY_VARIABLE L"AppleFailedBootPolicy" |
#define | APPLE_FAILED_BOOT_VOLUME_UUID_VARIABLE L"AppleFailedBootVolumeUUID" |
#define | APPLE_RECOVERY_BOOT_NETWORK_GUID |
#define | APPLE_RECOVERY_BOOT_DISK_GUID |
#define | APPLE_DMG_BOOT_PROTOCOL_GUID |
#define | APPLE_DMG_BOOT_PROTOCOL_REVISION 0x20000 |
Typedefs | |
typedef struct APPLE_DMG_BOOT_PROTOCOL_ | APPLE_DMG_BOOT_PROTOCOL |
typedef VOID(EFIAPI * | APPLE_DMG_BOOT_DEBUG_PRINT) (IN UINTN ErrorLevel, IN CONST CHAR8 *Format,...) |
typedef VOID(EFIAPI * | APPLE_DMG_BOOT_CALLBACK) (IN VOID *Context) |
typedef EFI_STATUS(EFIAPI * | APPLE_DMG_BOOT_VERIFIED_BOOT) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN EFI_HANDLE ParentImageHandle, IN CONST CHAR16 *BaseDmgPath, IN APPLE_DMG_BOOT_CALLBACK PreStartCallback OPTIONAL, IN APPLE_DMG_BOOT_CALLBACK PostStartCallback OPTIONAL, IN VOID *CallbackContext OPTIONAL, IN APPLE_DMG_BOOT_DEBUG_PRINT DebugPrintFunction OPTIONAL) |
typedef EFI_STATUS(EFIAPI * | APPLE_DMG_BOOT_UNVERIFIED_BOOT) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN APPLE_DMG_BOOT_CALLBACK PreStartCallback OPTIONAL, IN APPLE_DMG_BOOT_CALLBACK PostStartCallback OPTIONAL, IN VOID *CallbackContext OPTIONAL, IN APPLE_DMG_BOOT_DEBUG_PRINT DebugPrintFunction OPTIONAL) |
typedef EFI_STATUS(EFIAPI * | APPLE_DMG_BOOT_SET_MODE) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN APPLE_DMG_BOOT_MODE Mode) |
Enumerations | |
enum | APPLE_DMG_BOOT_MODE { RecoveryModeDefault , RecoveryModeDisk , RecoveryModeNetwork } |
Variables | |
EFI_GUID | gAppleDiskImageProtocolGuid |
EFI_GUID | gAppleRecoveryBootNetworkGuid |
EFI_GUID | gAppleRecoveryBootDiskGuid |
Apple Dmg Boot protocol.
Copyright (C) 2019, vit9696. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Definition in file AppleDmgBoot.h.
#define APPLE_DMG_BOOT_PROTOCOL_GUID |
Apple DMG boot protocol GUID. 85290934-28DC-4DF5-919A-60E28B1B9449
Definition at line 57 of file AppleDmgBoot.h.
#define APPLE_DMG_BOOT_PROTOCOL_REVISION 0x20000 |
Apple DMG boot protocol revision.
Definition at line 64 of file AppleDmgBoot.h.
#define APPLE_FAILED_BOOT_POLICY_VARIABLE L"AppleFailedBootPolicy" |
Relevant SMC keys used for debugging and T2 reporting: EFMU - Event Failed Mount UUID: boot volume UUID (network / disk / real). EFMV - Event Failed Mount Bridge Version GUID: from BridgeVersion.bin. EFMS - Event Failed Mount Status: 0 on failure EFBS - Event Failed Boot Policy: read from T2. TODO: Explore & Describe them properly. Failed boot poolicy variable in gAppleStartupManagerVariableGuid.
Definition at line 30 of file AppleDmgBoot.h.
#define APPLE_FAILED_BOOT_VOLUME_UUID_VARIABLE L"AppleFailedBootVolumeUUID" |
Failed boot volume variable in gAppleStartupManagerVariableGuid (equal to EFMU).
Definition at line 35 of file AppleDmgBoot.h.
#define APPLE_RECOVERY_BOOT_DISK_GUID |
Set into EFMU / AppleFailedBootVolumeUUID for cmd-R AF677042-9346-11E7-9F13-7200002BCC50
Definition at line 49 of file AppleDmgBoot.h.
#define APPLE_RECOVERY_BOOT_NETWORK_GUID |
Set into EFMU / AppleFailedBootVolumeUUID for cmd-opt-R 68D7AFF4-8079-4281-9A1E-A04A51FB12E0
Definition at line 41 of file AppleDmgBoot.h.
typedef VOID(EFIAPI * APPLE_DMG_BOOT_CALLBACK) (IN VOID *Context) |
Callback type used for prestart and poststart invocation.
Context | Opaque context. |
Definition at line 91 of file AppleDmgBoot.h.
typedef VOID(EFIAPI * APPLE_DMG_BOOT_DEBUG_PRINT) (IN UINTN ErrorLevel, IN CONST CHAR8 *Format,...) |
Prints a debug message to the debug output device at the specified error level.
ErrorLevel | The error level of the debug message. |
Format | Format string for the debug message to print. |
Definition at line 78 of file AppleDmgBoot.h.
typedef struct APPLE_DMG_BOOT_PROTOCOL_ APPLE_DMG_BOOT_PROTOCOL |
Apple DMG boot protocol forward declaration.
Definition at line 69 of file AppleDmgBoot.h.
typedef EFI_STATUS(EFIAPI * APPLE_DMG_BOOT_SET_MODE) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN APPLE_DMG_BOOT_MODE Mode) |
Sets dmg boot mode for the dmg. When non default mode is set, boot failure will get APPLE_RECOVERY_BOOT_DISK_GUID or APPLE_RECOVERY_BOOT_DISK_GUID insted of UUID obtained from device path.
[in] | This | Instance of this protocol. |
[in] | Mode | Desired boot mode. |
EFI_SUCCESS | Boot mode was set. |
EFI_INVALID_PARAMETER | Boot mode is unsupported. |
Definition at line 183 of file AppleDmgBoot.h.
typedef EFI_STATUS(EFIAPI * APPLE_DMG_BOOT_UNVERIFIED_BOOT) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN APPLE_DMG_BOOT_CALLBACK PreStartCallback OPTIONAL, IN APPLE_DMG_BOOT_CALLBACK PostStartCallback OPTIONAL, IN VOID *CallbackContext OPTIONAL, IN APPLE_DMG_BOOT_DEBUG_PRINT DebugPrintFunction OPTIONAL) |
Boot from specified dmg without any kind of verification (including chunklist).
[in] | This | Instance of this protocol. |
[in] | ParentImageHandle | Parent handle to boot from. |
[in] | DevicePath | Path to dmg file. |
[in] | PreStartCallback | Callback invoked prior to starting booter. |
[in] | PostStartCallback | Callback invoked after starting booter. |
[in] | CallbackContext | Callback context for PreStartCallback and PostStartCallback. |
[in] | DebugPrintFunction | Debug printing function, builtin is used if NULL. |
EFI_SUCCESS | Dmg booted and returned success. |
EFI_INVALID_PARAMETER | ParentImageHandle or DevicePath are NULL. |
EFI_INVALID_PARAMETER | Dmg is not valid. |
EFI_UNSUPPORTED | Dmg is less than 512 bytes. |
EFI_NOT_FOUND | Dmg was not found at this device path. |
EFI_OUT_OF_RESOURCES | Memory allocation error happened. |
Definition at line 150 of file AppleDmgBoot.h.
typedef EFI_STATUS(EFIAPI * APPLE_DMG_BOOT_VERIFIED_BOOT) (IN APPLE_DMG_BOOT_PROTOCOL *This, IN EFI_HANDLE ParentImageHandle, IN CONST CHAR16 *BaseDmgPath, IN APPLE_DMG_BOOT_CALLBACK PreStartCallback OPTIONAL, IN APPLE_DMG_BOOT_CALLBACK PostStartCallback OPTIONAL, IN VOID *CallbackContext OPTIONAL, IN APPLE_DMG_BOOT_DEBUG_PRINT DebugPrintFunction OPTIONAL) |
Boot from specified dmg with full chunklist verification. Dmg is located by replacing appending L"dmg". Chunklist is located by replacing appending L"chunklist". After verificaction completion a RamDisk is created with a SingleFile dmg file on it and UnverifiedBoot is called.
[in] | This | Instance of this protocol. |
[in] | ParentImageHandle | Parent handle to boot from (local filesystem handle). |
[in] | BaseDmgPath | Path to dmg file without dmg suffix (e.g. L"\\BaseSystem."). |
[in] | PreStartCallback | Callback invoked prior to starting booter. |
[in] | PostStartCallback | Callback invoked after starting booter. |
[in] | CallbackContext | Callback context for PreStartCallback and PostStartCallback. |
[in] | DebugPrintFunction | Debug printing function, builtin is used if NULL. |
EFI_SUCCESS | Dmg booted and returned success. |
EFI_INVALID_PARAMETER | ParentImageHandle or DevicePath are NULL. |
EFI_INVALID_PARAMETER | Dmg is not valid. |
EFI_UNSUPPORTED | Dmg is less than 512 bytes. |
EFI_NOT_FOUND | Dmg was not found at this device path. |
EFI_OUT_OF_RESOURCES | Memory allocation error happened. |
EFI_ACCESS_DENIED | Security violation. |
Definition at line 120 of file AppleDmgBoot.h.
enum APPLE_DMG_BOOT_MODE |
Dmg boot mode.
Enumerator | |
---|---|
RecoveryModeDefault | |
RecoveryModeDisk | |
RecoveryModeNetwork |
Definition at line 164 of file AppleDmgBoot.h.
|
extern |
|
extern |
|
extern |