EmbeddedPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TimeBaseLib.h File Reference

Macros

#define TIME_BUILD_YEAR
 
#define TIME_BUILD_MONTH
 
#define TIME_BUILD_DAY
 
#define EPOCH_JULIAN_DATE   2440588
 
#define SEC_PER_MIN   ((UINTN) 60)
 
#define SEC_PER_HOUR   ((UINTN) 3600)
 
#define SEC_PER_DAY   ((UINTN) 86400)
 

Functions

BOOLEAN EFIAPI IsLeapYear (IN EFI_TIME *Time)
 
BOOLEAN EFIAPI IsDayValid (IN EFI_TIME *Time)
 
BOOLEAN EFIAPI IsValidTimeZone (IN INT16 TimeZone)
 
BOOLEAN EFIAPI IsValidDaylight (IN INT8 Daylight)
 
BOOLEAN EFIAPI IsTimeValid (IN EFI_TIME *Time)
 
VOID EFIAPI EpochToEfiTime (IN UINTN EpochSeconds, OUT EFI_TIME *Time)
 
UINTN EFIAPI EfiTimeToEpoch (IN EFI_TIME *Time)
 
UINTN EfiTimeToWday (IN EFI_TIME *Time)
 

Detailed Description

Copyright (c) 2016, Hisilicon Limited. All rights reserved. Copyright (c) 2016-2019, Linaro Limited. All rights reserved. Copyright (c) 2021, Ampere Computing LLC. All rights reserved.

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

Macro Definition Documentation

#define EPOCH_JULIAN_DATE   2440588
#define SEC_PER_DAY   ((UINTN) 86400)
#define SEC_PER_HOUR   ((UINTN) 3600)
#define SEC_PER_MIN   ((UINTN) 60)
#define TIME_BUILD_DAY
Value:
( __DATE__[4] == '?' ? 1 \
: ((__DATE__[4] == ' ' ? 0 : \
((__DATE__[4] - '0') * 10)) \
+ __DATE__[5] - '0'))
#define TIME_BUILD_MONTH
Value:
( __DATE__ [2] == '?' ? 1 \
: __DATE__ [2] == 'n' ? ( \
__DATE__ [1] == 'a' ? 1 : 6) \
: __DATE__ [2] == 'b' ? 2 \
: __DATE__ [2] == 'r' ? ( \
__DATE__ [0] == 'M' ? 3 : 4) \
: __DATE__ [2] == 'y' ? 5 \
: __DATE__ [2] == 'l' ? 7 \
: __DATE__ [2] == 'g' ? 8 \
: __DATE__ [2] == 'p' ? 9 \
: __DATE__ [2] == 't' ? 10 \
: __DATE__ [2] == 'v' ? 11 \
: 12)
#define TIME_BUILD_YEAR
Value:
(__DATE__[7] == '?' ? 1900 \
: (((__DATE__[7] - '0') * 1000 ) \
+ (__DATE__[8] - '0') * 100 \
+ (__DATE__[9] - '0') * 10 \
+ __DATE__[10] - '0'))

Function Documentation

UINTN EFIAPI EfiTimeToEpoch ( IN EFI_TIME *  Time)

Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC).

Parameters
TimeThe UEFI time to be converted.
Returns
Number of seconds.
UINTN EfiTimeToWday ( IN EFI_TIME *  Time)

Get the day of the week from the UEFI time.

Parameters
TimeThe UEFI time to be calculated.
Returns
The day of the week: Sunday=0, Monday=1, ... Saturday=6
VOID EFIAPI EpochToEfiTime ( IN UINTN  EpochSeconds,
OUT EFI_TIME *  Time 
)

Converts Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC) to EFI_TIME.

Parameters
EpochSecondsEpoch seconds.
TimeThe time converted to UEFI format.
BOOLEAN EFIAPI IsDayValid ( IN EFI_TIME *  Time)

Check if the day in the UEFI time is valid.

Parameters
TimeThe UEFI time to be checked.
Return values
TRUEValid.
FALSEInvalid.
BOOLEAN EFIAPI IsLeapYear ( IN EFI_TIME *  Time)

Check if it is a leap year.

Parameters
TimeThe UEFI time to be checked.
Return values
TRUEIt is a leap year.
FALSEIt is NOT a leap year.
BOOLEAN EFIAPI IsTimeValid ( IN EFI_TIME *  Time)

Check if the UEFI time is valid.

Parameters
TimeThe UEFI time to be checked.
Return values
TRUEValid.
FALSEInvalid.
BOOLEAN EFIAPI IsValidDaylight ( IN INT8  Daylight)

Check if the daylight is valid. Valid values are: 0 : Time is not affected. 1 : Time is affected, and has not been adjusted for daylight savings. 3 : Time is affected, and has been adjusted for daylight savings. All other values are invalid.

Parameters
DaylightThe daylight to be checked.
Return values
TRUEValid.
FALSEInvalid.
BOOLEAN EFIAPI IsValidTimeZone ( IN INT16  TimeZone)

Check if the time zone is valid. Valid values are between -1440 and 1440 or 2047 (EFI_UNSPECIFIED_TIMEZONE).

Parameters
TimeZoneThe time zone to be checked.
Return values
TRUEValid.
FALSEInvalid.