ArmPlatformPkg/PL031RealTimeClockLib: remove local copy of gRT pointer

Since the only reason for keeping a local copy mRT of the gRT pointer
is to be able to call GetVariable/SetVariable at runtime, use the
UefiRuntimeLib helpers instead, so that we can drop mRT altogether.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel 2016-04-13 10:07:55 +02:00
parent 3ad72779aa
commit fca117fd3f
1 changed files with 6 additions and 10 deletions

View File

@ -43,7 +43,6 @@ STATIC CONST CHAR16 mDaylightVariableName[] = L"PL031RtcDaylight";
STATIC BOOLEAN mPL031Initialized = FALSE; STATIC BOOLEAN mPL031Initialized = FALSE;
STATIC EFI_EVENT mRtcVirtualAddrChangeEvent; STATIC EFI_EVENT mRtcVirtualAddrChangeEvent;
STATIC UINTN mPL031RtcBase; STATIC UINTN mPL031RtcBase;
STATIC EFI_RUNTIME_SERVICES *mRT;
EFI_STATUS EFI_STATUS
IdentifyPL031 ( IdentifyPL031 (
@ -293,7 +292,7 @@ LibGetTime (
// Get the current time zone information from non-volatile storage // Get the current time zone information from non-volatile storage
Size = sizeof (TimeZone); Size = sizeof (TimeZone);
Status = mRT->GetVariable ( Status = EfiGetVariable (
(CHAR16 *)mTimeZoneVariableName, (CHAR16 *)mTimeZoneVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
NULL, NULL,
@ -311,7 +310,7 @@ LibGetTime (
// The time zone variable does not exist in non-volatile storage, so create it. // The time zone variable does not exist in non-volatile storage, so create it.
Time->TimeZone = EFI_UNSPECIFIED_TIMEZONE; Time->TimeZone = EFI_UNSPECIFIED_TIMEZONE;
// Store it // Store it
Status = mRT->SetVariable ( Status = EfiSetVariable (
(CHAR16 *)mTimeZoneVariableName, (CHAR16 *)mTimeZoneVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
@ -345,7 +344,7 @@ LibGetTime (
// Get the current daylight information from non-volatile storage // Get the current daylight information from non-volatile storage
Size = sizeof (Daylight); Size = sizeof (Daylight);
Status = mRT->GetVariable ( Status = EfiGetVariable (
(CHAR16 *)mDaylightVariableName, (CHAR16 *)mDaylightVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
NULL, NULL,
@ -363,7 +362,7 @@ LibGetTime (
// The daylight variable does not exist in non-volatile storage, so create it. // The daylight variable does not exist in non-volatile storage, so create it.
Time->Daylight = 0; Time->Daylight = 0;
// Store it // Store it
Status = mRT->SetVariable ( Status = EfiSetVariable (
(CHAR16 *)mDaylightVariableName, (CHAR16 *)mDaylightVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
@ -497,7 +496,7 @@ LibSetTime (
// Do this after having set the RTC. // Do this after having set the RTC.
// Save the current time zone information into non-volatile storage // Save the current time zone information into non-volatile storage
Status = mRT->SetVariable ( Status = EfiSetVariable (
(CHAR16 *)mTimeZoneVariableName, (CHAR16 *)mTimeZoneVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
@ -515,7 +514,7 @@ LibSetTime (
} }
// Save the current daylight information into non-volatile storage // Save the current daylight information into non-volatile storage
Status = mRT->SetVariable ( Status = EfiSetVariable (
(CHAR16 *)mDaylightVariableName, (CHAR16 *)mDaylightVariableName,
&gEfiCallerIdGuid, &gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
@ -608,7 +607,6 @@ LibRtcVirtualNotifyEvent (
// runtime calls will be made in virtual mode. // runtime calls will be made in virtual mode.
// //
EfiConvertPointer (0x0, (VOID**)&mPL031RtcBase); EfiConvertPointer (0x0, (VOID**)&mPL031RtcBase);
EfiConvertPointer (0x0, (VOID**)&mRT);
return; return;
} }
@ -650,8 +648,6 @@ LibRtcInitialize (
return Status; return Status;
} }
mRT = gRT;
// Install the protocol // Install the protocol
Handle = NULL; Handle = NULL;
Status = gBS->InstallMultipleProtocolInterfaces ( Status = gBS->InstallMultipleProtocolInterfaces (