summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2020-12-21 12:36:57 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-12-21 15:55:16 +0000
commitc06635ea3f4b7b52054fe5d5b5e0cda3b594d2f5 (patch)
tree6ee8cf877a521fc63a6f1a9f31aa2df1b2b6757b
parent3af6c521d9c1b195a6105169df92c0b3a8107e39 (diff)
downloadedk2-c06635ea3f4b7b52054fe5d5b5e0cda3b594d2f5.zip
edk2-c06635ea3f4b7b52054fe5d5b5e0cda3b594d2f5.tar.gz
edk2-c06635ea3f4b7b52054fe5d5b5e0cda3b594d2f5.tar.bz2
EmbeddedPkg/TimeBaseLib: remove useless truncation to 32-bit
EfiTimeToEpoch() calls EfiGetEpochDays() internally, which (reasonably) returns a UINTN. But then EfiTimeToEpoch() truncates the EfiGetEpochDays() retval to UINT32 for no good reason, effectively restricting Time->Year under 2106. This truncation was pointed out with a valid warning (= build error) by VS2019. Allow EfiTimeToEpoch() to return / propagate a UINTN value. Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20201221113657.6779-3-lersek@redhat.com> Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
-rw-r--r--EmbeddedPkg/Include/Library/TimeBaseLib.h2
-rw-r--r--EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/EmbeddedPkg/Include/Library/TimeBaseLib.h b/EmbeddedPkg/Include/Library/TimeBaseLib.h
index 3c2d366..90853c3 100644
--- a/EmbeddedPkg/Include/Library/TimeBaseLib.h
+++ b/EmbeddedPkg/Include/Library/TimeBaseLib.h
@@ -83,7 +83,7 @@ EpochToEfiTime (
/**
Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC)
**/
-UINT32
+UINTN
EFIAPI
EfiTimeToEpoch (
IN EFI_TIME *Time
diff --git a/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c b/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c
index 136ce8a..78fc7b6 100644
--- a/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c
+++ b/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c
@@ -99,14 +99,14 @@ EfiGetEpochDays (
/**
Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC)
**/
-UINT32
+UINTN
EFIAPI
EfiTimeToEpoch (
IN EFI_TIME *Time
)
{
- UINT32 EpochDays; // Number of days elapsed since EPOCH_JULIAN_DAY
- UINT32 EpochSeconds;
+ UINTN EpochDays; // Number of days elapsed since EPOCH_JULIAN_DAY
+ UINTN EpochSeconds;
EpochDays = EfiGetEpochDays (Time);