/** @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 - 2010, 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
\r
\r
#include "DxeMain.h"\r
+#include "Event.h"\r
\r
//\r
// Internal data\r
//\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
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
// 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
//\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
// 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
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (Type < 0 || Type > TimerRelative || !(Event->Type & EVT_TIMER)) {\r
+ if (Type < 0 || Type > TimerRelative || (Event->Type & EVT_TIMER) == 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\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