20#include <Library/BaseMemoryLib.h>
21#include <Library/MemoryAllocationLib.h>
33 0x5BC82C38, 0x4DB6, 0x4883, { 0x85, 0x2E, 0xE7, 0x8D, 0x78, 0x0A, 0x6F, 0xE6 }
41 .BIOSVersion =
"134.0.0.0.0",
42 .BIOSReleaseDate =
"12/08/2017",
43 .SystemManufacturer = NULL,
44 .SystemProductName =
"iMac14,2",
45 .SystemVersion =
"1.0",
46 .SystemSerialNumber =
"SU77OPENCORE",
48 .SystemSKUNumber =
"Mac-27ADBB7B4CEE8E61",
49 .SystemFamily =
"iMac",
50 .BoardManufacturer = NULL,
51 .BoardProduct =
"Mac-27ADBB7B4CEE8E61",
52 .BoardVersion =
"iMac14,2",
53 .BoardSerialNumber =
"SU77PEPELATZWAFFE",
55 .BoardLocationInChassis =
"Part Component",
59 .ChassisManufacturer = NULL,
60 .ChassisVersion =
"Mac-27ADBB7B4CEE8E61",
61 .ChassisSerialNumber =
"SU77OPENCORE",
62 .ChassisAssetTag =
"iMac-Aluminum",
63 .FirmwareFeatures = 0xE00FE137,
64 .FirmwareFeaturesMask = 0xFF1FFF3F,
65 .ProcessorType = NULL,
80 PcdGet32 (PcdFixedDebugPrintErrorLevel) |= DEBUG_INFO;
81 PcdGet32 (PcdDebugPrintErrorLevel) |= DEBUG_INFO;
86 if ((b =
UserReadFile ((argc > 1) ? argv[1] :
"Smbios.bin", &f)) == NULL) {
87 printf (
"Read fail\n");
94 gSmbios3.EntryPointLength =
sizeof (SMBIOS_TABLE_3_0_ENTRY_POINT);
98 if (EFI_ERROR (Status)) {
99 DEBUG ((DEBUG_ERROR,
"Failed to install gSmbios3 - %r\n", Status));
109 if (!EFI_ERROR (Status)) {
111 if (!EFI_ERROR (Status)) {
112 SMBIOS_TABLE_3_0_ENTRY_POINT *patchedTablePtr = NULL;
114 if (
doDump && !EFI_ERROR (Status)) {
115 (void)remove (
"out.bin");
116 FILE *fh = fopen (
"out.bin",
"wb");
118 fwrite ((
const void *)(
uintptr_t)(patchedTablePtr->TableAddress), (
size_t)(patchedTablePtr->TableMaximumSize), 1, fh);
121 DEBUG ((DEBUG_ERROR,
"Failed to produce out.bin - %r\n", Status));
124 DEBUG ((DEBUG_ERROR,
"EfiGetSystemConfigurationTable returns error - %r\n", Status));
127 DEBUG ((DEBUG_ERROR,
"OcSmbiosCreate returns error - %r\n", Status));
132 DEBUG ((DEBUG_ERROR,
"Failed to prepare smbios table - %r\n", Status));
145 VOID *NewData = AllocatePool (
Size);
151 gSmbios3.EntryPointLength =
sizeof (SMBIOS_TABLE_3_0_ENTRY_POINT);
159 if (!EFI_ERROR (Status)) {
DMG_SIZE_DEVICE_PATH Size
VOID OcCpuScanProcessor(IN OUT OC_CPU_INFO *Cpu)
VOID OcSmbiosTableFree(IN OUT OC_SMBIOS_TABLE *Table)
EFI_STATUS OcSmbiosCreate(IN OUT OC_SMBIOS_TABLE *SmbiosTable, IN OC_SMBIOS_DATA *Data, IN OC_SMBIOS_UPDATE_MODE Mode, IN OC_CPU_INFO *CpuInfo)
EFI_STATUS OcSmbiosTablePrepare(IN OUT OC_SMBIOS_TABLE *SmbiosTable)
STATIC OC_SMBIOS_DATA SmbiosData
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
STATIC UINT8 MemoryFormFactor
SMBIOS_TABLE_3_0_ENTRY_POINT gSmbios3
SMBIOS_TABLE_ENTRY_POINT gSmbios
STATIC UINT32 PlatformFeature
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
UINT8 * UserReadFile(IN CONST CHAR8 *FileName, OUT UINT32 *Size)
EFI_GUID gEfiSmbios3TableGuid