From nobody Fri Apr 19 03:34:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+69811+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+69811+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1609930595148840.1764478865691; Wed, 6 Jan 2021 02:56:35 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id BYnKYY1788612x0tvtjNFfdM; Wed, 06 Jan 2021 02:56:34 -0800 X-Received: from NAM02-BL2-obe.outbound.protection.outlook.com (NAM02-BL2-obe.outbound.protection.outlook.com []) by mx.groups.io with SMTP id smtpd.web12.6321.1609930593240877652 for ; Wed, 06 Jan 2021 02:56:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bqw59YdFnezgSbybZnfaFwwE1jmGHpUrbpssg5Ip9HSulwK2Oh9gJ3cyTnBcbk4kEg93wn78cqSS46T13vjr+mWinSw6QJfsu/88s6jbae4INwOtiLDzdxkMsjt0Bk4R5nogsMjjtQN2II5waxR945onCc0sJJdOIx0f1idzwtmLDvEJtMLjTXdl2hwBHpXfihBzLL1eaQNln884SUnsfq/iawiSyPLc+s6Fd25GlEnPC9e5huJbKlctYb+O9c/XpfqSc9mZpotLIaTsZqsNFRgF9YHsqy7keLFT5sYk1UzzsISUifvhYoYWWd2wkk37uTv+kGvhuA0JhtqSGRrdbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pn0c2H/7K5xtrc3vx1LKN8Cltrw0xDP+LVSMYKxUgDo=; b=TqaxT+XS7ytxmkOOZipv7kAopq3NIjO5UAWrBM6dwhnx6LNy1Ay5blwN3uguBA9Ijj7EYSilUkLPqgjBAGAf45TU0SsZZZk5C1Nlk7V1AuVDts0phyMKI7zCGxJpCSw2nwWO4JRwWQ7mSrYUl62ohJYuWz4w4UJA7h4kvMk9ihcLqXvphKurspB866iOXzf2YQNXe48dk+wDdGq65YyZ57FGhdlkgbQREeD3cfAvU19AUOiYxIYfh3e9jWih7qvgilXKFpIaBh0c++Zh6er5mxnzGzThipwoqz23xZ13x1K9P0uVA2W2QyL3A1sv+0lOuHJT3S4JoWv3sgcSaVDOYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) by DM6PR01MB5051.prod.exchangelabs.com (2603:10b6:5:63::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Wed, 6 Jan 2021 10:56:32 +0000 X-Received: from DM6PR01MB5849.prod.exchangelabs.com ([fe80::c814:9a08:5c2e:4076]) by DM6PR01MB5849.prod.exchangelabs.com ([fe80::c814:9a08:5c2e:4076%5]) with mapi id 15.20.3721.024; Wed, 6 Jan 2021 10:56:32 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io Cc: Nhi Pham , Leif Lindholm , Ard Biesheuvel Subject: [edk2-devel] [PATCH 1/2] EmbeddedPkg/TimeBaseLib: Add function to check Timezone and Daylight Date: Wed, 6 Jan 2021 17:55:57 +0700 Message-Id: <20210106105558.9582-2-nhi@os.amperecomputing.com> In-Reply-To: <20210106105558.9582-1-nhi@os.amperecomputing.com> References: <20210106105558.9582-1-nhi@os.amperecomputing.com> X-Originating-IP: [118.69.219.201] X-ClientProxiedBy: HK2PR06CA0008.apcprd06.prod.outlook.com (2603:1096:202:2e::20) To DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from localhost.localdomain (118.69.219.201) by HK2PR06CA0008.apcprd06.prod.outlook.com (2603:1096:202:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Wed, 6 Jan 2021 10:56:30 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 47aae53b-099e-4139-6087-08d8b231ba34 X-MS-TrafficTypeDiagnostic: DM6PR01MB5051: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 2D9/3fG2Pf4joDOiJMOlykuVWXn/PFfI5T1EH3gsee8qlafm1K1c1kN4BDX/Fq3Miee0m2pD2uxIrRCPZGkwbtD4jz+miLIEuwWWzPehp3B05q8zNit71P7qI2OoCO2oHpY5k4l/M3VbdyiuqEtQBoY8NrA+TVE2FJap+UwVULtSK1QJRaflvTOAJkQs8XOLNHDLmmyhAr9BV4vu4/N07yFi32VgzApvQRd/rIUWy1BSSntRXjccZlsxBUN4oa3rm+5tCaCgvYJF3biO7csPW3yveOpuwQCWNHvQcfB3Z7M8jqj5gwRf2oivlbsHPSQm8uXEwZ9pSVqlA/pk2DS6FpckB13AJrphjczrkLkkUDdLpzf3NYSCdf2PrFXFSjvLFUrnFt6e2Nh+VQ6SHclTtiuTS5rw9MRny4c8k9AUHBy048EMASDMRp7yZ8ZAZRNdCgzMOeD80NdYM9ZGNtjgmw== X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?ViRXSG8J1ZCQ1Uf2NijMmgzS/nXMto7JtY53s1oG3iI5scyCnKjpn1rvU+UH?= =?us-ascii?Q?BMDpUe/HLC0uyFFeFp/yE7YJGKfb2NOP6Y1JgzloRJOM4YkFn/o2YNNP64uh?= =?us-ascii?Q?fD60iXmDZbZgP7maZD1FjVBb+0zaE/tETryX7OALtfUFoWD/WPgXXs43wRVP?= =?us-ascii?Q?NBuLuydw30n2PNoY6A6ptXgry+D8yj53cheqLSII2CVUvybKFcY7u7XZ3oLj?= =?us-ascii?Q?RNWzqqiS/r/zuhNvhra0/tTqbuEF4YxTlec3qc60rdTnxuM2aa4sz+Sy299T?= =?us-ascii?Q?SDDtZw6MgaP0Pd8Q+axP1/xfvEKiJH2Bgcn+EwT+Guh5b1dIcGrkx0B9KapO?= =?us-ascii?Q?08RvalCTi0f5DMCb9PSEElDfc6Ho5y5WzNorgqogWPuwr5hc5PP+iAkKY3q+?= =?us-ascii?Q?geekdnBybkik3VaHX5cWWL0qzdZ21mYTCITC7xJ4r1TqkQhy/1d84HFtKbAf?= =?us-ascii?Q?n4DkrbdBCH+JR4PRu2jJks/0cWhNC2XPMKmK0ao/0vJ021pqesemsflarWmE?= =?us-ascii?Q?YxZX+9ds14E6RjCFb7k5yO5B9ugOckP7Ss4hGAQgnuyIVHnmEAtzeLvoTsd4?= =?us-ascii?Q?GcgTgrF5YGScObojwKz6rs+KpbN0rYTrNhDR+1OwGLQ+CYbcDo4ZHkBFNE0g?= =?us-ascii?Q?Dhcgry5Je7eqCz0lkpM5l6iPf0FIo8MpmZsFo88C3cz8vmPx3GBeWA6+VNsV?= =?us-ascii?Q?PrnboFzoU+J6yEH3BCGOQ+4bTYuMAjKJL6a/yaEB+GbWEMdF+74Ew7KkBF7t?= =?us-ascii?Q?axfe4dt3gOVLW0ehuBG2HU01TLCK5L4NCbBO3yVe9XBGFMg3XRT2APXElKlG?= =?us-ascii?Q?3RVEdH6U2FETbSlGWXaRhyU9wqNgUGSslsXs/LtpUF0SWwGpo3wmKJmGm3Dw?= =?us-ascii?Q?LgXt512b4LaXIg2npBzokxqPaRgd+FFa1SPxiisvK7LsDOJLukgMN54EUD9J?= =?us-ascii?Q?L0XaZDtj1cTKFYoISyGJtb1+aeecdZrdc4gWb5NRKgY4hyMug8C7V4e8+02E?= =?us-ascii?Q?DEQc?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthSource: DM6PR01MB5849.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2021 10:56:31.8502 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-Network-Message-Id: 47aae53b-099e-4139-6087-08d8b231ba34 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /A7r6WClK40HuOk5tuDUutZSCFR1kV25rvcq4oURJweGjm3j9xAhSeGYh/vXCun9TqegDFboIllTmR6R68+Kw6dVJ5MWAXioCGJ707vXmyw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR01MB5051 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: H5lijHxaP5w3rmvyPwDAg4Njx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1609930594; bh=zNXFfGJkVPN6cpYv7jmCUOMWt44P6p8w5jk71ZAMgqI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Goxp04sxexGbqGe0PYwySc20QYgD5Nrgw7veT0sguDu9RJszKMav9idVlxvJCPsZm91 FpfiDSRkVYFdpSF4W0Bvgfy8efKsKI+cKvalot5LFZi+aa/ipuUwSsaTXUHlrGGdSyutj KUY68+uc0U6QAUmXX0AjzJRG4xZ3OK8kLTo= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This adds two functions IsValidTimeZone() and IsValidDaylight() to check the time zone and daylight value from EFI time. These functions are retrieved from the RealTimeClockRuntimeDxe module as they reduce duplicated code in RTC modules. Cc: Leif Lindholm Cc: Ard Biesheuvel Signed-off-by: Nhi Pham --- EmbeddedPkg/Include/Library/TimeBaseLib.h | 13 ++++++ EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c | 47 ++++++++++++++------ 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/EmbeddedPkg/Include/Library/TimeBaseLib.h b/EmbeddedPkg/Includ= e/Library/TimeBaseLib.h index 90853c3f4b93..8bebf5886db8 100644 --- a/EmbeddedPkg/Include/Library/TimeBaseLib.h +++ b/EmbeddedPkg/Include/Library/TimeBaseLib.h @@ -2,6 +2,7 @@ * * Copyright (c) 2016, Hisilicon Limited. All rights reserved. * Copyright (c) 2016-2019, Linaro Limited. All rights reserved. +* Copyright (c) 2020, Ampere Computing LLC. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -64,6 +65,18 @@ IsDayValid ( IN EFI_TIME *Time ); =20 +BOOLEAN +EFIAPI +IsValidTimeZone ( + IN INT16 TimeZone + ); + +BOOLEAN +EFIAPI +IsValidDaylight ( + IN INT8 Daylight + ); + BOOLEAN EFIAPI IsTimeValid ( diff --git a/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c b/EmbeddedPkg/Li= brary/TimeBaseLib/TimeBaseLib.c index 78fc7b6cd2e5..02d9901338b9 100644 --- a/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c +++ b/EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.c @@ -2,6 +2,7 @@ * * Copyright (c) 2016, Hisilicon Limited. All rights reserved. * Copyright (c) 2016-2019, Linaro Limited. All rights reserved. +* Copyright (c) 2020, Ampere Computing LLC. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -173,23 +174,43 @@ IsDayValid ( =20 BOOLEAN EFIAPI -IsTimeValid( +IsValidTimeZone ( + IN INT16 TimeZone + ) +{ + return TimeZone =3D=3D EFI_UNSPECIFIED_TIMEZONE || + (TimeZone >=3D -1440 && TimeZone <=3D 1440); +} + +BOOLEAN +EFIAPI +IsValidDaylight ( + IN INT8 Daylight + ) +{ + return Daylight =3D=3D 0 || + Daylight =3D=3D EFI_TIME_ADJUST_DAYLIGHT || + Daylight =3D=3D (EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT); +} + +BOOLEAN +EFIAPI +IsTimeValid ( IN EFI_TIME *Time ) { // Check the input parameters are within the range specified by UEFI - if ((Time->Year < 2000) || - (Time->Year > 2099) || - (Time->Month < 1 ) || - (Time->Month > 12 ) || - (!IsDayValid (Time) ) || - (Time->Hour > 23 ) || - (Time->Minute > 59 ) || - (Time->Second > 59 ) || - (Time->Nanosecond > 999999999) || - (!((Time->TimeZone =3D=3D EFI_UNSPECIFIED_TIMEZONE) || ((Time->TimeZo= ne >=3D -1440) && (Time->TimeZone <=3D 1440)))) || - (Time->Daylight & (~(EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT)= )) - ) { + if ((Time->Year < 2000) || + (Time->Year > 2099) || + (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; } =20 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#69811): https://edk2.groups.io/g/devel/message/69811 Mute This Topic: https://groups.io/mt/79472334/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 03:34:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+69812+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+69812+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1609930600279238.40613986734434; Wed, 6 Jan 2021 02:56:40 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id O1dEYY1788612x5K4x0rThPu; Wed, 06 Jan 2021 02:56:39 -0800 X-Received: from NAM02-BL2-obe.outbound.protection.outlook.com (NAM02-BL2-obe.outbound.protection.outlook.com []) by mx.groups.io with SMTP id smtpd.web12.6321.1609930593240877652 for ; Wed, 06 Jan 2021 02:56:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AI6zOtIdCaQvENe2kitxaW4/uXzjn1coOR9N5eNhmgnkTUEWEIkI9vvvQpG7r8Nr3G6r/vYOBM+/d7wTyJvV1Pjmr/0fq1FstCB9uABI/GCV/bUZvwl66+fLP0WELhnCADCBSFM6DISJt0df3cbaaWI9hNm8FynKjexK3bnXWFMQ3o11KHQjdSc7/ng6JGRtG9hDo/Xhg0fpiv7FT1HaH9eoaWX4MS/sRte6b4ul1/KqcQe6mPbbhj+Cwj1FtkIDU8oSOCOyomFmP2ir5rsnwDX1b7X/Uc1Og8MwhwDdfFYQJG6j85L6g6tqBhOuLwJTRc1e/QKC35EIhyH4fnecFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B71xAlQxz0pX24U7NxDzF1YyajO+rbQbSnfX/vwzKwY=; b=N9dKQaL0IfTwIC4EjofufoZJFty22eTxosdnDBrH7ArOD2yAMGWCVw+Mcr/YInGj7eyH/ieevjsQgvN8st7JjK1wjERNzMGqDrL6j9zK0wSQCrNu+wY+Qs5zfOHwht0OYpvOdOf3xDaiLP9yq4EnGFFqlEU8GnYqT2Vn9oOfenhSXb4UAkHbybIqPqlkUgGbpVu0ftxj4Og+Rkc/BM7DFnKpy5YF7H2GqqaBXJrCIAWZFbOvC+K5huPDB+3DTl9MqPVeP4fKd4orGytkSUBwKD/qKqeG6reACuSRd55M4jFJPWjaGMeUlmUFYGLwrzdNam3lp420ooUn4ce1Ac8Eew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) by DM6PR01MB5051.prod.exchangelabs.com (2603:10b6:5:63::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Wed, 6 Jan 2021 10:56:33 +0000 X-Received: from DM6PR01MB5849.prod.exchangelabs.com ([fe80::c814:9a08:5c2e:4076]) by DM6PR01MB5849.prod.exchangelabs.com ([fe80::c814:9a08:5c2e:4076%5]) with mapi id 15.20.3721.024; Wed, 6 Jan 2021 10:56:33 +0000 From: "Nhi Pham via groups.io" To: devel@edk2.groups.io Cc: Nhi Pham , Leif Lindholm , Ard Biesheuvel Subject: [edk2-devel] [PATCH 2/2] EmbeddedPkg/RealTimeClockRuntimeDxe: Use helper functions from TimeBaseLib Date: Wed, 6 Jan 2021 17:55:58 +0700 Message-Id: <20210106105558.9582-3-nhi@os.amperecomputing.com> In-Reply-To: <20210106105558.9582-1-nhi@os.amperecomputing.com> References: <20210106105558.9582-1-nhi@os.amperecomputing.com> X-Originating-IP: [118.69.219.201] X-ClientProxiedBy: HK2PR06CA0008.apcprd06.prod.outlook.com (2603:1096:202:2e::20) To DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from localhost.localdomain (118.69.219.201) by HK2PR06CA0008.apcprd06.prod.outlook.com (2603:1096:202:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Wed, 6 Jan 2021 10:56:32 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e476e95c-a658-41f7-dd8a-08d8b231bb2d X-MS-TrafficTypeDiagnostic: DM6PR01MB5051: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: EMJqgDGFdivnarlJEujubJC3Ydqkiw/UQAFfZfsRoaw90YJmaXC/qEruKFNYmsSwxUNu0ViUaZUZ/AWUYbjjpq5qXfG4EJu+CIYQE3cTSCIVSKQ1DnbNQfUjmOMfVQkwSw9WfpaByObZ+I9xeOH/fWQzrGeb+q3WpWpbsKrGYTVP2Ioq/5jPMyIY7kLJfbXdoj4fTbHCMjVZuvG2DKk29bWUO0iPpVDVCZcXuqr3hGU7DnFjcgCsPIaQBhXDFeve6Gv9ShhjTJRjRJNRRKRALOkZFqKsd1PaFX3HoZ25NAE4HmOKC9EhFdwbZ5N+RSFTX2wRB9ul1qGPnogUE97Bf+Futa1447xB4DcysFTavE+c9EejBhlMJZm7S/+3TpcLPPdvBfdNXYFV7N+hLb0o/ktTrN9UVbAF+RvXw8K9pprmUw54R6VbbohMVx+wEScjFmmzIv9n3RE9WwiyN6QX3V0Hs+/Z78gqxGP3TRDS0GQ= X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?ao+rItWGxouGfjNsToLBaeMXpYLKclBWkFRVt1pyTUqBmOzAUcGIqPT5pGFU?= =?us-ascii?Q?WXgUIPmY2oH8uP/wQE/Kp1ksRCCnnRlNtA5FaVfrN2qMcmBqaIWnze4IYhtx?= =?us-ascii?Q?W6c4t4vPH1Zo2WidI4T8BtHpf/0hLhlnXQCHzfXuPNNJ6yvgQQD52Jh+uf82?= =?us-ascii?Q?vw8exSwmv26kyas7nISsWE+hrXIgw8MT4na038U6+7UOPCAJmfDY7kF6sjHC?= =?us-ascii?Q?R2ehT12qgeuDXsKRv3c0ymxHlfVJiK2ndt9FnoJtpzlVKBAWG9oQmHHPy2Ae?= =?us-ascii?Q?Qv81i8/2nPudpsexNY6cschIT7AUTDTcHFtkxW+J8aWaRiBhfAqe4HIxiPkH?= =?us-ascii?Q?MAmzuPxdSB29vleRONR9GNTu53C1Mp2lJwzoDpMXi5XbrVQPyG7h5lmpUqKS?= =?us-ascii?Q?9p6GeWcMwp1HlJ6HkGKcFELgS8EWO8SWik4If6mSjdB+BbrJ4prPcQfbu5qh?= =?us-ascii?Q?ud5z+5rGAllw+XESBDc1x4cP/faaopK/J0G5KYaVWolVI1hmmZAmma7n/GAo?= =?us-ascii?Q?9JP2R+VIN85oksCb8IL0x30ZL0f5py2HACJXsOf2nSRFTjlp+fpk8Zyv63w+?= =?us-ascii?Q?xEtHWqNY88gRXQlvdiwZY9HeSISiciXeCRcZGHRhVyPnxntDB+Wq0MMf1IUz?= =?us-ascii?Q?74wSFqSUd6CGF/k9QFY6HSiyGGaLUBjPN0OZ/Uv7wYSufKigTeKRHYHIOMAM?= =?us-ascii?Q?UgEf39OPkWu70hVLBV9bPEBWR4DLTOVZRNkpKDBbt/ZLFTj5hd3nPQgOFEKN?= =?us-ascii?Q?jhf+kT1jd99RgjWQw+M0Z5pCUOHUyDhcaM3xII63rMQAAEMNkVF2OfKYqcDE?= =?us-ascii?Q?5q99/AItKfsDs9vFrlJiXdwdT/U3rmnLQsFH6LVVM+jTuBPnuYHwVd2C0Hd3?= =?us-ascii?Q?bXvl5YUEsdPYYQO841NozpsIU1utyoHrSTpO3spfTBP8YMu16dROoU8pmk4w?= =?us-ascii?Q?/khm6x+Kzrjq44NA/qXBIndeEB6csOgjf1GXF2zB7QR0DPIY0NTzX+O5rMUp?= =?us-ascii?Q?r8Dz?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthSource: DM6PR01MB5849.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2021 10:56:33.5702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-Network-Message-Id: e476e95c-a658-41f7-dd8a-08d8b231bb2d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PRjCHFpXuWBTj31cBM6iAiwZURrralmGCVBqYMY3Kj40ZQSA6S5vs2U7QjFk7RBUJ+KRq1cpo7Ad3BS2TCi9HEoNQU8PVyoT+JKAQzrc2zI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR01MB5051 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com X-Gm-Message-State: d2ssbiOrkKEipsqn5P84Dokvx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1609930599; bh=VNvs9t7CxPWg382NijxUipIIizoW++PVowT+HcmzMJ0=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=wbc8+4yAu20EKe6/apCGP31+nd4ea0hBih0FBOJ+fASWeoFrsy/dEdLdeqN9H3dvm+j RVsAXGRBT1IoYzBg3htS9DJPpebo4U6lJPOC2YevyLrQxFYGZQkiH72np1wMC87oQW1Cv c8RMKo8cIO2pwomkBfPl8KhPf5deQmnXvZs= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 --- EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf | 2 + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c | 88 +----= --------------- 2 files changed, 4 insertions(+), 86 deletions(-) diff --git a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.in= f b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf index c9cd052adef4..c0e44033af3a 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) 2020, Ampere Computing LLC. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -31,6 +32,7 @@ [LibraryClasses] UefiBootServicesTableLib UefiDriverEntryPoint UefiRuntimeLib + TimeBaseLib =20 [Protocols] gEfiRealTimeClockArchProtocolGuid diff --git a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c b/Embedded= Pkg/RealTimeClockRuntimeDxe/RealTimeClock.c index 20f1fa640ecc..8ae4e9315be5 100644 --- a/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c +++ b/EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClock.c @@ -3,6 +3,7 @@ =20 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Copyright (c) 2017, Linaro, Ltd. All rights reserved.
+ Copyright (c) 2020, Ampere Computing LLC. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -14,6 +15,7 @@ #include #include #include +#include #include =20 EFI_HANDLE mHandle =3D NULL; @@ -31,92 +33,6 @@ typedef struct { STATIC CONST CHAR16 mTimeSettingsVariableName[] =3D L"RtcTimeSettings"; STATIC NON_VOLATILE_TIME_SETTINGS mTimeSettings; =20 -STATIC -BOOLEAN -IsValidTimeZone ( - IN INT16 TimeZone - ) -{ - return TimeZone =3D=3D EFI_UNSPECIFIED_TIMEZONE || - (TimeZone >=3D -1440 && TimeZone <=3D 1440); -} - -STATIC -BOOLEAN -IsValidDaylight ( - IN INT8 Daylight - ) -{ - return Daylight =3D=3D 0 || - Daylight =3D=3D EFI_TIME_ADJUST_DAYLIGHT || - Daylight =3D=3D (EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT); -} - -STATIC -BOOLEAN -EFIAPI -IsLeapYear ( - IN EFI_TIME *Time - ) -{ - if (Time->Year % 4 =3D=3D 0) { - if (Time->Year % 100 =3D=3D 0) { - if (Time->Year % 400 =3D=3D 0) { - return TRUE; - } else { - return FALSE; - } - } else { - return TRUE; - } - } else { - return FALSE; - } -} - -STATIC CONST INTN mDayOfMonth[12] =3D { - 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 =3D=3D 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 capa= bilities of the hardware platform. --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#69812): https://edk2.groups.io/g/devel/message/69812 Mute This Topic: https://groups.io/mt/79472335/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-