From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x22d.google.com (mail-wr0-x22d.google.com [IPv6:2a00:1450:400c:c0c::22d]) (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 ED52221A0BAA8 for ; Wed, 10 May 2017 09:02:48 -0700 (PDT) Received: by mail-wr0-x22d.google.com with SMTP id l9so125060wre.1 for ; Wed, 10 May 2017 09:02:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=el5ZddJY3WNXwbUBqh1IoKWFKirvJ7pu1jTYQaJN3M0=; b=FELJS1T6tVxwqcEurWd4rqXD08xhwX8YAYj79ia6ON/hF5yCg7JXeG+r0qRGibvUj6 4HLHtZNgi9KRtiUTpIylJJtcY8wDYjMoVzw3wLjIxh2ae2xmwRdX3I+12y7hZevxESF7 4uTktWeqc20Zs5y0glfHpzEOkUwoksBWSvh4w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=el5ZddJY3WNXwbUBqh1IoKWFKirvJ7pu1jTYQaJN3M0=; b=azeMxwuIUI9RpRHCdfhm4f7eKuYL1fAptH3Xw7ZikeoeTV8KKeLDNiA/Wa/Lu1LW2t BENVCFbKOhF75llp9EonkEmIkHrBU1j2/6HBd/pl8YXOcPemOPnPC7MsmdhRCgJfVm16 YQPYeXvgmfN3n0iAbC2qW+/u5Bxjz/jiah1cXW632rqDgXYM+udldoSOLbhd3Q1kb0Hm Ed3s9Z3wyNFmNzDqehb9N6eJQFDb10I1utT+B03hTTSSNO7/5uCH0W0DcrBiSjQQtexh 1B95TYGTLxRUW7hmO9oLF8x56fAwDLFPlE21XWYvjsGTqwTNxpjqCecTqU2qES0j1oS8 no0g== X-Gm-Message-State: AODbwcCK69ZAE0bwUFStHUZ69NxC4QgqhFKnlgeIcZDgFrFWOzQd7VTk acCDHRB5ac8uVbwz X-Received: by 10.223.169.226 with SMTP id b89mr4324840wrd.147.1494432166901; Wed, 10 May 2017 09:02:46 -0700 (PDT) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id y63sm5606882wme.31.2017.05.10.09.02.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 May 2017 09:02:46 -0700 (PDT) Date: Wed, 10 May 2017 17:02:44 +0100 From: Leif Lindholm To: Ard Biesheuvel Cc: "edk2-devel@lists.01.org" , Laszlo Ersek Message-ID: <20170510160244.GO1657@bivouac.eciton.net> References: <20170503213812.5971-1-leif.lindholm@linaro.org> <20170503213812.5971-4-leif.lindholm@linaro.org> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) 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: Wed, 10 May 2017 16:02:49 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, May 04, 2017 at 07:10:40PM +0100, Ard Biesheuvel wrote: > 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. Yes, good call. > Other than that, this series looks fine to me > > Reviewed-by: Ard Biesheuvel Thanks! Pushed as d547b32..af5fed9 Required resulting updates for edk2-platforms/devel-OpenPlatformPkg pushed as 43540a5. / Leif > > --- > > .../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 > >