From: Ruiyu Ni <ruiyu.ni@intel.com>
To: edk2-devel@lists.01.org
Cc: Jiewen Yao <jiewen.yao@intel.com>
Subject: [PATCH 07/11] MdeModulePkg/CapsuleApp: Use StrToGuid in BaseLib
Date: Wed, 22 Feb 2017 12:50:43 +0800 [thread overview]
Message-ID: <20170222045047.558308-8-ruiyu.ni@intel.com> (raw)
In-Reply-To: <20170222045047.558308-1-ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
---
MdeModulePkg/Application/CapsuleApp/AppSupport.c | 140 +----------------------
MdeModulePkg/Application/CapsuleApp/CapsuleApp.c | 25 +---
2 files changed, 4 insertions(+), 161 deletions(-)
diff --git a/MdeModulePkg/Application/CapsuleApp/AppSupport.c b/MdeModulePkg/Application/CapsuleApp/AppSupport.c
index edc5f29..e39ab20 100644
--- a/MdeModulePkg/Application/CapsuleApp/AppSupport.c
+++ b/MdeModulePkg/Application/CapsuleApp/AppSupport.c
@@ -1,7 +1,7 @@
/** @file
A shell application that triggers capsule update process.
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -64,144 +64,6 @@ GetArg (
}
/**
- Converts a list of string to a specified buffer.
-
- @param[out] Buf The output buffer that contains the string.
- @param[in] BufferLength The length of the buffer
- @param[in] Str The input string that contains the hex number
-
- @retval EFI_SUCCESS The string was successfully converted to the buffer.
-
-**/
-EFI_STATUS
-InternalStrToBuf (
- OUT UINT8 *Buf,
- IN UINTN BufferLength,
- IN CHAR16 *Str
- )
-{
- UINTN Index;
- UINTN StrLength;
- UINT8 Digit;
- UINT8 Byte;
-
- Digit = 0;
-
- //
- // Two hex char make up one byte
- //
- StrLength = BufferLength * sizeof (CHAR16);
-
- for(Index = 0; Index < StrLength; Index++, Str++) {
-
- if ((*Str >= L'a') && (*Str <= L'f')) {
- Digit = (UINT8) (*Str - L'a' + 0x0A);
- } else if ((*Str >= L'A') && (*Str <= L'F')) {
- Digit = (UINT8) (*Str - L'A' + 0x0A);
- } else if ((*Str >= L'0') && (*Str <= L'9')) {
- Digit = (UINT8) (*Str - L'0');
- } else {
- return EFI_INVALID_PARAMETER;
- }
-
- //
- // For odd characters, write the upper nibble for each buffer byte,
- // and for even characters, the lower nibble.
- //
- if ((Index & 1) == 0) {
- Byte = (UINT8) (Digit << 4);
- } else {
- Byte = Buf[Index / 2];
- Byte &= 0xF0;
- Byte = (UINT8) (Byte | Digit);
- }
-
- Buf[Index / 2] = Byte;
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Converts a string to GUID value.
- Guid Format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- @param[in] Str The registry format GUID string that contains the GUID value.
- @param[out] Guid A pointer to the converted GUID value.
-
- @retval EFI_SUCCESS The GUID string was successfully converted to the GUID value.
- @retval EFI_UNSUPPORTED The input string is not in registry format.
- @return others Some error occurred when converting part of GUID value.
-
-**/
-EFI_STATUS
-InternalStrToGuid (
- IN CHAR16 *Str,
- OUT EFI_GUID *Guid
- )
-{
- //
- // Get the first UINT32 data
- //
- Guid->Data1 = (UINT32) StrHexToUint64 (Str);
- while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) {
- Str ++;
- }
-
- if (IS_HYPHEN (*Str)) {
- Str++;
- } else {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Get the second UINT16 data
- //
- Guid->Data2 = (UINT16) StrHexToUint64 (Str);
- while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) {
- Str ++;
- }
-
- if (IS_HYPHEN (*Str)) {
- Str++;
- } else {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Get the third UINT16 data
- //
- Guid->Data3 = (UINT16) StrHexToUint64 (Str);
- while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) {
- Str ++;
- }
-
- if (IS_HYPHEN (*Str)) {
- Str++;
- } else {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Get the following 8 bytes data
- //
- InternalStrToBuf (&Guid->Data4[0], 2, Str);
- //
- // Skip 2 byte hex chars
- //
- Str += 2 * 2;
-
- if (IS_HYPHEN (*Str)) {
- Str++;
- } else {
- return EFI_UNSUPPORTED;
- }
- InternalStrToBuf (&Guid->Data4[2], 6, Str);
-
- return EFI_SUCCESS;
-}
-
-/**
Return File System Volume containing this shell application.
@return File System Volume containing this shell application.
diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
index 5b8c147..eea40b7 100644
--- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
+++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
@@ -1,7 +1,7 @@
/** @file
A shell application that triggers capsule update process.
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -143,24 +143,6 @@ WriteFileFromBuffer (
);
/**
- Converts a string to GUID value.
- Guid Format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- @param[in] Str The registry format GUID string that contains the GUID value.
- @param[out] Guid A pointer to the converted GUID value.
-
- @retval EFI_SUCCESS The GUID string was successfully converted to the GUID value.
- @retval EFI_UNSUPPORTED The input string is not in registry format.
- @return others Some error occurred when converting part of GUID value.
-
-**/
-EFI_STATUS
-InternalStrToGuid (
- IN CHAR16 *Str,
- OUT EFI_GUID *Guid
- );
-
-/**
This function parse application ARG.
@@ -782,10 +764,9 @@ UefiMain (
//
// FMP->GetImage()
//
- Status = InternalStrToGuid(Argv[3], &ImageTypeId);
- if (EFI_ERROR(Status)) {
+ if (RETURN_ERROR (StrToGuid (Argv[3], &ImageTypeId)) || (Argv[3][GUID_STRING_LENGTH] != L'\0')) {
Print (L"Invalid ImageTypeId - %s\n", Argv[3]);
- return Status;
+ return EFI_INVALID_PARAMETER;
}
ImageIndex = StrDecimalToUintn(Argv[4]);
if (StrCmp(Argv[5], L"-O") == 0) {
--
2.9.0.windows.1
next prev parent reply other threads:[~2017-02-22 4:50 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-22 4:50 [PATCH 00/11] Add StrToGuid/HexToBytes/Ipv4/Ipv6 in BaseLib Ruiyu Ni
2017-02-22 4:50 ` [PATCH 01/11] MdePkg: Define IPv4_ADDRESS and IPv6_ADDRESS in Base.h Ruiyu Ni
2017-02-22 4:50 ` [PATCH 02/11] MdePkg/UefiDevicePathLib: Rename StrToGuid to avoid link failure Ruiyu Ni
2017-02-22 4:50 ` [PATCH 03/11] SignedCapsulePkg/IniParsing: " Ruiyu Ni
2017-02-22 4:50 ` [PATCH 04/11] MdePkg/BaseLib: Add StrToGuid/StrHexToBytes/StrToIpv[4/6]Address Ruiyu Ni
2017-02-22 6:02 ` Yao, Jiewen
2017-02-22 7:58 ` Ni, Ruiyu
2017-02-22 8:14 ` Yao, Jiewen
2017-02-22 4:50 ` [PATCH 05/11] MdePkg/BaseLib: Add AsciiStrToGuid/HexToBytes/ToIpv[4/6]Address Ruiyu Ni
2017-02-22 4:50 ` [PATCH 06/11] MdePkg/UefiDevicePathLib: Use BaseLib string conversion services Ruiyu Ni
2017-02-22 4:50 ` Ruiyu Ni [this message]
2017-02-22 4:50 ` [PATCH 08/11] SecurityPkg/SecureBootConfigDxe: Use StrToGuid in BaseLib Ruiyu Ni
2017-02-22 4:50 ` [PATCH 09/11] ShellPkg/Debug1CommandLib: Use StrToGuid/StrHexToBytes " Ruiyu Ni
2017-02-22 4:50 ` [PATCH 10/11] SignedCapsulePkg/IniParsingLib: Use AsciiStrToGuid " Ruiyu Ni
2017-02-22 5:28 ` Yao, Jiewen
2017-02-22 7:40 ` Ni, Ruiyu
2017-02-22 4:50 ` [PATCH 11/11] MdeModulePkg/NetLib: Use StrToIpv4/6Address " Ruiyu Ni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170222045047.558308-8-ruiyu.ni@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox