6#include <Library/DebugLib.h>
12#include <Protocol/LoadedImage.h>
14EFI_DEVICE_PATH_PROTOCOL *
16 IN EFI_DEVICE_PATH_PROTOCOL *
FilePath,
17 IN EFI_DEVICE_PATH_PROTOCOL *FullPath
28 IN CONST CHAR8 *InfoPlist,
29 IN UINT32 InfoPlistSize,
30 IN UINT8 *Executable OPTIONAL,
31 IN UINT32 ExecutableSize OPTIONAL,
37 return EFI_UNSUPPORTED;
43 IN CONST CHAR8 *Identifier,
49 return EFI_UNSUPPORTED;
60 return EFI_UNSUPPORTED;
66 IN CONST CHAR8 *Identifier,
72 return EFI_UNSUPPORTED;
78 IN CONST CHAR8 *Identifier
83 return EFI_UNSUPPORTED;
97 IN CONST CHAR16 *FileName,
98 IN EFI_FILE_PROTOCOL *File,
99 OUT EFI_FILE_PROTOCOL **VirtualFile
104 return EFI_UNSUPPORTED;
110 IN CONST CHAR16 *FileName,
111 IN EFI_FILE_PROTOCOL *ExtensionsDir,
118 return EFI_UNSUPPORTED;
124 OUT EFI_FILE_PROTOCOL **File
129 return EFI_UNSUPPORTED;
135 IN CONST CHAR16 *FileName,
136 OUT EFI_FILE_PROTOCOL **File
141 return EFI_UNSUPPORTED;
146 IN EFI_FILE_PROTOCOL *OriginalFile OPTIONAL,
147 IN EFI_FILE_OPEN OpenCallback OPTIONAL,
148 IN BOOLEAN CloseOnFailure,
149 OUT EFI_FILE_PROTOCOL **File
154 return EFI_UNSUPPORTED;
159 IN CONST CHAR16 *FileName,
162 IN CONST EFI_TIME *ModificationTime OPTIONAL,
163 OUT EFI_FILE_PROTOCOL **File
168 return EFI_UNSUPPORTED;
173 IN OUT EFI_BOOT_SERVICES *BootServices
178 return EFI_UNSUPPORTED;
183 IN OUT EFI_BOOT_SERVICES *BootServices,
184 IN EFI_FILE_OPEN OpenCallback
189 return EFI_UNSUPPORTED;
194 IN OUT EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,
195 IN CONST CHAR8 **Arguments,
196 IN UINT32 ArgumentCount,
207 IN EFI_LOADED_IMAGE *LoadedImage OPTIONAL,
208 IN EFI_GET_VARIABLE GetVariable OPTIONAL,
209 IN CONST CHAR8 *Argument,
210 IN CONST UINTN ArgumentLength,
211 IN OUT CHAR8 **Value OPTIONAL
229 OUT EFI_FILE_PROTOCOL **FileSystem
234 return EFI_UNSUPPORTED;
239 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
240 OUT BOOLEAN *IsFolder OPTIONAL,
241 OUT BOOLEAN *IsGeneric OPTIONAL
251 IN EFI_FILE_PROTOCOL *File,
257 return EFI_UNSUPPORTED;
263 IN EFI_FILE_PROTOCOL *Directory,
264 IN CHAR16 *FileNameStartsWith OPTIONAL,
265 OUT EFI_FILE_INFO **FileInfo
270 return EFI_UNSUPPORTED;
293 IN CONST EFI_FILE_PROTOCOL *Protocol,
294 OUT EFI_FILE_PROTOCOL **NewHandle,
295 IN CONST CHAR16 *FileName,
296 IN CONST UINT64 OpenMode,
297 IN CONST UINT64 Attributes
302 return EFI_UNSUPPORTED;
309 OUT UINT32 *FileSize OPTIONAL
319 IN CONST EFI_FILE_PROTOCOL *RootDirectory,
321 OUT UINT32 *FileSize OPTIONAL,
322 IN UINT32 MaxFileSize OPTIONAL
330EFI_MEMORY_DESCRIPTOR *
332 OUT UINTN *MemoryMapSize,
333 OUT UINTN *DescriptorSize,
334 OUT UINTN *MapKey OPTIONAL,
335 OUT UINT32 *DescriptorVersion OPTIONAL,
336 OUT UINTN *OriginalMemoryMapSize OPTIONAL,
337 IN BOOLEAN IncludeSplitSpace
347 IN EFI_FILE_PROTOCOL *File,
348 IN EFI_GUID *InformationType,
349 IN UINTN MinFileInfoSize,
350 OUT UINTN *RealFileInfoSize OPTIONAL
360 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem
370 IN CONST EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem,
372 OUT UINT32 *FileSize OPTIONAL,
373 IN CONST UINT32 MaxFileSize OPTIONAL
STATIC UINT32 KernelVersion
DMG_FILEPATH_DEVICE_PATH FilePath
#define MAX_INFO_BUNDLE_VERSION_KEY_SIZE
VOID(* OC_IMAGE_LOADER_CONFIGURE)(IN OUT EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, IN UINT32 Capabilities)
UINT32 OC_BOOT_ENTRY_TYPE
VOID CachelessContextFree(IN OUT CACHELESS_CONTEXT *Context)
EFI_DEVICE_PATH_PROTOCOL * OcGetNextLoadOptionDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN EFI_DEVICE_PATH_PROTOCOL *FullPath)
EFI_STATUS OcSafeFileOpen(IN CONST EFI_FILE_PROTOCOL *Protocol, OUT EFI_FILE_PROTOCOL **NewHandle, IN CONST CHAR16 *FileName, IN CONST UINT64 OpenMode, IN CONST UINT64 Attributes)
EFI_STATUS CachelessContextHookBuiltin(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR16 *FileName, IN EFI_FILE_PROTOCOL *File, OUT EFI_FILE_PROTOCOL **VirtualFile)
VOID * OcReadFileFromDirectory(IN CONST EFI_FILE_PROTOCOL *RootDirectory, IN CONST CHAR16 *FilePath, OUT UINT32 *FileSize OPTIONAL, IN UINT32 MaxFileSize OPTIONAL)
EFI_MEMORY_DESCRIPTOR * OcGetCurrentMemoryMap(OUT UINTN *MemoryMapSize, OUT UINTN *DescriptorSize, OUT UINTN *MapKey OPTIONAL, OUT UINT32 *DescriptorVersion OPTIONAL, OUT UINTN *OriginalMemoryMapSize OPTIONAL, IN BOOLEAN IncludeSplitSpace)
EFI_STATUS CachelessContextPerformInject(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR16 *FileName, OUT EFI_FILE_PROTOCOL **File)
CHAR16 * OcGetVolumeLabel(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem)
BOOLEAN OcPlatformIs64BitSupported(IN UINT32 KernelVersion)
EFI_STATUS CachelessContextInit(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR16 *FileName, IN EFI_FILE_PROTOCOL *ExtensionsDir, IN UINT32 KernelVersion, IN BOOLEAN Is32Bit)
VOID * OcGetFileInfo(IN EFI_FILE_PROTOCOL *File, IN EFI_GUID *InformationType, IN UINTN MinFileInfoSize, OUT UINTN *RealFileInfoSize OPTIONAL)
VOID OcImageLoaderRegisterConfigure(IN OC_IMAGE_LOADER_CONFIGURE Configure OPTIONAL)
EFI_STATUS OcGetFileModificationTime(IN EFI_FILE_PROTOCOL *File, OUT EFI_TIME *Time)
VOID * OcStorageReadFileUnicode(IN OC_STORAGE_CONTEXT *Context, IN CONST CHAR16 *FilePath, OUT UINT32 *FileSize OPTIONAL)
EFI_STATUS CachelessContextAddQuirk(IN OUT CACHELESS_CONTEXT *Context, IN KERNEL_QUIRK_NAME Quirk)
EFI_STATUS CachelessContextAddKext(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR8 *InfoPlist, IN UINT32 InfoPlistSize, IN UINT8 *Executable OPTIONAL, IN UINT32 ExecutableSize OPTIONAL, OUT CHAR8 BundleVersion[MAX_INFO_BUNDLE_VERSION_KEY_SIZE] OPTIONAL)
OC_BOOT_ENTRY_TYPE OcGetBootDevicePathType(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT BOOLEAN *IsFolder OPTIONAL, OUT BOOLEAN *IsGeneric OPTIONAL)
EFI_STATUS CachelessContextForceKext(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR8 *Identifier)
VOID OcDirectorySeachContextInit(IN OUT DIRECTORY_SEARCH_CONTEXT *Context)
EFI_STATUS CachelessContextOverlayExtensionsDir(IN OUT CACHELESS_CONTEXT *Context, OUT EFI_FILE_PROTOCOL **File)
EFI_STATUS DisableVirtualFs(IN OUT EFI_BOOT_SERVICES *BootServices)
VOID * OcReadFile(IN CONST EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem, IN CONST CHAR16 *FilePath, OUT UINT32 *FileSize OPTIONAL, IN CONST UINT32 MaxFileSize OPTIONAL)
BOOLEAN OcAppendArgumentsToLoadedImage(IN OUT EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, IN CONST CHAR8 **Arguments, IN UINT32 ArgumentCount, IN BOOLEAN Replace)
BOOLEAN OcCheckArgumentFromEnv(IN EFI_LOADED_IMAGE *LoadedImage OPTIONAL, IN EFI_GET_VARIABLE GetVariable OPTIONAL, IN CONST CHAR8 *Argument, IN CONST UINTN ArgumentLength, IN OUT CHAR8 **Value OPTIONAL)
EFI_STATUS OcGetNewestFileFromDirectory(IN OUT DIRECTORY_SEARCH_CONTEXT *Context, IN EFI_FILE_PROTOCOL *Directory, IN CHAR16 *FileNameStartsWith OPTIONAL, OUT EFI_FILE_INFO **FileInfo)
EFI_STATUS CachelessContextAddPatch(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR8 *Identifier, IN PATCHER_GENERIC_PATCH *Patch)
EFI_STATUS OcFindWritableOcFileSystem(OUT EFI_FILE_PROTOCOL **FileSystem)
EFI_STATUS CachelessContextBlock(IN OUT CACHELESS_CONTEXT *Context, IN CONST CHAR8 *Identifier, IN BOOLEAN Exclude)
EFI_STATUS EnableVirtualFs(IN OUT EFI_BOOT_SERVICES *BootServices, IN EFI_FILE_OPEN OpenCallback)
EFI_STATUS CreateVirtualFileFileNameCopy(IN CONST CHAR16 *FileName, IN VOID *FileBuffer, IN UINT64 FileSize, IN CONST EFI_TIME *ModificationTime OPTIONAL, OUT EFI_FILE_PROTOCOL **File)
EFI_STATUS CreateRealFile(IN EFI_FILE_PROTOCOL *OriginalFile OPTIONAL, IN EFI_FILE_OPEN OpenCallback OPTIONAL, IN BOOLEAN CloseOnFailure, OUT EFI_FILE_PROTOCOL **File)