summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7df41b1)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10613
6f19259b-4bc3-4df7-8a09-
765794883524
PacketIndex = 0;\r
\r
//\r
PacketIndex = 0;\r
\r
//\r
- // Journal GUID'ed HOBs to find empty record entry. \r
+ // Journal GUID'ed HOBs to find empty record entry. if found, then save status code in it.\r
+ // otherwise, create a new GUID'ed HOB.\r
//\r
Hob.Raw = GetFirstGuidHob (&gMemoryStatusCodeRecordGuid);\r
//\r
Hob.Raw = GetFirstGuidHob (&gMemoryStatusCodeRecordGuid);\r
- while ((Hob.Raw = GetNextGuidHob (&gMemoryStatusCodeRecordGuid, Hob.Raw)) != NULL) {\r
+ while (Hob.Raw != NULL) {\r
PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *) GET_GUID_HOB_DATA (Hob.Guid);\r
\r
//\r
PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *) GET_GUID_HOB_DATA (Hob.Guid);\r
\r
//\r
- Hob.Raw = GET_NEXT_HOB (Hob);\r
+ Hob.Raw = GetNextGuidHob (&gMemoryStatusCodeRecordGuid, Hob.Raw);\r
}\r
\r
if (Record == NULL) {\r
//\r
}\r
\r
if (Record == NULL) {\r
//\r
- // No available entry found\r
+ // No available entry found, so create new packet.\r
- return EFI_OUT_OF_RESOURCES;\r
+ PacketHeader = CreateMemoryStatusCodePacket (PacketIndex);\r
+\r
+ Record = (MEMORY_STATUSCODE_RECORD *) (PacketHeader + 1);\r
+ Record = &Record[PacketHeader->RecordIndex++];\r
}\r
\r
Record->CodeType = CodeType;\r
}\r
\r
Record->CodeType = CodeType;\r
//\r
// Cache data hub protocol.\r
//\r
//\r
// Cache data hub protocol.\r
//\r
-EFI_DATA_HUB_PROTOCOL *mDataHubProtocol = NULL;\r
+EFI_DATA_HUB_PROTOCOL *mDataHubProtocol;\r
BASE_LIST Marker;\r
CHAR8 *Format;\r
UINTN CharCount;\r
BASE_LIST Marker;\r
CHAR8 *Format;\r
UINTN CharCount;\r
\r
//\r
// Use atom operation to avoid the reentant of report.\r
\r
//\r
// Use atom operation to avoid the reentant of report.\r
return EFI_DEVICE_ERROR;\r
}\r
\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- if (mDataHubProtocol == NULL) {\r
- Status = DataHubStatusCodeInitializeWorker ();\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
- }\r
- \r
Record = AcquireRecordBuffer ();\r
if (Record == NULL) {\r
//\r
Record = AcquireRecordBuffer ();\r
if (Record == NULL) {\r
//\r
NULL, \r
(VOID **) &mDataHubProtocol\r
);\r
NULL, \r
(VOID **) &mDataHubProtocol\r
);\r
- if (EFI_ERROR (Status)) {\r
- mDataHubProtocol = NULL;\r
- return Status;\r
- }\r
+ ASSERT_EFI_ERROR (Status);\r
\r
//\r
// Create a Notify Event to log data in Data Hub\r
\r
//\r
// Create a Notify Event to log data in Data Hub\r
ASSERT_EFI_ERROR (Status);\r
}\r
if (FeaturePcdGet (PcdStatusCodeUseDataHub)) {\r
ASSERT_EFI_ERROR (Status);\r
}\r
if (FeaturePcdGet (PcdStatusCodeUseDataHub)) {\r
- DataHubStatusCodeInitializeWorker ();\r
+ Status = DataHubStatusCodeInitializeWorker ();\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
if (FeaturePcdGet (PcdStatusCodeUseOEM)) {\r
//\r
}\r
if (FeaturePcdGet (PcdStatusCodeUseOEM)) {\r
//\r