From 55ee36b0c490d9a6582e083bb3ac78a22d33053f Mon Sep 17 00:00:00 2001 From: Nhi Pham Date: Wed, 6 Jan 2021 23:09:03 +0700 Subject: [PATCH] EmbeddedPkg/RealTimeClockRuntimeDxe: Use helper functions from TimeBaseLib This patch replaces all time checking functions and leverage the helper functions in TimeBaseLib library. Cc: Leif Lindholm Cc: Ard Biesheuvel Signed-off-by: Nhi Pham Reviewed-by: Leif Lindholm --- .../RealTimeClockRuntimeDxe/RealTimeClock.c | 88 +------------------ .../RealTimeClockRuntimeDxe.inf | 2 + 2 files changed, 4 insertions(+), 86 deletions(-) diff --git a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c index 20f1fa640e..e59036badc 100644 --- a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c +++ b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c @@ -3,6 +3,7 @@ Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Copyright (c) 2017, Linaro, Ltd. All rights reserved.
+ Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent @@ -11,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -31,92 +33,6 @@ typedef struct { STATIC CONST CHAR16 mTimeSettingsVariableName[] = L"RtcTimeSettings"; STATIC NON_VOLATILE_TIME_SETTINGS mTimeSettings; -STATIC -BOOLEAN -IsValidTimeZone ( - IN INT16 TimeZone - ) -{ - return TimeZone == EFI_UNSPECIFIED_TIMEZONE || - (TimeZone >= -1440 && TimeZone <= 1440); -} - -STATIC -BOOLEAN -IsValidDaylight ( - IN INT8 Daylight - ) -{ - return Daylight == 0 || - Daylight == EFI_TIME_ADJUST_DAYLIGHT || - Daylight == (EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT); -} - -STATIC -BOOLEAN -EFIAPI -IsLeapYear ( - IN EFI_TIME *Time - ) -{ - if (Time->Year % 4 == 0) { - if (Time->Year % 100 == 0) { - if (Time->Year % 400 == 0) { - return TRUE; - } else { - return FALSE; - } - } else { - return TRUE; - } - } else { - return FALSE; - } -} - -STATIC CONST INTN mDayOfMonth[12] = { - 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 -}; - -STATIC -BOOLEAN -EFIAPI -IsDayValid ( - IN EFI_TIME *Time - ) -{ - if (Time->Day < 1 || - Time->Day > mDayOfMonth[Time->Month - 1] || - (Time->Month == 2 && !IsLeapYear (Time) && Time->Day > 28)) { - return FALSE; - } - return TRUE; -} - -STATIC -BOOLEAN -EFIAPI -IsTimeValid( - IN EFI_TIME *Time - ) -{ - // Check the input parameters are within the range specified by UEFI - if (Time->Year < 1900 || - Time->Year > 9999 || - Time->Month < 1 || - Time->Month > 12 || - !IsDayValid (Time) || - Time->Hour > 23 || - Time->Minute > 59 || - Time->Second > 59 || - Time->Nanosecond > 999999999 || - !IsValidTimeZone (Time->TimeZone) || - !IsValidDaylight (Time->Daylight)) { - return FALSE; - } - return TRUE; -} - /** Returns the current time and date information, and the time-keeping capabilities of the hardware platform. diff --git a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf index c9cd052ade..fec53c79d3 100644 --- a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf +++ b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf @@ -3,6 +3,7 @@ # # Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
# Copyright (c) 2017, Linaro, Ltd. All rights reserved.
+# Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -28,6 +29,7 @@ [LibraryClasses] DebugLib RealTimeClockLib + TimeBaseLib UefiBootServicesTableLib UefiDriverEntryPoint UefiRuntimeLib -- 2.39.2