TianoCore EDK2 master
Loading...
Searching...
No Matches
LsRealTimeClockLib.c File Reference

Go to the source code of this file.

Functions

STATIC VOID InitRtc (VOID)
 
EFI_STATUS EFIAPI LibGetTime (OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
 
EFI_STATUS EFIAPI LibSetTime (IN EFI_TIME *Time)
 
EFI_STATUS EFIAPI LibGetWakeupTime (OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
 
EFI_STATUS EFIAPI LibSetWakeupTime (IN BOOLEAN Enabled, OUT EFI_TIME *Time)
 
STATIC VOID EFIAPI VirtualNotifyEvent (IN EFI_EVENT Event, IN VOID *Context)
 
STATIC EFI_STATUS MapRtcResources (IN EFI_HANDLE ImageHandle, IN EFI_PHYSICAL_ADDRESS RtcPageBase)
 
EFI_STATUS EFIAPI LibRtcInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 

Variables

STATIC BOOLEAN mInitialized = FALSE
 
STATIC EFI_EVENT mRtcVirtualAddrChangeEvent
 
STATIC UINTN mRtcBase
 

Detailed Description

Implement EFI RealTimeClock runtime services via RTC Lib.

Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file LsRealTimeClockLib.c.

Function Documentation

◆ InitRtc()

STATIC VOID InitRtc ( VOID  )

Definition at line 33 of file LsRealTimeClockLib.c.

◆ LibGetTime()

EFI_STATUS EFIAPI LibGetTime ( OUT EFI_TIME Time,
OUT EFI_TIME_CAPABILITIES Capabilities 
)

Returns the current time and date information, and the time-keeping capabilities of the hardware platform.

Parameters
TimeA pointer to storage to receive a snapshot of the current time.
CapabilitiesAn optional pointer to a buffer to receive the real time clock device's capabilities.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETERTime is NULL.
EFI_DEVICE_ERRORThe time could not be retrieved due to hardware error.
EFI_SECURITY_VIOLATIONThe time could not be retrieved due to an authentication failure.

Definition at line 73 of file LsRealTimeClockLib.c.

◆ LibGetWakeupTime()

EFI_STATUS EFIAPI LibGetWakeupTime ( OUT BOOLEAN *  Enabled,
OUT BOOLEAN *  Pending,
OUT EFI_TIME Time 
)

Returns the current wakeup alarm clock setting.

Parameters
EnabledIndicates if the alarm is currently enabled or disabled.
PendingIndicates if the alarm signal is pending and requires acknowledgement.
TimeThe current alarm setting.
Return values
EFI_SUCCESSThe alarm settings were returned.
EFI_INVALID_PARAMETERAny parameter is NULL.
EFI_DEVICE_ERRORThe wakeup time could not be retrieved due to a hardware error.

Definition at line 143 of file LsRealTimeClockLib.c.

◆ LibRtcInitialize()

EFI_STATUS EFIAPI LibRtcInitialize ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

This is the declaration of an EFI image entry point. This can be the entry point to an application written to this specification, an EFI boot service driver, or an EFI runtime driver.

Parameters
ImageHandleHandle that identifies the loaded image.
SystemTableSystem Table for this image.
Return values
EFI_SUCCESSThe operation completed successfully.

Definition at line 294 of file LsRealTimeClockLib.c.

◆ LibSetTime()

EFI_STATUS EFIAPI LibSetTime ( IN EFI_TIME Time)

Sets the current local time and date information.

Parameters
TimeA pointer to the current time.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETERA time field is out of range.
EFI_DEVICE_ERRORThe time could not be set due due to hardware error.

Definition at line 109 of file LsRealTimeClockLib.c.

◆ LibSetWakeupTime()

EFI_STATUS EFIAPI LibSetWakeupTime ( IN BOOLEAN  Enabled,
OUT EFI_TIME Time 
)

Sets the system wakeup alarm clock time.

Parameters
EnabledEnable or disable the wakeup alarm.
TimeIf Enable is TRUE, the time to set the wakeup alarm for.
Return values
EFI_SUCCESSIf Enable is TRUE, then the wakeup alarm was enabled. If Enable is FALSE, then the wakeup alarm was disabled.
EFI_INVALID_PARAMETERA time field is out of range.
EFI_DEVICE_ERRORThe wakeup time could not be set due to a hardware error.
EFI_UNSUPPORTEDA wakeup timer is not supported on this platform.

Definition at line 167 of file LsRealTimeClockLib.c.

◆ MapRtcResources()

STATIC EFI_STATUS MapRtcResources ( IN EFI_HANDLE  ImageHandle,
IN EFI_PHYSICAL_ADDRESS  RtcPageBase 
)

Add the RTC controller address range to the memory map.

Parameters
[in]ImageHandleThe handle to the image.
[in]RtcPageBaseBase address of the RTC controller.
Return values
EFI_SUCCESSSuccess.
EFI_INVALID_PARAMETERA parameter is invalid.
EFI_NOT_FOUNDFlash device not found.

Definition at line 213 of file LsRealTimeClockLib.c.

◆ VirtualNotifyEvent()

STATIC VOID EFIAPI VirtualNotifyEvent ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Fixup internal data so that EFI can be call in virtual mode. Call the passed in Child Notify event and convert any pointers in lib to virtual mode.

Parameters
[in]EventThe Event that is being processed
[in]ContextEvent Context

Definition at line 187 of file LsRealTimeClockLib.c.

Variable Documentation

◆ mInitialized

STATIC BOOLEAN mInitialized = FALSE

Definition at line 20 of file LsRealTimeClockLib.c.

◆ mRtcBase

STATIC UINTN mRtcBase

Definition at line 22 of file LsRealTimeClockLib.c.

◆ mRtcVirtualAddrChangeEvent

STATIC EFI_EVENT mRtcVirtualAddrChangeEvent

Definition at line 21 of file LsRealTimeClockLib.c.