OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcMacInfoLib.h
Go to the documentation of this file.
1
15#ifndef OC_MAC_INFO_LIB_H
16#define OC_MAC_INFO_LIB_H
17
18//
19// Maximum characters for valid Mac-like product name.
20//
21#define OC_OEM_NAME_MAX 48
22
23//
24// Maximum characters for valid Mac-like serial name.
25//
26#define OC_OEM_SERIAL_MAX 24
27
28//
29// Maximum characters for ROM address.
30//
31#define OC_OEM_ROM_MAX 6
32
33typedef struct MAC_INFO_DATA_SMBIOS_ {
34 //
35 // Type 0
36 //
37 CONST CHAR8 *BIOSVersion;
38 CONST CHAR8 *BIOSReleaseDate;
39 //
40 // Type 1
41 //
42 CONST CHAR8 *SystemProductName;
43 CONST CHAR8 *SystemVersion;
44 CONST CHAR8 *SystemSKUNumber;
45 CONST CHAR8 *SystemFamily;
46 //
47 // Type 2
48 //
49 CONST CHAR8 *BoardProduct;
50 CONST CHAR8 *BoardVersion;
51 CONST CHAR8 *BoardAssetTag;
53 CONST UINT8 *BoardType;
54 //
55 // Type 3
56 //
57 CONST UINT8 *ChassisType;
58 CONST CHAR8 *ChassisVersion;
59 CONST CHAR8 *ChassisAssetTag;
60 //
61 // Type 17
62 //
63 CONST UINT8 *MemoryFormFactor;
64 //
65 // Type 128
66 // FirmwareFeatures and FirmwareFeaturesMask are split into two UINT32
67 // values, the lower referring to the traditional FirmwareFeatures and the
68 // upper representing the additions introduced by ExtendedFirmwareFeatures.
69 //
72 //
73 // Type 133
74 //
75 CONST UINT32 *PlatformFeature;
77
78typedef struct MAC_INFO_DATA_DATAHUB_ {
79 CONST CHAR8 *PlatformName;
80 CONST CHAR8 *SystemProductName;
81 CONST CHAR8 *BoardProduct;
82 CONST UINT8 *BoardRevision;
83 CONST UINT32 *DevicePathsSupported;
84 CONST UINT8 *SmcRevision;
85 CONST UINT8 *SmcBranch;
86 CONST UINT8 *SmcPlatform;
88
95
110
118VOID
120 IN CONST CHAR8 *ProductName,
121 OUT MAC_INFO_DATA *MacInfo
122 );
123
133CONST CHAR8 *
135 IN CONST CHAR8 *ProductName
136 );
137
147CONST CHAR8 *
149 IN CONST CHAR8 *BoardId
150 );
151
159BOOLEAN
161 IN CONST CHAR8 *ProductName
162 );
163
173BOOLEAN
175 IN CONST CHAR8 *ProductName,
176 IN UINT32 KernelVersion
177 );
178
179#endif // OC_MAC_INFO_LIB_H
CHAR16 BoardId[7]
Definition BiosId.h:39
STATIC UINT32 KernelVersion
Definition KextInject.c:28
struct MAC_INFO_DATA_ MAC_INFO_DATA
struct MAC_INFO_DATA_DATAHUB_ MAC_INFO_DATA_DATAHUB
CONST CHAR8 * GetSecureBootModelFromBoardId(IN CONST CHAR8 *BoardId)
CONST CHAR8 * GetSecureBootModel(IN CONST CHAR8 *ProductName)
#define OC_OEM_ROM_MAX
VOID GetMacInfo(IN CONST CHAR8 *ProductName, OUT MAC_INFO_DATA *MacInfo)
BOOLEAN IsMacModel64BitCompatible(IN CONST CHAR8 *ProductName, IN UINT32 KernelVersion)
struct MAC_INFO_DATA_SMBIOS_ MAC_INFO_DATA_SMBIOS
BOOLEAN HasMacInfo(IN CONST CHAR8 *ProductName)
struct MAC_INFO_DATA_OEM_ MAC_INFO_DATA_OEM
#define OC_OEM_SERIAL_MAX
CONST CHAR8 * PlatformName
CONST UINT32 * DevicePathsSupported
CONST UINT8 * SmcPlatform
CONST CHAR8 * SystemProductName
CONST UINT8 * SmcBranch
CONST UINT8 * SmcRevision
CONST CHAR8 * BoardProduct
CONST UINT8 * BoardRevision
MAC_INFO_DATA_SMBIOS Smbios
MAC_INFO_DATA_DATAHUB DataHub
MAC_INFO_DATA_OEM Oem
CHAR8 Mlb[OC_OEM_SERIAL_MAX]
UINT8 Rom[OC_OEM_ROM_MAX]
CHAR8 SystemSerialNumber[OC_OEM_SERIAL_MAX]
CONST CHAR8 * ChassisAssetTag
CONST UINT8 * MemoryFormFactor
CONST CHAR8 * SystemProductName
CONST CHAR8 * BoardAssetTag
CONST CHAR8 * BIOSVersion
CONST CHAR8 * BoardLocationInChassis
CONST UINT8 * BoardType
CONST CHAR8 * ChassisVersion
CONST UINT32 * PlatformFeature
CONST CHAR8 * BoardVersion
CONST CHAR8 * SystemFamily
CONST UINT8 * ChassisType
CONST CHAR8 * SystemVersion
CONST CHAR8 * BIOSReleaseDate
CONST CHAR8 * BoardProduct
CONST CHAR8 * SystemSKUNumber