From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4864:20::342; helo=mail-wm1-x342.google.com; envelope-from=leif.lindholm@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) (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 39CCC2119FF56 for ; Thu, 13 Dec 2018 02:49:05 -0800 (PST) Received: by mail-wm1-x342.google.com with SMTP id f81so1855838wmd.4 for ; Thu, 13 Dec 2018 02:49:04 -0800 (PST) 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=4TW6ALEf/666NUIGF39XuD93myxrUy/+ONlozsCJ3Wo=; b=dLW9KnkejjEsEc+ivXglae0f9iMWk6+m6txA0SQ7FDVXzl/kgTyuF1NuT4246qjBKn +1t/CyM6N+GJi1EjuhLbmZSaVUoU2lyp1xSgwDD4wT3Qohsp1uo6/98blwQ9m3Lk8JcD SjFaDxE9mG0ZW7c5w2nx+Acf+X/krv3qDZrfE= 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=4TW6ALEf/666NUIGF39XuD93myxrUy/+ONlozsCJ3Wo=; b=bbYQgaKsYKfIM/QCKn6ES4YIswNdGnCmR/w4STIVve1bxYd51Rz3Xx4b+NGeLl9iT2 T3vJI5UIAjnDRhRh9IuI0e8v6fSyu0nGTe4luGRozo5aBkWwOBgEHhhsDn/I3brTzLKo fBsSPB7cSsM+WZdLoCpuYaF3cRIZC4BLGPtskuEBXwjIUrz7K5gGuPW6TP3rpkuxm3bc FKaRcPMZ9RY9DMlbijgm5vyMlKyZakFGGkxbmLg5A4/1uIpP8B5xyuNEqA6Ya0AgT8CF eHBXleJvUkcG++VlBnnFdalm5R6LnLQKA/EoMFKjbzRHagSurKe1HR7/V2jVNbs1Econ rSqQ== X-Gm-Message-State: AA+aEWYaLnP6IZ8FDcul/4fCUw0cqc35Zgm3g55EP6Gg0AoE14EtmSOC Rw7X2FDY7RSxdeye6b07uowl3g== X-Google-Smtp-Source: AFSGD/VormvA6Aq4GTMzoW9YRi3mdbsYy7zxgQCMaIfLTaLkIkEvm0OYAEfSHeSv+i5N1aJVlvCESg== X-Received: by 2002:a1c:2007:: with SMTP id g7mr9466813wmg.79.1544698143307; Thu, 13 Dec 2018 02:49:03 -0800 (PST) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id h13sm1025139wrp.61.2018.12.13.02.49.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 13 Dec 2018 02:49:02 -0800 (PST) Date: Thu, 13 Dec 2018 10:49:00 +0000 From: Leif Lindholm To: Shenglei Zhang Cc: edk2-devel@lists.01.org, Michael D Kinney , Liming Gao Message-ID: <20181213104900.7tor5lhnwlwpepup@bivouac.eciton.net> References: <20181213083439.28716-1-shenglei.zhang@intel.com> <20181213083439.28716-2-shenglei.zhang@intel.com> MIME-Version: 1.0 In-Reply-To: <20181213083439.28716-2-shenglei.zhang@intel.com> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [PATCH 1/2] MdePkg/BaseLib: Add two public functions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 X-List-Received-Date: Thu, 13 Dec 2018 10:49:05 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Zhenglei, Please change the title to MdePkg/BaseLib: add common versions of CharToUpper and AsciiToUpper and split the change/deletion in String/SafeString/BaseLibInternals into a separate patch, following after this one. Other than that, glad to see this consolidation. Regards, Leif On Thu, Dec 13, 2018 at 04:34:38PM +0800, Shenglei Zhang wrote: > Add two public functions, CharToUpper and AsciiToUpper. > InternalCharToUpper and InternalBaseLibAsciiToUpper have the same > functions as CharToUpper and AsciiToUpper, but they are internal ones. > So the internal ones are removed and replace them with public ones > in other places. > https://bugzilla.tianocore.org/show_bug.cgi?id=1369 > > Cc: Michael D Kinney > Cc: Liming Gao > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Shenglei Zhang > --- > MdePkg/Include/Library/BaseLib.h | 40 +++++++++++++++++++++ > MdePkg/Library/BaseLib/BaseLibInternals.h | 42 ----------------------- > MdePkg/Library/BaseLib/SafeString.c | 8 ++--- > MdePkg/Library/BaseLib/String.c | 35 ++++--------------- > 4 files changed, 51 insertions(+), 74 deletions(-) > > diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h > index 8cc086983d..b861d82287 100644 > --- a/MdePkg/Include/Library/BaseLib.h > +++ b/MdePkg/Include/Library/BaseLib.h > @@ -2720,6 +2720,46 @@ AsciiStrnToUnicodeStrS ( > OUT UINTN *DestinationLength > ); > > +/** > + Convert a Unicode character to upper case only if > + it maps to a valid small-case ASCII character. > + > + This internal function only deal with Unicode character > + which maps to a valid small-case ASCII character, i.e. > + L'a' to L'z'. For other Unicode character, the input character > + is returned directly. > + > + @param Char The character to convert. > + > + @retval LowerCharacter If the Char is with range L'a' to L'z'. > + @retval Unchanged Otherwise. > + > +**/ > +CHAR16 > +EFIAPI > +CharToUpper ( > + IN CHAR16 Char > + ); > + > +/** > + Converts a lowercase Ascii character to upper one. > + > + If Chr is lowercase Ascii character, then converts it to upper one. > + > + If Value >= 0xA0, then ASSERT(). > + If (Value & 0x0F) >= 0x0A, then ASSERT(). > + > + @param Chr one Ascii character > + > + @return The uppercase value of Ascii character > + > +**/ > +CHAR8 > +EFIAPI > +AsciiToUpper ( > + IN CHAR8 Chr > + ); > + > /** > Converts an 8-bit value to an 8-bit BCD value. > > diff --git a/MdePkg/Library/BaseLib/BaseLibInternals.h b/MdePkg/Library/BaseLib/BaseLibInternals.h > index 8855231c1a..9db925b157 100644 > --- a/MdePkg/Library/BaseLib/BaseLibInternals.h > +++ b/MdePkg/Library/BaseLib/BaseLibInternals.h > @@ -469,28 +469,6 @@ InternalIsDecimalDigitCharacter ( > ); > > > -/** > - Convert a Unicode character to upper case only if > - it maps to a valid small-case ASCII character. > - > - This internal function only deal with Unicode character > - which maps to a valid small-case ASCII character, i.e. > - L'a' to L'z'. For other Unicode character, the input character > - is returned directly. > - > - @param Char The character to convert. > - > - @retval LowerCharacter If the Char is with range L'a' to L'z'. > - @retval Unchanged Otherwise. > - > -**/ > -CHAR16 > -EFIAPI > -InternalCharToUpper ( > - IN CHAR16 Char > - ); > - > - > /** > Convert a Unicode character to numerical value. > > @@ -552,26 +530,6 @@ InternalAsciiIsDecimalDigitCharacter ( > ); > > > -/** > - Converts a lowercase Ascii character to upper one. > - > - If Chr is lowercase Ascii character, then converts it to upper one. > - > - If Value >= 0xA0, then ASSERT(). > - If (Value & 0x0F) >= 0x0A, then ASSERT(). > - > - @param Chr one Ascii character > - > - @return The uppercase value of Ascii character > - > -**/ > -CHAR8 > -EFIAPI > -InternalBaseLibAsciiToUpper ( > - IN CHAR8 Chr > - ); > - > - > /** > Check if a ASCII character is a hexadecimal character. > > diff --git a/MdePkg/Library/BaseLib/SafeString.c b/MdePkg/Library/BaseLib/SafeString.c > index 417497cbc9..17f88b46d8 100644 > --- a/MdePkg/Library/BaseLib/SafeString.c > +++ b/MdePkg/Library/BaseLib/SafeString.c > @@ -905,7 +905,7 @@ StrHexToUintnS ( > String++; > } > > - if (InternalCharToUpper (*String) == L'X') { > + if (CharToUpper (*String) == L'X') { > if (*(String - 1) != L'0') { > *Data = 0; > return RETURN_SUCCESS; > @@ -1036,7 +1036,7 @@ StrHexToUint64S ( > String++; > } > > - if (InternalCharToUpper (*String) == L'X') { > + if (CharToUpper (*String) == L'X') { > if (*(String - 1) != L'0') { > *Data = 0; > return RETURN_SUCCESS; > @@ -2459,7 +2459,7 @@ AsciiStrHexToUintnS ( > String++; > } > > - if (InternalBaseLibAsciiToUpper (*String) == 'X') { > + if (AsciiToUpper (*String) == 'X') { > if (*(String - 1) != '0') { > *Data = 0; > return RETURN_SUCCESS; > @@ -2586,7 +2586,7 @@ AsciiStrHexToUint64S ( > String++; > } > > - if (InternalBaseLibAsciiToUpper (*String) == 'X') { > + if (AsciiToUpper (*String) == 'X') { > if (*(String - 1) != '0') { > *Data = 0; > return RETURN_SUCCESS; > diff --git a/MdePkg/Library/BaseLib/String.c b/MdePkg/Library/BaseLib/String.c > index e6df12797d..ced1b3f975 100644 > --- a/MdePkg/Library/BaseLib/String.c > +++ b/MdePkg/Library/BaseLib/String.c > @@ -552,7 +552,7 @@ InternalIsDecimalDigitCharacter ( > **/ > CHAR16 > EFIAPI > -InternalCharToUpper ( > +CharToUpper ( > IN CHAR16 Char > ) > { > @@ -586,7 +586,7 @@ InternalHexCharToUintn ( > return Char - L'0'; > } > > - return (10 + InternalCharToUpper (Char) - L'A'); > + return (10 + CharToUpper (Char) - L'A'); > } > > /** > @@ -1166,27 +1166,6 @@ AsciiStrCmp ( > return *FirstString - *SecondString; > } > > -/** > - Converts a lowercase Ascii character to upper one. > - > - If Chr is lowercase Ascii character, then converts it to upper one. > - > - If Value >= 0xA0, then ASSERT(). > - If (Value & 0x0F) >= 0x0A, then ASSERT(). > - > - @param Chr one Ascii character > - > - @return The uppercase value of Ascii character > - > -**/ > -CHAR8 > -EFIAPI > -InternalBaseLibAsciiToUpper ( > - IN CHAR8 Chr > - ) > -{ > - return (UINT8) ((Chr >= 'a' && Chr <= 'z') ? Chr - ('a' - 'A') : Chr); > -} > > /** > Convert a ASCII character to numerical value. > @@ -1211,7 +1190,7 @@ InternalAsciiHexCharToUintn ( > return Char - '0'; > } > > - return (10 + InternalBaseLibAsciiToUpper (Char) - 'A'); > + return (10 + AsciiToUpper (Char) - 'A'); > } > > > @@ -1260,13 +1239,13 @@ AsciiStriCmp ( > ASSERT (AsciiStrSize (FirstString)); > ASSERT (AsciiStrSize (SecondString)); > > - UpperFirstString = InternalBaseLibAsciiToUpper (*FirstString); > - UpperSecondString = InternalBaseLibAsciiToUpper (*SecondString); > + UpperFirstString = AsciiToUpper (*FirstString); > + UpperSecondString = AsciiToUpper (*SecondString); > while ((*FirstString != '\0') && (*SecondString != '\0') && (UpperFirstString == UpperSecondString)) { > FirstString++; > SecondString++; > - UpperFirstString = InternalBaseLibAsciiToUpper (*FirstString); > - UpperSecondString = InternalBaseLibAsciiToUpper (*SecondString); > + UpperFirstString = AsciiToUpper (*FirstString); > + UpperSecondString = AsciiToUpper (*SecondString); > } > > return UpperFirstString - UpperSecondString; > -- > 2.18.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel