33STATIC CONST CHAR16 mTimeSettingsVariableName[] = L
"RtcTimeSettings";
60 return EFI_INVALID_PARAMETER;
67 Time->TimeZone = mTimeSettings.TimeZone;
68 Time->Daylight = mTimeSettings.Daylight;
93 BOOLEAN TimeSettingsChanged;
96 return EFI_INVALID_PARAMETER;
99 TimeSettingsChanged =
FALSE;
100 if ((mTimeSettings.TimeZone != Time->TimeZone) ||
101 (mTimeSettings.Daylight != Time->Daylight))
103 mTimeSettings.TimeZone = Time->TimeZone;
104 mTimeSettings.Daylight = Time->Daylight;
105 TimeSettingsChanged =
TRUE;
109 if (EFI_ERROR (Status)) {
113 if (TimeSettingsChanged) {
115 (CHAR16 *)mTimeSettingsVariableName,
118 EFI_VARIABLE_BOOTSERVICE_ACCESS |
119 EFI_VARIABLE_RUNTIME_ACCESS,
120 sizeof (mTimeSettings),
121 (VOID *)&mTimeSettings
123 if (EFI_ERROR (Status)) {
124 return EFI_DEVICE_ERROR;
149 OUT BOOLEAN *Enabled,
150 OUT BOOLEAN *Pending,
154 if ((Time ==
NULL) || (Enabled ==
NULL) || (Pending ==
NULL)) {
155 return EFI_INVALID_PARAMETER;
162 Time->TimeZone = mTimeSettings.TimeZone;
163 Time->Daylight = mTimeSettings.Daylight;
214 if (EFI_ERROR (Status)) {
218 Size =
sizeof (mTimeSettings);
220 (CHAR16 *)mTimeSettingsVariableName,
224 (VOID *)&mTimeSettings
226 if (EFI_ERROR (Status) ||
232 "%a: using default timezone/daylight settings\n",
237 mTimeSettings.Daylight = 0;
240 SystemTable->RuntimeServices->GetTime =
GetTime;
241 SystemTable->RuntimeServices->SetTime =
SetTime;
245 Status =
gBS->InstallMultipleProtocolInterfaces (
247 &gEfiRealTimeClockArchProtocolGuid,
EFI_STATUS EFIAPI GetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI SetTime(IN EFI_TIME *Time)
EFI_STATUS EFIAPI InitializeRealTimeClock(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI SetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
#define DEBUG(Expression)
EFI_STATUS EFIAPI LibSetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI LibRtcInitialize(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI LibGetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI LibSetTime(IN EFI_TIME *Time)
EFI_STATUS EFIAPI LibGetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
BOOLEAN EFIAPI IsValidTimeZone(IN INT16 TimeZone)
BOOLEAN EFIAPI IsTimeValid(IN EFI_TIME *Time)
BOOLEAN EFIAPI IsValidDaylight(IN INT8 Daylight)
#define EFI_VARIABLE_NON_VOLATILE
EFI_STATUS EFIAPI EfiGetVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes OPTIONAL, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI EfiSetVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
#define EFI_UNSPECIFIED_TIMEZONE