From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.6010.1624446347206495226 for ; Wed, 23 Jun 2021 04:05:47 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D58851063; Wed, 23 Jun 2021 04:05:46 -0700 (PDT) Received: from e120189.arm.com (unknown [10.57.78.245]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id BA9A33F719; Wed, 23 Jun 2021 04:05:45 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io, Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com Subject: [PATCH v1 04/10] DynamicTablesPkg: Add HexFromAscii() to AcpiHelperLib Date: Wed, 23 Jun 2021 12:05:18 +0100 Message-Id: <20210623110525.6171-5-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210623110525.6171-1-Pierre.Gondois@arm.com> References: <20210623110525.6171-1-Pierre.Gondois@arm.com> From: Pierre Gondois Add HexFromAscii(), converting an hexadecimal ascii char to an integer. Signed-off-by: Pierre Gondois --- .../Include/Library/AcpiHelperLib.h | 14 +++++++++ .../Library/Common/AcpiHelperLib/AcpiHelper.c | 30 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/DynamicTablesPkg/Include/Library/AcpiHelperLib.h b/DynamicTablesPkg/Include/Library/AcpiHelperLib.h index b653c3cb69ef..eec0cf75e084 100644 --- a/DynamicTablesPkg/Include/Library/AcpiHelperLib.h +++ b/DynamicTablesPkg/Include/Library/AcpiHelperLib.h @@ -33,6 +33,20 @@ AsciiFromHex ( IN UINT8 Hex ); +/** Convert an ASCII char representing an hexadecimal number + to its integer value. + + @param [in] Char Char to convert. + Must be between '0'-'9' or 'A'-'F' or 'a'-'f'. + + @return The corresponding integer (between 0-16). +**/ +UINT8 +EFIAPI +HexFromAscii ( + IN CHAR8 Char + ); + /** Check if a HID is a valid PNP ID. @param [in] Hid The Hid to validate. diff --git a/DynamicTablesPkg/Library/Common/AcpiHelperLib/AcpiHelper.c b/DynamicTablesPkg/Library/Common/AcpiHelperLib/AcpiHelper.c index 19840fb173eb..c7097c8ff432 100644 --- a/DynamicTablesPkg/Library/Common/AcpiHelperLib/AcpiHelper.c +++ b/DynamicTablesPkg/Library/Common/AcpiHelperLib/AcpiHelper.c @@ -37,6 +37,36 @@ AsciiFromHex ( return (UINT8)-1; } +/** Convert an ASCII char representing an hexadecimal number + to its integer value. + + @param [in] Char Char to convert. + Must be between '0'-'9' or 'A'-'F' or 'a'-'f'. + + @return The corresponding integer (between 0-16). +**/ +UINT8 +EFIAPI +HexFromAscii ( + IN CHAR8 Char + ) +{ + if ((Char >= '0') && (Char <= '9')) { + return (UINT8)(Char - '0'); + } + + if ((Char >= 'A') && (Char <= 'F')) { + return (UINT8)(Char - 'A' + 10); + } + + if ((Char >= 'a') && (Char <= 'f')) { + return (UINT8)(Char - 'a' + 10); + } + + ASSERT (FALSE); + return (UINT8)-1; +} + /** Check if a HID is a valid PNP ID. @param [in] Hid The Hid to validate. -- 2.17.1