- EFI_STATUS Status;\r
- EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor;\r
- VOID *NotUsed;\r
-\r
- gPeiServices = PeiServicesTablePointer; \r
- \r
- Status = (*PeiServicesTablePointer)->LocatePpi (\r
- PeiServicesTablePointer,\r
- &gEmuPeiServicesTableUpdatePpiGuid, // GUID\r
- 0, // INSTANCE\r
- &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR\r
- &NotUsed // PPI\r
- );\r
- if (!EFI_ERROR (Status)) {\r
- //\r
- // Standard PI Mechanism is to use negative offset from IDT. \r
- // We can't do that in the emulator, so we make up a constant location\r
- // that every one can use. The first try may fail as the PEI Core is still\r
- // initializing its self, but that is OK. \r
- //\r
-\r
- // Reinstall PPI to consumers know to update PEI Services pointer\r
- Status = (*PeiServicesTablePointer)->ReInstallPpi (\r
- PeiServicesTablePointer,\r
- PpiDescriptor,\r
- PpiDescriptor\r
- );\r
-\r
- }\r
-\r