]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/Event/Timer.c
MdeModulePkg/Core: Merge memory map after filtering paging capability
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / Event / Timer.c
index b1a5e3cdc891182e26e6611edce023b0c349645c..6cd4e6c1854bbbbf71c1cf6645ff797027f79644 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Core Timer Services\r
 \r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2013, 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
@@ -172,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
@@ -186,7 +187,7 @@ CoreInitializeTimer (
 /**\r
   Called by the platform code to process a tick.\r
 \r
-  @param  Duration               The number of 100ns elasped since the last call\r
+  @param  Duration               The number of 100ns elapsed since the last call\r
                                  to TimerTick\r
 \r
 **/\r
@@ -260,7 +261,7 @@ CoreSetTimer (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if (Type < 0 || Type > TimerRelative  || (Event->Type & EVT_TIMER) == 0) {\r
+  if ((UINT32)Type > TimerRelative  || (Event->Type & EVT_TIMER) == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -280,6 +281,9 @@ CoreSetTimer (
   if (Type != TimerCancel) {\r
 \r
     if (Type == TimerPeriodic) {\r
+      if (TriggerTime == 0) {\r
+        gTimer->GetTimerPeriod (gTimer, &TriggerTime);\r
+      }\r
       Event->Timer.Period = TriggerTime;\r
     }\r
 \r