]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/Event/Timer.c
Fix comparisons of enumerated types which may cause warnings for some compilers.
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / Event / Timer.c
index e1df72153d68ffdc01e02e4b73d712ce98f29a38..3b17ae917cef7d1a50d6a260b2b83a20c2fca7de 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Core Timer Services\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 \r
 #include "DxeMain.h"\r
+#include "Event.h"\r
 \r
 //\r
 // Internal data\r
@@ -50,20 +51,20 @@ CoreInsertEventTimer (
   //\r
   // Get the timer's trigger time\r
   //\r
-  TriggerTime = Event->u.Timer.TriggerTime;\r
+  TriggerTime = Event->Timer.TriggerTime;\r
 \r
   //\r
   // Insert the timer into the timer database in assending sorted order\r
   //\r
   for (Link = mEfiTimerList.ForwardLink; Link != &mEfiTimerList; Link = Link->ForwardLink) {\r
-    Event2 = CR (Link, IEVENT, u.Timer.Link, EVENT_SIGNATURE);\r
+    Event2 = CR (Link, IEVENT, Timer.Link, EVENT_SIGNATURE);\r
 \r
-    if (Event2->u.Timer.TriggerTime > TriggerTime) {\r
+    if (Event2->Timer.TriggerTime > TriggerTime) {\r
       break;\r
     }\r
   }\r
 \r
-  InsertTailList (Link, &Event->u.Timer.Link);\r
+  InsertTailList (Link, &Event->Timer.Link);\r
 }\r
 \r
 /**\r
@@ -111,12 +112,12 @@ CoreCheckTimers (
   SystemTime = CoreCurrentSystemTime ();\r
 \r
   while (!IsListEmpty (&mEfiTimerList)) {\r
-    Event = CR (mEfiTimerList.ForwardLink, IEVENT, u.Timer.Link, EVENT_SIGNATURE);\r
+    Event = CR (mEfiTimerList.ForwardLink, IEVENT, Timer.Link, EVENT_SIGNATURE);\r
 \r
     //\r
     // If this timer is not expired, then we're done\r
     //\r
-    if (Event->u.Timer.TriggerTime > SystemTime) {\r
+    if (Event->Timer.TriggerTime > SystemTime) {\r
       break;\r
     }\r
 \r
@@ -124,8 +125,8 @@ CoreCheckTimers (
     // Remove this timer from the timer queue\r
     //\r
 \r
-    RemoveEntryList (&Event->u.Timer.Link);\r
-    Event->u.Timer.Link.ForwardLink = NULL;\r
+    RemoveEntryList (&Event->Timer.Link);\r
+    Event->Timer.Link.ForwardLink = NULL;\r
 \r
     //\r
     // Signal it\r
@@ -135,17 +136,17 @@ CoreCheckTimers (
     //\r
     // If this is a periodic timer, set it\r
     //\r
-    if (Event->u.Timer.Period) {\r
+    if (Event->Timer.Period != 0) {\r
       //\r
       // Compute the timers new trigger time\r
       //\r
-      Event->u.Timer.TriggerTime = Event->u.Timer.TriggerTime + Event->u.Timer.Period;\r
+      Event->Timer.TriggerTime = Event->Timer.TriggerTime + Event->Timer.Period;\r
 \r
       //\r
       // If that's before now, then reset the timer to start from now\r
       //\r
-      if (Event->u.Timer.TriggerTime <= SystemTime) {\r
-        Event->u.Timer.TriggerTime = SystemTime;\r
+      if (Event->Timer.TriggerTime <= SystemTime) {\r
+        Event->Timer.TriggerTime = SystemTime;\r
         CoreSignalEvent (mEfiCheckTimerEvent);\r
       }\r
 \r
@@ -171,11 +172,12 @@ CoreInitializeTimer (
 {\r
   EFI_STATUS  Status;\r
 \r
-  Status = CoreCreateEvent (\r
+  Status = CoreCreateEventInternal (\r
              EVT_NOTIFY_SIGNAL,\r
              TPL_HIGH_LEVEL - 1,\r
              CoreCheckTimers,\r
              NULL,\r
+             NULL,\r
              &mEfiCheckTimerEvent\r
              );\r
   ASSERT_EFI_ERROR (Status);\r
@@ -212,9 +214,9 @@ CoreTimerTick (
   // to process it\r
   //\r
   if (!IsListEmpty (&mEfiTimerList)) {\r
-    Event = CR (mEfiTimerList.ForwardLink, IEVENT, u.Timer.Link, EVENT_SIGNATURE);\r
+    Event = CR (mEfiTimerList.ForwardLink, IEVENT, Timer.Link, EVENT_SIGNATURE);\r
 \r
-    if (Event->u.Timer.TriggerTime <= mEfiSystemTime) {\r
+    if (Event->Timer.TriggerTime <= mEfiSystemTime) {\r
       CoreSignalEvent (mEfiCheckTimerEvent);\r
     }\r
   }\r
@@ -259,7 +261,7 @@ CoreSetTimer (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if (Type < 0 || Type > TimerRelative  || !(Event->Type & EVT_TIMER)) {\r
+  if ((UINT32)Type > TimerRelative  || (Event->Type & EVT_TIMER) == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -268,21 +270,21 @@ CoreSetTimer (
   //\r
   // If the timer is queued to the timer database, remove it\r
   //\r
-  if (Event->u.Timer.Link.ForwardLink != NULL) {\r
-    RemoveEntryList (&Event->u.Timer.Link);\r
-    Event->u.Timer.Link.ForwardLink = NULL;\r
+  if (Event->Timer.Link.ForwardLink != NULL) {\r
+    RemoveEntryList (&Event->Timer.Link);\r
+    Event->Timer.Link.ForwardLink = NULL;\r
   }\r
 \r
-  Event->u.Timer.TriggerTime = 0;\r
-  Event->u.Timer.Period = 0;\r
+  Event->Timer.TriggerTime = 0;\r
+  Event->Timer.Period = 0;\r
 \r
   if (Type != TimerCancel) {\r
 \r
     if (Type == TimerPeriodic) {\r
-      Event->u.Timer.Period = TriggerTime;\r
+      Event->Timer.Period = TriggerTime;\r
     }\r
 \r
-    Event->u.Timer.TriggerTime = CoreCurrentSystemTime () + TriggerTime;\r
+    Event->Timer.TriggerTime = CoreCurrentSystemTime () + TriggerTime;\r
     CoreInsertEventTimer (Event);\r
 \r
     if (TriggerTime == 0) {\r