]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PcatRealTimeClockRuntimeDxe/PcRtc.c
fixed DMA not be stopped issue when gBS->ExitBootServices called.
[mirror_edk2.git] / MdeModulePkg / Universal / PcatRealTimeClockRuntimeDxe / PcRtc.c
index 22ba816a083cdcfb361915a413b5f4e424fee8e3..e9367fb737e5bb22da572496f078088c21b8a310 100644 (file)
@@ -199,8 +199,8 @@ PcRtcInit (
   //\r
   DataSize = sizeof (UINT32);\r
   Status = EfiGetVariable (\r
-             L"TimerVar",\r
-             &gEfiGenericPlatformVariableGuid,\r
+             L"RTC",\r
+             &gEfiCallerIdGuid,\r
              NULL,\r
              &DataSize,\r
              (VOID *) &TimerVar\r
@@ -429,8 +429,8 @@ PcRtcSetTime (
   TimerVar = Time->Daylight;\r
   TimerVar = (UINT32) ((TimerVar << 16) | Time->TimeZone);\r
   Status =  EfiSetVariable (\r
-              L"TimerVar",\r
-              &gEfiGenericPlatformVariableGuid,\r
+              L"RTC",\r
+              &gEfiCallerIdGuid,\r
               EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
               sizeof (TimerVar),\r
               &TimerVar\r
@@ -845,7 +845,6 @@ RtcTimeFieldsValid (
       Time->Year > 2099 ||\r
       Time->Month < 1 ||\r
       Time->Month > 12 ||\r
-      (!DayValid (Time)) ||\r
       Time->Hour > 23 ||\r
       Time->Minute > 59 ||\r
       Time->Second > 59 ||\r
@@ -853,7 +852,9 @@ RtcTimeFieldsValid (
       (!(Time->TimeZone == EFI_UNSPECIFIED_TIMEZONE || (Time->TimeZone >= -1440 && Time->TimeZone <= 1440))) ||\r
       ((Time->Daylight & (~(EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT))) != 0)\r
       ) {\r
-    return EFI_INVALID_PARAMETER;\r
+    if (!DayValid (Time)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
   }\r
 \r
   return EFI_SUCCESS;\r
@@ -887,6 +888,11 @@ DayValid (
   DayOfMonth[10] = 30;\r
   DayOfMonth[11] = 31;\r
 \r
+  //\r
+  // The validity of Time->Month field should be checked before\r
+  //\r
+  ASSERT (Time->Month >=1);\r
+  ASSERT (Time->Month <=12);\r
   if (Time->Day < 1 ||\r
       Time->Day > DayOfMonth[Time->Month - 1] ||\r
       (Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28))\r
@@ -1047,6 +1053,12 @@ IsWithinOneDay (
 \r
   Adjacent = FALSE;\r
 \r
+  //\r
+  // The validity of From->Month field should be checked before\r
+  //\r
+  ASSERT (From->Month >=1);\r
+  ASSERT (From->Month <=12);\r
+  \r
   if (From->Year == To->Year) {\r
     if (From->Month == To->Month) {\r
       if ((From->Day + 1) == To->Day) {\r