18#include <IndustryStandard/Pci.h>
24#include <Protocol/PciIo.h>
26#include <Library/BaseLib.h>
27#include <Library/BaseMemoryLib.h>
28#include <Library/BaseOverflowLib.h>
29#include <Library/DebugLib.h>
30#include <Library/MemoryAllocationLib.h>
34#include <Library/UefiBootServicesTableLib.h>
35#include <Library/UefiLib.h>
36#include <Library/UefiRuntimeServicesTableLib.h>
57 if (EFI_ERROR (Status)) {
58 DEBUG ((DEBUG_ERROR,
"OCDH: Uninstall failed - %r\n", Status));
62 Status =
gBS->LocateProtocol (
68 if (!EFI_ERROR (Status)) {
94 (UINT32)AsciiStrSize (Value)
105 IN CONST CHAR16 *Key,
106 IN CONST CHAR8 *Value
110 CHAR16 *UnicodeValue;
112 Status = EFI_SUCCESS;
116 if (UnicodeValue == NULL) {
117 DEBUG ((DEBUG_WARN,
"OCDH: Data Hub failed to allocate %s\n", Key));
118 return EFI_OUT_OF_RESOURCES;
126 (UINT32)StrSize (UnicodeValue)
129 FreePool (UnicodeValue);
139 IN CONST CHAR16 *Key,
140 IN CONST VOID *Value,
146 Status = EFI_SUCCESS;
165 IN CONST CHAR16 *Key,
166 IN CONST VOID *Value,
172 Status = EFI_SUCCESS;
190 IN EFI_GUID *DataRecordGuid,
191 IN CONST CHAR16 *Key,
203 KeySize = (UINT32)StrSize (Key);
204 Result = BaseOverflowTriAddU32 (
211 return EFI_INVALID_PARAMETER;
214 Entry = AllocateZeroPool (TotalSize);
217 return EFI_OUT_OF_RESOURCES;
230 Status = DataHub->LogData (
240 EFI_ERROR (Status) ? DEBUG_WARN : DEBUG_INFO,
241 "OCDH: Setting DataHub %g:%s (%u) - %r\n",
263 if (Data->SystemUUID != NULL) {
271 if (Data->FSBFrequency == NULL) {
272 Data->FSBFrequency = &CpuInfo->FSBFrequency;
276 if ((Data->ARTFrequency == NULL) && (CpuInfo->ARTFrequency > 0) && (CpuInfo->ARTFrequency !=
DEFAULT_ART_CLOCK_SOURCE)) {
277 Data->ARTFrequency = &CpuInfo->ARTFrequency;
EFI_GUID gApplePlatformProducerNameGuid
EFI_GUID gEfiMiscSubClassGuid
EFI_GUID gEfiProcessorSubClassGuid
#define EFI_DATA_RECORD_CLASS_DATA
EFI_GUID gEfiDataHubProtocolGuid
DMG_SIZE_DEVICE_PATH Size
STATIC EFI_STATUS DataHubSetAppleMiscAscii(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN CONST CHAR16 *Key, IN CONST CHAR8 *Value)
STATIC EFI_STATUS DataHubSetAppleMiscUnicode(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN CONST CHAR16 *Key, IN CONST CHAR8 *Value)
STATIC EFI_STATUS DataHubSetAppleProcessorData(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN CONST CHAR16 *Key, IN CONST VOID *Value, IN UINT32 Size)
STATIC EFI_STATUS DataHubSetAppleMiscData(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN CONST CHAR16 *Key, IN CONST VOID *Value, IN UINT32 Size)
EFI_DATA_HUB_PROTOCOL * DataHubInstall(VOID)
EFI_STATUS SetDataHubEntry(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN EFI_GUID *DataRecordGuid, IN CONST CHAR16 *Key, IN CONST VOID *Data, IN UINT32 DataSize)
EFI_STATUS UpdateDataHub(IN EFI_DATA_HUB_PROTOCOL *DataHub, IN OC_DATA_HUB_DATA *Data, IN OC_CPU_INFO *CpuInfo)
EFI_DATA_HUB_PROTOCOL * OcDataHubInstallProtocol(IN BOOLEAN Reinstall)
#define OC_SYSTEM_SERIAL_NUMBER
#define OC_SMC_BRANCH_SIZE
#define OC_COPROCESSOR_VERSION
#define OC_SYSTEM_PRODUCT_NAME
#define OC_BOARD_REVISION
#define OC_SMC_REVISION_SIZE
#define OC_STARTUP_POWER_EVENTS
#define OC_SMC_PLATFORM_SIZE
#define OC_DEVICE_PATHS_SUPPORTED
EFI_STATUS OcUninstallAllProtocolInstances(EFI_GUID *Protocol)
CHAR16 * AsciiStrCopyToUnicode(IN CONST CHAR8 *String, IN UINTN Length)
#define DEFAULT_ART_CLOCK_SOURCE
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)