\r
#include <Protocol/Bds.h>\r
\r
-#define EFI_SET_TIMER_TO_SECOND 10000000\r
+#include <Guid/EventGroup.h>\r
\r
-EFI_HANDLE mImageHandle;\r
+#define EFI_SET_TIMER_TO_SECOND 10000000\r
\r
STATIC\r
EFI_STATUS\r
}\r
}\r
\r
- return EFI_SUCCESS;\r
+ return Status;\r
}\r
\r
EFI_STATUS\r
}\r
// Discard key in the buffer\r
do {\r
- Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);\r
+ Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);\r
} while(!EFI_ERROR(Status));\r
gBS->CloseEvent (WaitList[0]);\r
Print(L"\n\r");\r
UnicodeSPrint (BootVariableName, 9 * sizeof(CHAR16), L"Boot%04X", BootOrder[Index]);\r
Status = BdsStartBootOption (BootVariableName);\r
if(!EFI_ERROR(Status)){\r
- // Boot option returned successfully, hence don't need to start next boot option\r
- break;\r
+ // Boot option returned successfully, hence don't need to start next boot option\r
+ break;\r
}\r
// In case of success, we should not return from this call.\r
}\r
return EFI_SUCCESS;\r
}\r
\r
+/**\r
+ An empty function to pass error checking of CreateEventEx ().\r
+\r
+ @param Event Event whose notification function is being invoked.\r
+ @param Context Pointer to the notification function's context,\r
+ which is implementation-dependent.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+EmptyCallbackFunction (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
+{\r
+ return;\r
+}\r
+\r
/**\r
This function uses policy data from the platform to determine what operating\r
system or system utility should be loaded and invoked. This function call\r
UINT16 *BootNext;\r
UINTN BootNextSize;\r
CHAR16 BootVariableName[9];\r
+ EFI_EVENT EndOfDxeEvent;\r
+\r
+ //\r
+ // Signal EndOfDxe PI Event\r
+ //\r
+ Status = gBS->CreateEventEx (\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_NOTIFY,\r
+ EmptyCallbackFunction,\r
+ NULL,\r
+ &gEfiEndOfDxeEventGroupGuid,\r
+ &EndOfDxeEvent\r
+ );\r
+ if (!EFI_ERROR (Status)) {\r
+ gBS->SignalEvent (EndOfDxeEvent);\r
+ }\r
\r
PERF_END (NULL, "DXE", NULL, 0);\r
\r
{\r
EFI_STATUS Status;\r
\r
- mImageHandle = ImageHandle;\r
-\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
&ImageHandle,\r
&gEfiBdsArchProtocolGuid, &gBdsProtocol,\r