/** @file\r
RTC Architectural Protocol GUID as defined in DxeCis 0.96.\r
\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, 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
//\r
Status = RtcWaitToUpdate (PcdGet32 (PcdRealTimeClockUpdateTimeout));\r
if (EFI_ERROR (Status)) {\r
+ //\r
+ // Set the variable with default value if the RTC is functioning incorrectly.\r
+ //\r
+ Global->SavedTimeZone = EFI_UNSPECIFIED_TIMEZONE;\r
+ Global->Daylight = 0;\r
if (!EfiAtRuntime ()) {\r
EfiReleaseLock (&Global->RtcLock);\r
}\r
Status = RtcTimeFieldsValid (&Time);\r
}\r
if (EFI_ERROR (Status)) {\r
+ //\r
+ // Report Status Code to indicate that the RTC has bad date and time\r
+ //\r
+ REPORT_STATUS_CODE (\r
+ EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
+ (EFI_SOFTWARE_DXE_RT_DRIVER | EFI_SW_EC_BAD_DATE_TIME)\r
+ );\r
Time.Second = RTC_INIT_SECOND;\r
Time.Minute = RTC_INIT_MINUTE;\r
Time.Hour = RTC_INIT_HOUR;\r
Time.Month = RTC_INIT_MONTH;\r
Time.Year = RTC_INIT_YEAR;\r
Time.Nanosecond = 0;\r
+ Time.TimeZone = EFI_UNSPECIFIED_TIMEZONE;\r
+ Time.Daylight = 0;\r
}\r
\r
//\r
\r
**/\r
EFI_STATUS\r
-EFIAPI\r
PcRtcGetTime (\r
OUT EFI_TIME *Time,\r
OUT EFI_TIME_CAPABILITIES *Capabilities, OPTIONAL\r
\r
**/\r
EFI_STATUS\r
-EFIAPI\r
PcRtcSetTime (\r
IN EFI_TIME *Time,\r
IN PC_RTC_MODULE_GLOBALS *Global\r
Global->Daylight = Time->Daylight;\r
\r
TimerVar = Time->Daylight;\r
- TimerVar = (UINT32) ((TimerVar << 16) | Time->TimeZone);\r
+ TimerVar = (UINT32) ((TimerVar << 16) | (UINT16)(Time->TimeZone));\r
Status = EfiSetVariable (\r
L"RTC",\r
&gEfiCallerIdGuid,\r
//\r
// Get the alarm info from variable\r
//\r
+ DataSize = sizeof (EFI_TIME);\r
Status = EfiGetVariable (\r
L"RTCALARM",\r
&gEfiCallerIdGuid,\r
\r
**/\r
EFI_STATUS\r
-EFIAPI\r
PcRtcSetWakeupTime (\r
IN BOOLEAN Enable,\r
IN EFI_TIME *Time, OPTIONAL\r
UINT8 Century;\r
EFI_TIME_CAPABILITIES Capabilities;\r
\r
- ZeroMem (RtcTime);\r
+ ZeroMem (&RtcTime, sizeof (RtcTime));\r
\r
if (Enable) {\r
\r