- *EventLogPtr += *LogSize;\r
- *LogSize += NewLogSize;\r
- CopyMem (*EventLogPtr, NewEventHdr, NewEventHdrSize);\r
+ //\r
+ // Check 800-155 event\r
+ // Record to 800-155 event offset only.\r
+ // If the offset is 0, no need to record.\r
+ //\r
+ Record800155Event = Is800155Event (NewEventHdr, NewEventHdrSize, NewEventData, NewEventSize);\r
+ if (Record800155Event) {\r
+ if (EventLogAreaStruct->Next800155EventOffset != 0) {\r
+ CopyMem (\r
+ (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset + NewLogSize,\r
+ (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset,\r
+ EventLogAreaStruct->EventLogSize - EventLogAreaStruct->Next800155EventOffset\r
+ );\r
+\r
+ CopyMem (\r
+ (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset,\r
+ NewEventHdr,\r
+ NewEventHdrSize\r
+ );\r
+ CopyMem (\r
+ (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset + NewEventHdrSize,\r
+ NewEventData,\r
+ NewEventSize\r
+ );\r
+\r
+ EventLogAreaStruct->Next800155EventOffset += NewLogSize;\r
+ EventLogAreaStruct->LastEvent += NewLogSize;\r
+ EventLogAreaStruct->EventLogSize += NewLogSize;\r
+ }\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ EventLogAreaStruct->LastEvent = (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->EventLogSize;\r
+ EventLogAreaStruct->EventLogSize += NewLogSize;\r
+ CopyMem (EventLogAreaStruct->LastEvent, NewEventHdr, NewEventHdrSize);\r