From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-x233.google.com (mail-io0-x233.google.com [IPv6:2607:f8b0:4001:c06::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4272F21A13482 for ; Thu, 4 May 2017 11:10:42 -0700 (PDT) Received: by mail-io0-x233.google.com with SMTP id f102so31773479ioi.2 for ; Thu, 04 May 2017 11:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=uSPC6BhzXgiteTFWsoNt9zjtBVdyDhwCJJ0s99tvCpc=; b=eEOZh9Noxxfx8UUwlKEWCzh/TFplEPgjGjE8dwIdKVqOoEQiVlmpoo2xN2rUB77jms FiPqb5Sy/XCraHN7UJXwR2LBWh5xRuUStLjsarKhrjVZ8sx4NjgqJte0aFceGGVs+wJQ 0/m8l2+fO1REBXHQufzl0Y++p3laUoQFUKyo8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=uSPC6BhzXgiteTFWsoNt9zjtBVdyDhwCJJ0s99tvCpc=; b=HTNSLZaqeXI2yJ9XAuLlWodGPy8HFQsZ9nqb+8qEGCCdNZJyFsp4tR31VptintuhSV Jfa0xEwpUy3PLtIgKJ95wlppnaPFPKSyPaGRS55VLa/M+jjHvE80DzzlccquSdYc/aHF ogN9JDDAD1R29xKo75D68JDYpXuaJlqIXJMsCTgmkvTea5AYOp/CPqpup0rS/u4OECUh ZWuIeH4w/oTYZX4+zTAivG+FfBThl2iwrZiImu1Y1z/Nply1Q+cA44yVdi8mtthIHl2m lbKAqqlXfFKEzf2UN8RvBduYBEvz9zLpyBPgLfH3dNsa4KcyVeD1rOdWutV8/h/spHf5 9D2g== X-Gm-Message-State: AN3rC/5KAvnMtihdzX1cd2drpypoUC1Xnm1XF+eOuyLxzZ5xYLBVw13o n1nFKkDTz3xqG56U/39LezTCE6KS2tgy X-Received: by 10.107.180.139 with SMTP id d133mr39521345iof.47.1493921441492; Thu, 04 May 2017 11:10:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.164.24 with HTTP; Thu, 4 May 2017 11:10:40 -0700 (PDT) In-Reply-To: <20170503213812.5971-4-leif.lindholm@linaro.org> References: <20170503213812.5971-1-leif.lindholm@linaro.org> <20170503213812.5971-4-leif.lindholm@linaro.org> From: Ard Biesheuvel Date: Thu, 4 May 2017 19:10:40 +0100 Message-ID: To: Leif Lindholm Cc: "edk2-devel@lists.01.org" , Laszlo Ersek Subject: Re: [PATCH 3/3] ArmPlatformPkg, ArmVirtPkg: delete redundant PL031 functions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 May 2017 18:10:42 -0000 Content-Type: text/plain; charset=UTF-8 On 3 May 2017 at 22:38, Leif Lindholm wrote: > Remove the functions now provided by EfiTimeBaseLib from > PL031RealTimeClockLib. Add EfiTimeBaseLib resolution to ArmVirtPkg > in same commit to prevent breakage. > > Cc: Laszlo Ersek > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Leif Lindholm I'd rather you'd call it something that doesn't start with 'Efi' given that we usually reserve that for protocols and other prototypes that are defined by the UEFI spec. Other than that, this series looks fine to me Reviewed-by: Ard Biesheuvel > --- > .../Include/Drivers/PL031RealTimeClock.h | 11 -- > .../PL031RealTimeClockLib/PL031RealTimeClockLib.c | 127 +-------------------- > .../PL031RealTimeClockLib.inf | 1 + > ArmVirtPkg/ArmVirt.dsc.inc | 1 + > 4 files changed, 5 insertions(+), 135 deletions(-) > > diff --git a/ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h b/ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h > index 76fbd0eb82..812cd9b397 100644 > --- a/ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h > +++ b/ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h > @@ -42,15 +42,4 @@ > > #define PL031_COUNTS_PER_SECOND 1 > > -// Define EPOCH (1970-JANUARY-01) in the Julian Date representation > -#define EPOCH_JULIAN_DATE 2440588 > - > -// Seconds per unit > -#define SEC_PER_MIN ((UINTN) 60) > -#define SEC_PER_HOUR ((UINTN) 3600) > -#define SEC_PER_DAY ((UINTN) 86400) > - > -#define SEC_PER_MONTH ((UINTN) 2,592,000) > -#define SEC_PER_YEAR ((UINTN) 31,536,000) > - > #endif > diff --git a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c > index 4aa448b528..9f115d383c 100644 > --- a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c > +++ b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c > @@ -36,6 +36,8 @@ > > #include > > +#include > + > #include > > STATIC CONST CHAR16 mTimeZoneVariableName[] = L"PL031RtcTimeZone"; > @@ -110,129 +112,6 @@ InitializePL031 ( > } > > /** > - Converts Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC) to EFI_TIME > - **/ > -VOID > -EpochToEfiTime ( > - IN UINTN EpochSeconds, > - OUT EFI_TIME *Time > - ) > -{ > - UINTN a; > - UINTN b; > - UINTN c; > - UINTN d; > - UINTN g; > - UINTN j; > - UINTN m; > - UINTN y; > - UINTN da; > - UINTN db; > - UINTN dc; > - UINTN dg; > - UINTN hh; > - UINTN mm; > - UINTN ss; > - UINTN J; > - > - J = (EpochSeconds / 86400) + 2440588; > - j = J + 32044; > - g = j / 146097; > - dg = j % 146097; > - c = (((dg / 36524) + 1) * 3) / 4; > - dc = dg - (c * 36524); > - b = dc / 1461; > - db = dc % 1461; > - a = (((db / 365) + 1) * 3) / 4; > - da = db - (a * 365); > - y = (g * 400) + (c * 100) + (b * 4) + a; > - m = (((da * 5) + 308) / 153) - 2; > - d = da - (((m + 4) * 153) / 5) + 122; > - > - Time->Year = y - 4800 + ((m + 2) / 12); > - Time->Month = ((m + 2) % 12) + 1; > - Time->Day = d + 1; > - > - ss = EpochSeconds % 60; > - a = (EpochSeconds - ss) / 60; > - mm = a % 60; > - b = (a - mm) / 60; > - hh = b % 24; > - > - Time->Hour = hh; > - Time->Minute = mm; > - Time->Second = ss; > - Time->Nanosecond = 0; > - > -} > - > -/** > - Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC) > - **/ > -UINTN > -EfiTimeToEpoch ( > - IN EFI_TIME *Time > - ) > -{ > - UINTN a; > - UINTN y; > - UINTN m; > - UINTN JulianDate; // Absolute Julian Date representation of the supplied Time > - UINTN EpochDays; // Number of days elapsed since EPOCH_JULIAN_DAY > - UINTN EpochSeconds; > - > - a = (14 - Time->Month) / 12 ; > - y = Time->Year + 4800 - a; > - m = Time->Month + (12*a) - 3; > - > - JulianDate = Time->Day + ((153*m + 2)/5) + (365*y) + (y/4) - (y/100) + (y/400) - 32045; > - > - ASSERT (JulianDate >= EPOCH_JULIAN_DATE); > - EpochDays = JulianDate - EPOCH_JULIAN_DATE; > - > - EpochSeconds = (EpochDays * SEC_PER_DAY) + ((UINTN)Time->Hour * SEC_PER_HOUR) + (Time->Minute * SEC_PER_MIN) + Time->Second; > - > - return EpochSeconds; > -} > - > -BOOLEAN > -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; > - } > -} > - > -BOOLEAN > -DayValid ( > - IN EFI_TIME *Time > - ) > -{ > - STATIC CONST INTN DayOfMonth[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; > - > - if (Time->Day < 1 || > - Time->Day > DayOfMonth[Time->Month - 1] || > - (Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28)) > - ) { > - return FALSE; > - } > - > - return TRUE; > -} > - > -/** > Returns the current time and date information, and the time-keeping capabilities > of the hardware platform. > > @@ -431,7 +310,7 @@ LibSetTime ( > (Time->Year > 9999) || > (Time->Month < 1 ) || > (Time->Month > 12 ) || > - (!DayValid (Time) ) || > + (!IsDayValid (Time) ) || > (Time->Hour > 23 ) || > (Time->Minute > 59 ) || > (Time->Second > 59 ) || > diff --git a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf > index 3a98fc757e..41a4e6d6bd 100644 > --- a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf > +++ b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf > @@ -36,6 +36,7 @@ > PcdLib > ArmPlatformSysConfigLib > DxeServicesTableLib > + EfiTimeBaseLib > UefiRuntimeLib > > [Guids] > diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc > index e74eaf16e7..bc96709d8a 100644 > --- a/ArmVirtPkg/ArmVirt.dsc.inc > +++ b/ArmVirtPkg/ArmVirt.dsc.inc > @@ -105,6 +105,7 @@ > > # ARM PL031 RTC Driver > RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf > + EfiTimeBaseLib|EmbeddedPkg/Library/EfiTimeBaseLib/EfiTimeBaseLib.inf > # ARM PL011 UART Driver > PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf > SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.inf > -- > 2.11.0 >