Do not use statically macros of EFI_SPECIFICATION_VERSION: Use gST->Hdr.Revision to judge the use of UEFI 2.0 services or EFI 1.0 services

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6448 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2008-11-11 04:22:00 +00:00
parent 5405e9a66b
commit c9c0c803ec
1 changed files with 83 additions and 84 deletions

View File

@ -190,8 +190,6 @@ Returns:
return EFI_SUCCESS; return EFI_SUCCESS;
} }
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
static static
VOID VOID
EFIAPI EFIAPI
@ -211,7 +209,7 @@ EventNotifySignalAllNullEvent (
return; return;
} }
#endif
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
@ -245,49 +243,50 @@ Returns:
UINT32 EventType; UINT32 EventType;
EFI_EVENT_NOTIFY WorkerNotifyFunction; EFI_EVENT_NOTIFY WorkerNotifyFunction;
#if (EFI_SPECIFICATION_VERSION < 0x00020000) if (gST->Hdr.Revision < 0x00020000) {
if (NotifyFunction == NULL) { if (NotifyFunction == NULL) {
EventType = EFI_EVENT_SIGNAL_LEGACY_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL; EventType = EFI_EVENT_SIGNAL_LEGACY_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL;
} else { } else {
EventType = EFI_EVENT_SIGNAL_LEGACY_BOOT; EventType = EFI_EVENT_SIGNAL_LEGACY_BOOT;
} }
WorkerNotifyFunction = NotifyFunction;
//
// prior to UEFI 2.0 use Tiano extension to EFI
//
Status = gBS->CreateEvent (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
LegacyBootEvent
);
#else
EventType = EFI_EVENT_NOTIFY_SIGNAL;
if (NotifyFunction == NULL) {
//
// CreatEventEx will check NotifyFunction is NULL or not
//
WorkerNotifyFunction = EventNotifySignalAllNullEvent;
} else {
WorkerNotifyFunction = NotifyFunction; WorkerNotifyFunction = NotifyFunction;
//
// prior to UEFI 2.0 use Tiano extension to EFI
//
Status = gBS->CreateEvent (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
LegacyBootEvent
);
} else {
EventType = EFI_EVENT_NOTIFY_SIGNAL;
if (NotifyFunction == NULL) {
//
// CreatEventEx will check NotifyFunction is NULL or not
//
WorkerNotifyFunction = EventNotifySignalAllNullEvent;
} else {
WorkerNotifyFunction = NotifyFunction;
}
//
// For UEFI 2.0 and the future use an Event Group
//
Status = gBS->CreateEventEx (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
&gEfiEventLegacyBootGuid,
LegacyBootEvent
);
} }
//
// For UEFI 2.0 and the future use an Event Group
//
Status = gBS->CreateEventEx (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
&gEfiEventLegacyBootGuid,
LegacyBootEvent
);
#endif
return Status; return Status;
} }
@ -324,48 +323,48 @@ Return:
UINT32 EventType; UINT32 EventType;
EFI_EVENT_NOTIFY WorkerNotifyFunction; EFI_EVENT_NOTIFY WorkerNotifyFunction;
#if (EFI_SPECIFICATION_VERSION < 0x00020000) if (gST->Hdr.Revision < 0x00020000) {
if (NotifyFunction == NULL) { if (NotifyFunction == NULL) {
EventType = EFI_EVENT_SIGNAL_READY_TO_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL; EventType = EFI_EVENT_SIGNAL_READY_TO_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL;
} else { } else {
EventType = EFI_EVENT_SIGNAL_READY_TO_BOOT; EventType = EFI_EVENT_SIGNAL_READY_TO_BOOT;
} }
WorkerNotifyFunction = NotifyFunction;
//
// prior to UEFI 2.0 use Tiano extension to EFI
//
Status = gBS->CreateEvent (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
ReadyToBootEvent
);
#else
EventType = EFI_EVENT_NOTIFY_SIGNAL;
if (NotifyFunction == NULL) {
//
// CreatEventEx will check NotifyFunction is NULL or not
//
WorkerNotifyFunction = EventNotifySignalAllNullEvent;
} else {
WorkerNotifyFunction = NotifyFunction; WorkerNotifyFunction = NotifyFunction;
//
// prior to UEFI 2.0 use Tiano extension to EFI
//
Status = gBS->CreateEvent (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
ReadyToBootEvent
);
} else {
EventType = EFI_EVENT_NOTIFY_SIGNAL;
if (NotifyFunction == NULL) {
//
// CreatEventEx will check NotifyFunction is NULL or not
//
WorkerNotifyFunction = EventNotifySignalAllNullEvent;
} else {
WorkerNotifyFunction = NotifyFunction;
}
//
// For UEFI 2.0 and the future use an Event Group
//
Status = gBS->CreateEventEx (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
&gEfiEventReadyToBootGuid,
ReadyToBootEvent
);
} }
//
// For UEFI 2.0 and the future use an Event Group
//
Status = gBS->CreateEventEx (
EventType,
NotifyTpl,
WorkerNotifyFunction,
NotifyContext,
&gEfiEventReadyToBootGuid,
ReadyToBootEvent
);
#endif
return Status; return Status;
} }