15#ifndef BOOT_MANAGEMENET_INTERNAL_H
16#define BOOT_MANAGEMENET_INTERNAL_H
24#include <Protocol/DevicePath.h>
25#include <Protocol/SimpleFileSystem.h>
27#define OC_CUSTOM_FS_HANDLE ((EFI_HANDLE)(UINTN) 0x2007C5F5U)
32#define OC_CUSTOM_BOOT_DEVICE_PATH_GUID \
33 { 0xd6f263f9, 0x0b19, 0x4670, \
34 { 0xb0, 0xa4, 0x9d, 0x95, 0x9f, 0x58, 0xdf, 0x65 } }
39#define OC_ENTRY_PROTOCOL_DEVICE_PATH_GUID \
40 { 0x669bf063, 0x78c1, 0x4c29, \
41 { 0x93, 0x34, 0x2f, 0xf0, 0x15, 0xfe, 0xa2, 0xfe } }
48typedef PACKED
struct {
49 VENDOR_DEVICE_PATH
Hdr;
57typedef PACKED
struct {
58 VENDOR_DEVICE_PATH
Hdr;
68typedef PACKED
struct {
76typedef PACKED
struct {
87#define SIZE_OF_OC_CUSTOM_BOOT_DEVICE_PATH \
88 (sizeof (VENDOR_DEVICE_PATH) + SIZE_OF_FILEPATH_DEVICE_PATH)
93#define SIZE_OF_OC_ENTRY_PROTOCOL_DEVICE_PATH \
94 (sizeof (VENDOR_DEVICE_PATH) + sizeof (EFI_GUID) + SIZE_OF_FILEPATH_DEVICE_PATH)
99#define OC_APPLE_VERSION_MAX_SIZE (16)
131 OUT BOOLEAN *External OPTIONAL
134EFI_DEVICE_PATH_PROTOCOL *
148 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem,
149 IN CONST CHAR16 *BootDirectoryName,
150 IN CONST CHAR16 *LabelFilename
155 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem,
156 IN CONST CHAR16 *BootDirectoryName
161 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem,
162 IN CONST CHAR16 *DirectoryName,
163 IN CONST CHAR16 *LabelFilename,
164 OUT VOID **ImageData,
170 IN EFI_HANDLE Device,
171 OUT EFI_DEVICE_PATH_PROTOCOL **
FilePath,
179 IN EFI_HANDLE ParentHandle,
180 OUT EFI_HANDLE *EntryHandle,
182 OUT VOID **CustomFreeContext
187 IN EFI_GUID *BootVariableGuid,
188 IN BOOLEAN BlacklistAppleUpdate,
189 OUT UINTN *BootOrderCount,
190 IN BOOLEAN UseBootNextOnly
195 IN CONST UINT16 *BootOrder,
196 IN EFI_GUID *BootGuid,
197 IN UINTN BootOrderCount
200EFI_DEVICE_PATH_PROTOCOL *
202 IN EFI_LOAD_OPTION *LoadOption,
203 IN UINTN LoadOptionSize
221 IN BOOLEAN IsBootEntryProtocol
240 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
260 IN EFI_HANDLE FileSystemHandle,
262 OUT BOOLEAN *AlreadySeen OPTIONAL
272 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
282 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
EFI_DEVICE_PATH_PROTOCOL * InternalLoadDmg(IN OUT INTERNAL_DMG_LOAD_CONTEXT *Context, IN OC_DMG_LOADING_SUPPORT DmgLoading, IN OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext)
EFI_STATUS InternalRunRequestPrivilege(IN OC_PICKER_CONTEXT *PickerContext, IN OC_PRIVILEGE_LEVEL Level)
EFI_STATUS InternalGetRecoveryOsBooter(IN EFI_HANDLE Device, OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, IN BOOLEAN Basic)
OC_BOOT_FILESYSTEM * InternalFileSystemForHandle(IN OC_BOOT_CONTEXT *BootContext, IN EFI_HANDLE FileSystemHandle, IN BOOLEAN LazyScan, OUT BOOLEAN *AlreadySeen OPTIONAL)
CONST OC_ENTRY_PROTOCOL_DEVICE_PATH * InternalGetOcEntryProtocolDevPath(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
FILEPATH_DEVICE_PATH EntryName
PACKED struct @90 OC_ENTRY_PROTOCOL_DEVICE_PATH
EFI_STATUS InternalGetAppleImage(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem, IN CONST CHAR16 *DirectoryName, IN CONST CHAR16 *LabelFilename, OUT VOID **ImageData, OUT UINT32 *DataSize)
EFI_STATUS InternalLoadBootEntry(IN OC_PICKER_CONTEXT *Context, IN OC_BOOT_ENTRY *BootEntry, IN EFI_HANDLE ParentHandle, OUT EFI_HANDLE *EntryHandle, OUT INTERNAL_DMG_LOAD_CONTEXT *DmgLoadContext, OUT VOID **CustomFreeContext)
INTERNAL_ENTRY_VISIBILITY
CHAR16 * InternalGetAppleDiskLabel(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem, IN CONST CHAR16 *BootDirectoryName, IN CONST CHAR16 *LabelFilename)
EFI_STATUS InternalDescribeBootEntry(IN OC_BOOT_CONTEXT *BootContext, IN OUT OC_BOOT_ENTRY *BootEntry)
PACKED struct @89 OC_CUSTOM_BOOT_DEVICE_PATH
UINT16 * InternalGetBootOrderForBooting(IN EFI_GUID *BootVariableGuid, IN BOOLEAN BlacklistAppleUpdate, OUT UINTN *BootOrderCount, IN BOOLEAN UseBootNextOnly)
EFI_DEVICE_PATH_PROTOCOL * InternalGetBootOptionPath(IN EFI_LOAD_OPTION *LoadOption, IN UINTN LoadOptionSize)
EFI_STATUS InternalAddBootEntryFromCustomEntry(IN OUT OC_BOOT_CONTEXT *BootContext, IN OUT OC_BOOT_FILESYSTEM *FileSystem, IN OC_PICKER_ENTRY *CustomEntry, IN BOOLEAN IsBootEntryProtocol)
PACKED struct @92 OC_ENTRY_PROTOCOL_DEVICE_PATH_DECL
VOID InternalDebugBootEnvironment(IN CONST UINT16 *BootOrder, IN EFI_GUID *BootGuid, IN UINTN BootOrderCount)
BOOLEAN InternalIsAppleLegacyLoadApp(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
CHAR8 * InternalGetContentFlavour(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem, IN CONST CHAR16 *BootDirectoryName)
CONST OC_CUSTOM_BOOT_DEVICE_PATH * InternalGetOcCustomDevPath(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
PACKED struct @91 OC_CUSTOM_BOOT_DEVICE_PATH_DECL
EFI_STATUS InternalCheckScanPolicy(IN EFI_HANDLE Handle, IN UINT32 Policy, OUT BOOLEAN *External OPTIONAL)
VOID InternalUnloadDmg(IN INTERNAL_DMG_LOAD_CONTEXT *DmgLoadContext)
VENDOR_DEVICE_PATH Header
DMG_FILEPATH_DEVICE_PATH FilePath
APPLE_EVENT_HANDLE Handle
EFI_DEVICE_PATH_PROTOCOL * BootDevicePath
EFI_DEVICE_PATH_PROTOCOL * HdDevicePath
OC_APPLE_DISK_IMAGE_CONTEXT * DmgContext
EFI_DEVICE_PATH_PROTOCOL * DevicePath