19#include <Pi/PiBootMode.h>
21#include <Library/HobLib.h>
22#include <Library/DebugLib.h>
23#include <Library/MemoryAllocationLib.h>
28 IN EFI_GUID *DataGuid,
40 Status = PlatformInfo->GetFirstDataSize (
45 if (EFI_ERROR (Status)) {
48 "OCCPU: No first platform data size for %g up to %u - %r\n",
56 if (DataSize > *
Size) {
59 "OCCPU: Invalid first platform data size %u for %g up to %u - %r\n",
65 return EFI_INVALID_PARAMETER;
68 Status = PlatformInfo->GetFirstData (
74 if (EFI_ERROR (Status)) {
77 "OCCPU: No first platform data for %g up to %u - %r\n",
93 IN EFI_GUID *DataGuid,
103 ASSERT (DataGuid != NULL);
105 Status = PlatformInfo->GetFirstDataSize (
110 if (EFI_ERROR (Status)) {
113 "OCCPU: No first platform data size for %g - %r\n",
120 *Data = AllocatePool (DataSize);
124 "OCCPU: Cannot alloc %u for first platform data %g\n",
128 return EFI_OUT_OF_RESOURCES;
131 Status = PlatformInfo->GetFirstData (
137 if (EFI_ERROR (Status)) {
140 "OCCPU: No first platform data for %g with %u - %r\n",
157 IN EFI_GUID *DataGuid,
158 IN EFI_GUID *HobGuid,
169 ASSERT (DataGuid != NULL);
173 if (FsbHob == NULL) {
174 return EFI_UNSUPPORTED;
177 Status = PlatformInfo->GetDataSize (
180 *(UINT8 *)GET_GUID_HOB_DATA (FsbHob),
183 if (EFI_ERROR (Status)) {
186 "OCCPU: No platform data size for %g up to %u - %r\n",
194 if (DataSize > *
Size) {
197 "OCCPU: Invalid platform data size %u for %g up to %u - %r\n",
203 return EFI_INVALID_PARAMETER;
206 Status = PlatformInfo->GetData (
209 *(UINT8 *)GET_GUID_HOB_DATA (FsbHob),
213 if (EFI_ERROR (Status)) {
216 "OCCPU: No platform data for %g up to %u - %r\n",
DMG_SIZE_DEVICE_PATH Size
VOID *EFIAPI GetFirstGuidHob(IN CONST EFI_GUID *Guid)