mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
OcConfigurationLib: Partially expanded UEFI and kext configuration
This commit is contained in:
parent
ae5fa35334
commit
027ab3fdf9
@ -28,6 +28,62 @@
|
||||
OC_MAP (OC_STRING, OC_ASSOC, _, __)
|
||||
OC_DECLARE (OC_DEVICE_PROP_MAP)
|
||||
|
||||
/**
|
||||
KernelSpace section
|
||||
**/
|
||||
|
||||
///
|
||||
/// KernelSpace kext adds.
|
||||
///
|
||||
|
||||
#define OC_KERNEL_ADD_ENTRY_FIELDS(_, __) \
|
||||
_(OC_STRING , Identifier , , OC_STRING_CONSTR ("", _, __), OC_DESTR (OC_STRING) )
|
||||
OC_DECLARE (OC_KERNEL_ADD_ENTRY)
|
||||
|
||||
#define OC_KERNEL_ADD_ARRAY_FIELDS(_, __) \
|
||||
OC_ARRAY (OC_KERNEL_ADD_ENTRY, _, __)
|
||||
OC_DECLARE (OC_KERNEL_ADD_ARRAY)
|
||||
|
||||
///
|
||||
/// KernelSpace kext blocks.
|
||||
///
|
||||
|
||||
#define OC_KERNEL_BLOCK_ENTRY_FIELDS(_, __) \
|
||||
_(OC_STRING , Identifier , , OC_STRING_CONSTR ("", _, __), OC_DESTR (OC_STRING) )
|
||||
OC_DECLARE (OC_KERNEL_BLOCK_ENTRY)
|
||||
|
||||
#define OC_KERNEL_BLOCK_ARRAY_FIELDS(_, __) \
|
||||
OC_ARRAY (OC_KERNEL_BLOCK_ENTRY, _, __)
|
||||
OC_DECLARE (OC_KERNEL_BLOCK_ARRAY)
|
||||
|
||||
///
|
||||
/// KernelSpace patches.
|
||||
///
|
||||
|
||||
#define OC_KERNEL_PATCH_ENTRY_FIELDS(_, __) \
|
||||
_(OC_STRING , Identifier , , OC_STRING_CONSTR ("", _, __), OC_DESTR (OC_STRING) )
|
||||
OC_DECLARE (OC_KERNEL_PATCH_ENTRY)
|
||||
|
||||
#define OC_KERNEL_PATCH_ARRAY_FIELDS(_, __) \
|
||||
OC_ARRAY (OC_KERNEL_PATCH_ENTRY, _, __)
|
||||
OC_DECLARE (OC_KERNEL_PATCH_ARRAY)
|
||||
|
||||
///
|
||||
/// KernelSpace quirks.
|
||||
///
|
||||
#define OC_KERNEL_QUIRKS_FIELDS(_, __) \
|
||||
_(BOOLEAN , AppleCpuPmCfgLock , , FALSE , ()) \
|
||||
_(BOOLEAN , XhciPortLimit , , FALSE , ()) \
|
||||
_(BOOLEAN , ThirdPartyTrim , , FALSE , ())
|
||||
OC_DECLARE (OC_KERNEL_QUIRKS)
|
||||
|
||||
#define OC_KERNEL_CONFIG_FIELDS(_, __) \
|
||||
_(OC_KERNEL_ADD_ARRAY , Add , , OC_CONSTR2 (OC_KERNEL_ADD_ARRAY, _, __) , OC_DESTR (OC_KERNEL_ADD_ARRAY)) \
|
||||
_(OC_KERNEL_BLOCK_ARRAY , Block , , OC_CONSTR2 (OC_KERNEL_BLOCK_ARRAY, _, __) , OC_DESTR (OC_KERNEL_BLOCK_ARRAY)) \
|
||||
_(OC_KERNEL_PATCH_ARRAY , Patch , , OC_CONSTR2 (OC_KERNEL_PATCH_ARRAY, _, __) , OC_DESTR (OC_KERNEL_PATCH_ARRAY)) \
|
||||
_(OC_KERNEL_QUIRKS , Quirks , , OC_CONSTR2 (OC_KERNEL_QUIRKS, _, __) , OC_DESTR (OC_KERNEL_QUIRKS))
|
||||
OC_DECLARE (OC_KERNEL_CONFIG)
|
||||
|
||||
/**
|
||||
Uefi section
|
||||
**/
|
||||
@ -39,11 +95,23 @@
|
||||
OC_ARRAY (OC_STRING, _, __)
|
||||
OC_DECLARE (OC_UEFI_DRIVER_ARRAY)
|
||||
|
||||
///
|
||||
/// Quirks is a set of hacks for different firmwares.
|
||||
///
|
||||
#define OC_UEFI_QUIRKS_FIELDS(_, __) \
|
||||
_(BOOLEAN , DisableWatchDog , , FALSE , ()) \
|
||||
_(BOOLEAN , IgnoreInvalidFlexRatio , , FALSE , ()) \
|
||||
_(BOOLEAN , ProvideConsoleGop , , FALSE , ())
|
||||
OC_DECLARE (OC_UEFI_QUIRKS)
|
||||
|
||||
|
||||
///
|
||||
/// Uefi contains firmware tweaks and extra drivers.
|
||||
///
|
||||
#define OC_UEFI_CONFIG_FIELDS(_, __) \
|
||||
_(OC_UEFI_DRIVER_ARRAY , Drivers , , OC_CONSTR2 (OC_UEFI_DRIVER_ARRAY, _, __) , OC_DESTR (OC_UEFI_DRIVER_ARRAY))
|
||||
_(BOOLEAN , ConnectDrivers , , FALSE , ()) \
|
||||
_(OC_UEFI_DRIVER_ARRAY , Drivers , , OC_CONSTR2 (OC_UEFI_DRIVER_ARRAY, _, __) , OC_DESTR (OC_UEFI_DRIVER_ARRAY)) \
|
||||
_(OC_UEFI_QUIRKS , Quirks , , OC_CONSTR2 (OC_UEFI_QUIRKS, _, __) , OC_DESTR (OC_UEFI_QUIRKS))
|
||||
OC_DECLARE (OC_UEFI_CONFIG)
|
||||
|
||||
/**
|
||||
@ -52,6 +120,7 @@
|
||||
|
||||
#define OC_GLOBAL_CONFIG_FIELDS(_, __) \
|
||||
_(OC_DEVICE_PROP_MAP , DeviceProperties , , OC_CONSTR1 (OC_DEVICE_PROP_MAP, _, __) , OC_DESTR (OC_DEVICE_PROP_MAP)) \
|
||||
_(OC_KERNEL_CONFIG , Kernel , , OC_CONSTR1 (OC_KERNEL_CONFIG, _, __) , OC_DESTR (OC_KERNEL_CONFIG)) \
|
||||
_(OC_UEFI_CONFIG , Uefi , , OC_CONSTR1 (OC_UEFI_CONFIG, _, __) , OC_DESTR (OC_UEFI_CONFIG))
|
||||
OC_DECLARE (OC_GLOBAL_CONFIG)
|
||||
|
||||
|
||||
@ -15,7 +15,16 @@
|
||||
#include <Library/OcConfigurationLib.h>
|
||||
|
||||
OC_MAP_STRUCTORS (OC_DEVICE_PROP_MAP)
|
||||
OC_STRUCTORS (OC_KERNEL_ADD_ENTRY, ())
|
||||
OC_ARRAY_STRUCTORS (OC_KERNEL_ADD_ARRAY)
|
||||
OC_STRUCTORS (OC_KERNEL_BLOCK_ENTRY, ())
|
||||
OC_ARRAY_STRUCTORS (OC_KERNEL_BLOCK_ARRAY)
|
||||
OC_STRUCTORS (OC_KERNEL_PATCH_ENTRY, ())
|
||||
OC_ARRAY_STRUCTORS (OC_KERNEL_PATCH_ARRAY)
|
||||
OC_STRUCTORS (OC_KERNEL_QUIRKS, ())
|
||||
OC_STRUCTORS (OC_KERNEL_CONFIG, ())
|
||||
OC_ARRAY_STRUCTORS (OC_UEFI_DRIVER_ARRAY)
|
||||
OC_STRUCTORS (OC_UEFI_QUIRKS, ())
|
||||
OC_STRUCTORS (OC_UEFI_CONFIG, ())
|
||||
OC_STRUCTORS (OC_GLOBAL_CONFIG, ())
|
||||
|
||||
@ -32,6 +41,37 @@ STATIC
|
||||
OC_SCHEMA
|
||||
mDevicePropertiesSchema = OC_SCHEMA_MAP (NULL, OC_ASSOC, &mDevicePropertiesEntrySchema);
|
||||
|
||||
|
||||
//
|
||||
// Kernel space configuration support
|
||||
//
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mKernelAddSchema[] = {
|
||||
OC_SCHEMA_STRING_IN ("Identifier", OC_KERNEL_ADD_ENTRY, Identifier),
|
||||
};
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mKernelBlockSchema[] = {
|
||||
OC_SCHEMA_STRING_IN ("Identifier", OC_KERNEL_BLOCK_ENTRY, Identifier),
|
||||
};
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mKernelPatchSchema[] = {
|
||||
OC_SCHEMA_STRING_IN ("Identifier", OC_KERNEL_PATCH_ENTRY, Identifier),
|
||||
};
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mKernelConfigurationSchema[] = {
|
||||
OC_SCHEMA_ARRAY_IN ("Add", OC_GLOBAL_CONFIG, Kernel.Add, mKernelAddSchema),
|
||||
OC_SCHEMA_ARRAY_IN ("Block", OC_GLOBAL_CONFIG, Kernel.Block, mKernelBlockSchema),
|
||||
OC_SCHEMA_ARRAY_IN ("Patch", OC_GLOBAL_CONFIG, Kernel.Patch, mKernelPatchSchema),
|
||||
};
|
||||
|
||||
//
|
||||
// Uefi configuration support
|
||||
//
|
||||
@ -40,10 +80,20 @@ STATIC
|
||||
OC_SCHEMA
|
||||
mUefiDriversSchema = OC_SCHEMA_STRING (NULL);
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mUefiQuirksSchema[] = {
|
||||
OC_SCHEMA_BOOLEAN_IN ("DisableWatchDog", OC_GLOBAL_CONFIG, Uefi.Quirks.DisableWatchDog),
|
||||
OC_SCHEMA_BOOLEAN_IN ("IgnoreInvalidFlexRatio", OC_GLOBAL_CONFIG, Uefi.Quirks.IgnoreInvalidFlexRatio),
|
||||
OC_SCHEMA_BOOLEAN_IN ("ProvideConsoleGop", OC_GLOBAL_CONFIG, Uefi.Quirks.ProvideConsoleGop)
|
||||
};
|
||||
|
||||
STATIC
|
||||
OC_SCHEMA
|
||||
mUefiConfigurationSchema[] = {
|
||||
OC_SCHEMA_ARRAY_IN ("Drivers", OC_GLOBAL_CONFIG, Uefi.Drivers, &mUefiDriversSchema)
|
||||
OC_SCHEMA_BOOLEAN_IN ("ConnectDrivers", OC_GLOBAL_CONFIG, Uefi.ConnectDrivers),
|
||||
OC_SCHEMA_ARRAY_IN ("Drivers", OC_GLOBAL_CONFIG, Uefi.Drivers, &mUefiDriversSchema),
|
||||
OC_SCHEMA_DICT ("Quirks", mUefiQuirksSchema)
|
||||
};
|
||||
|
||||
//
|
||||
@ -54,6 +104,7 @@ STATIC
|
||||
OC_SCHEMA
|
||||
mRootConfigurationNodes[] = {
|
||||
OC_SCHEMA_MAP_IN ("DeviceProperties", OC_GLOBAL_CONFIG, DeviceProperties, &mDevicePropertiesSchema),
|
||||
OC_SCHEMA_DICT ("KernelSpace", mKernelConfigurationSchema),
|
||||
OC_SCHEMA_DICT ("UEFI", mUefiConfigurationSchema)
|
||||
};
|
||||
|
||||
|
||||
@ -110,9 +110,6 @@
|
||||
## @libraryclass
|
||||
OcPngLib|Include/Library/OcPngLib.h
|
||||
|
||||
## @libraryclass
|
||||
OcProtocolLib|Include/Library/OcProtocolLib.h
|
||||
|
||||
## @libraryclass
|
||||
OcSerializeLib|Include/Library/OcSerializeLib.h
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user