OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcMainLib.h
Go to the documentation of this file.
1
14#ifndef OC_MAIN_LIB
15#define OC_MAIN_LIB
16
17#include <Library/BaseOverflowLib.h>
21#include <Library/OcCpuLib.h>
22#include <Library/OcCryptoLib.h>
23#include <Library/OcMiscLib.h>
24#include <Library/OcStringLib.h>
26
28
33#define OPEN_CORE_VERSION "1.0.4"
34
38#if defined (OC_TARGET_RELEASE)
39#define OPEN_CORE_TARGET "REL"
40#elif defined (OC_TARGET_DEBUG)
41#define OPEN_CORE_TARGET "DBG"
42#elif defined (OC_TARGET_NOOPT)
43#define OPEN_CORE_TARGET "NPT"
44#else
45 #error "Unknown target definition"
46#endif
47
48#define OPEN_CORE_ROOT_PATH L"EFI\\OC"
49
50#define OPEN_CORE_APP_PATH L"OpenCore.efi"
51
52#define OPEN_CORE_CONFIG_PATH L"config.plist"
53
54#define OPEN_CORE_LOG_PREFIX_PATH L"opencore"
55
56#define OPEN_CORE_ACPI_PATH L"ACPI\\"
57
58#define OPEN_CORE_UEFI_DRIVER_PATH L"Drivers\\"
59
60#define OPEN_CORE_KEXT_PATH L"Kexts\\"
61
62#define OPEN_CORE_TOOL_PATH L"Tools\\"
63
73 VOID
74 );
75
82VOID
84 IN OC_STORAGE_CONTEXT *Storage,
85 IN OC_GLOBAL_CONFIG *Config
86 );
87
93VOID
95 IN OC_GLOBAL_CONFIG *Config
96 );
97
106VOID
108 IN OC_STORAGE_CONTEXT *Storage,
109 IN OC_GLOBAL_CONFIG *Config,
110 OUT EFI_HANDLE **DriversToConnect OPTIONAL,
111 IN BOOLEAN LoadEarly
112 );
113
121VOID
123 IN OC_STORAGE_CONTEXT *Storage,
124 IN OC_GLOBAL_CONFIG *Config,
125 IN OC_CPU_INFO *CpuInfo
126 );
127
131EFI_STATUS
133 IN KERNEL_QUIRK_NAME Quirk,
134 IN KERNEL_CACHE_TYPE CacheType,
135 IN UINT32 DarwinVersion,
136 IN OUT VOID *Context,
137 IN OUT PATCHER_CONTEXT *KernelPatcher
138 );
139
143VOID
145 IN OC_GLOBAL_CONFIG *Config,
146 IN KERNEL_CACHE_TYPE CacheType,
147 IN VOID *Context,
148 IN UINT32 DarwinVersion,
149 IN BOOLEAN Is32Bit,
150 IN UINT32 LinkedExpansion,
151 IN UINT32 ReservedExeSize
152 );
153
157VOID
159 IN OC_GLOBAL_CONFIG *Config,
160 IN OC_CPU_INFO *CpuInfo,
161 IN UINT32 DarwinVersion,
162 IN BOOLEAN Is32Bit,
163 IN KERNEL_CACHE_TYPE CacheType,
164 IN VOID *Context,
165 IN OUT UINT8 *Kernel,
166 IN UINT32 Size
167 );
168
172VOID
174 IN OC_GLOBAL_CONFIG *Config,
175 IN UINT32 DarwinVersion,
176 IN BOOLEAN Is32Bit,
177 IN KERNEL_CACHE_TYPE CacheType,
178 IN VOID *Context
179 );
180
184EFI_STATUS
186 IN OC_GLOBAL_CONFIG *Config,
187 IN UINT32 DarwinVersion,
188 IN BOOLEAN Is32Bit,
189 IN OUT UINT8 *Kernel,
190 IN UINT32 *KernelSize,
191 IN UINT32 AllocatedSize,
192 IN UINT32 LinkedExpansion,
193 IN UINT32 ReservedExeSize
194 );
195
199VOID
201 VOID
202 );
203
210VOID
212 IN OC_STORAGE_CONTEXT *Storage,
213 IN OC_GLOBAL_CONFIG *Config
214 );
215
222VOID
224 IN OC_GLOBAL_CONFIG *Config,
225 OUT UINT64 *ApECID
226 );
227
235CONST CHAR8 *
237 IN OC_GLOBAL_CONFIG *Config,
238 IN OC_CPU_INFO *CpuInfo
239 );
240
247VOID
249 IN OC_GLOBAL_CONFIG *Config,
250 IN OC_CPU_INFO *CpuInfo
251 );
252
261VOID
263 IN OC_STORAGE_CONTEXT *Storage,
264 IN OC_GLOBAL_CONFIG *Config,
265 IN OC_CPU_INFO *CpuInfo,
266 IN UINT8 *Signature
267 );
268
274VOID
276 IN OC_GLOBAL_CONFIG *Config
277 );
278
285VOID
287 IN OC_STORAGE_CONTEXT *Storage,
288 IN OC_GLOBAL_CONFIG *Config
289 );
290
297VOID
299 IN OC_STORAGE_CONTEXT *Storage,
300 IN OC_GLOBAL_CONFIG *Config
301 );
302
309VOID
311 IN EFI_EVENT_NOTIFY Handler,
312 IN VOID *Context
313 );
314
320CONST CHAR8 *
322 VOID
323 );
324
334EFI_STATUS
336 IN OC_STORAGE_CONTEXT *Storage,
337 OUT OC_GLOBAL_CONFIG *Config,
338 IN OC_RSA_PUBLIC_KEY *VaultKey OPTIONAL
339 );
340
353VOID
355 IN OC_STORAGE_CONTEXT *Storage,
356 IN OC_GLOBAL_CONFIG *Config,
357 IN CONST CHAR16 *RootPath,
358 IN EFI_DEVICE_PATH_PROTOCOL *LoadPath,
359 IN EFI_HANDLE StorageHandle,
360 OUT UINT8 *Signature OPTIONAL
361 );
362
371EFI_STATUS
373 IN OC_STORAGE_CONTEXT *Storage,
374 IN OC_GLOBAL_CONFIG *Config
375 );
376
384VOID
386 IN OC_GLOBAL_CONFIG *Config,
387 IN EFI_HANDLE LoadHandle OPTIONAL
388 );
389
400VOID
402 IN OC_STORAGE_CONTEXT *Storage,
403 IN OC_GLOBAL_CONFIG *Config,
404 IN OC_PRIVILEGE_CONTEXT *Privilege OPTIONAL,
405 IN OC_IMAGE_START StartImage,
406 IN BOOLEAN CustomBootGuid,
407 IN EFI_HANDLE LoadHandle
408 );
409
415VOID
417 IN OC_GLOBAL_CONFIG *Config
418 );
419
426BOOLEAN
428 IN UINT32 KernelVersion
429 );
430
436VOID
438 IN OC_GLOBAL_CONFIG *Config
439 );
440
448EFI_STATUS
450 IN EFI_FILE_PROTOCOL *Root
451 );
452
453#endif // OC_MAIN_LIB
UINT8 Signature[8]
Definition BiosId.h:67
STATIC UINT32 KernelVersion
Definition KextInject.c:28
DMG_SIZE_DEVICE_PATH Size
enum KERNEL_CACHE_TYPE_ KERNEL_CACHE_TYPE
KERNEL_QUIRK_NAME
EFI_STATUS(EFIAPI * OC_IMAGE_START)(IN OC_BOOT_ENTRY *ChosenEntry, IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL, IN BOOLEAN LaunchInText)
VOID OcKernelApplyPatches(IN OC_GLOBAL_CONFIG *Config, IN OC_CPU_INFO *CpuInfo, IN UINT32 DarwinVersion, IN BOOLEAN Is32Bit, IN KERNEL_CACHE_TYPE CacheType, IN VOID *Context, IN OUT UINT8 *Kernel, IN UINT32 Size)
VOID OcLoadDrivers(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config, OUT EFI_HANDLE **DriversToConnect OPTIONAL, IN BOOLEAN LoadEarly)
VOID OcMiscBoot(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config, IN OC_PRIVILEGE_CONTEXT *Privilege OPTIONAL, IN OC_IMAGE_START StartImage, IN BOOLEAN CustomBootGuid, IN EFI_HANDLE LoadHandle)
VOID OcUnloadKernelSupport(VOID)
EFI_STATUS OcMiscEarlyInit(IN OC_STORAGE_CONTEXT *Storage, OUT OC_GLOBAL_CONFIG *Config, IN OC_RSA_PUBLIC_KEY *VaultKey OPTIONAL)
CONST CHAR8 * OcMiscGetVersionString(VOID)
VOID OcScheduleExitBootServices(IN EFI_EVENT_NOTIFY Handler, IN VOID *Context)
VOID OcLoadPlatformSupport(IN OC_GLOBAL_CONFIG *Config, IN OC_CPU_INFO *CpuInfo)
BOOLEAN OcPlatformIs64BitSupported(IN UINT32 KernelVersion)
VOID OcLoadUefiSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config, IN OC_CPU_INFO *CpuInfo, IN UINT8 *Signature)
CONST CHAR8 * OcGetDefaultSecureBootModel(IN OC_GLOBAL_CONFIG *Config, IN OC_CPU_INFO *CpuInfo)
VOID OcLoadUefiInputSupport(IN OC_GLOBAL_CONFIG *Config)
VOID OcKernelBlockKexts(IN OC_GLOBAL_CONFIG *Config, IN UINT32 DarwinVersion, IN BOOLEAN Is32Bit, IN KERNEL_CACHE_TYPE CacheType, IN VOID *Context)
EFI_STATUS OcMiscLateInit(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config)
VOID OcUnloadDrivers(IN OC_GLOBAL_CONFIG *Config)
VOID OcKernelInjectKexts(IN OC_GLOBAL_CONFIG *Config, IN KERNEL_CACHE_TYPE CacheType, IN VOID *Context, IN UINT32 DarwinVersion, IN BOOLEAN Is32Bit, IN UINT32 LinkedExpansion, IN UINT32 ReservedExeSize)
VOID OcLoadUefiAudioSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config)
VOID OcLoadNvramSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config)
VOID OcMiscLoadSystemReport(IN OC_GLOBAL_CONFIG *Config, IN EFI_HANDLE LoadHandle OPTIONAL)
VOID OcGetLegacySecureBootECID(IN OC_GLOBAL_CONFIG *Config, OUT UINT64 *ApECID)
EFI_STATUS OcKernelProcessPrelinked(IN OC_GLOBAL_CONFIG *Config, IN UINT32 DarwinVersion, IN BOOLEAN Is32Bit, IN OUT UINT8 *Kernel, IN UINT32 *KernelSize, IN UINT32 AllocatedSize, IN UINT32 LinkedExpansion, IN UINT32 ReservedExeSize)
VOID OcLoadUefiOutputSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config)
EFI_STATUS OcDriverInfoDump(IN EFI_FILE_PROTOCOL *Root)
VOID OcMiscMiddleInit(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config, IN CONST CHAR16 *RootPath, IN EFI_DEVICE_PATH_PROTOCOL *LoadPath, IN EFI_HANDLE StorageHandle, OUT UINT8 *Signature OPTIONAL)
VOID OcLoadKernelSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config, IN OC_CPU_INFO *CpuInfo)
OC_RSA_PUBLIC_KEY * OcGetVaultKey(VOID)
EFI_STATUS OcKernelApplyQuirk(IN KERNEL_QUIRK_NAME Quirk, IN KERNEL_CACHE_TYPE CacheType, IN UINT32 DarwinVersion, IN OUT VOID *Context, IN OUT PATCHER_CONTEXT *KernelPatcher)
VOID OcLoadAcpiSupport(IN OC_STORAGE_CONTEXT *Storage, IN OC_GLOBAL_CONFIG *Config)
VOID OcLoadDevPropsSupport(IN OC_GLOBAL_CONFIG *Config)
VOID OcMiscUefiQuirksLoaded(IN OC_GLOBAL_CONFIG *Config)