mirror of https://github.com/acidanthera/audk.git
98 lines
3.2 KiB
C
98 lines
3.2 KiB
C
|
/**@file
|
||
|
Copyright (c) 2007, Intel Corporation
|
||
|
|
||
|
All rights reserved. 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
|
||
|
http://opensource.org/licenses/bsd-license.php
|
||
|
|
||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||
|
|
||
|
|
||
|
**/
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
Converts binary buffer to Unicode string.
|
||
|
At a minimum, any blob of data could be represented as a hex string.
|
||
|
|
||
|
@param Str Pointer to the string.
|
||
|
@param HexStringBufferLength Length in bytes of buffer to hold the hex string.
|
||
|
Includes tailing '\0' character. If routine return
|
||
|
with EFI_SUCCESS, containing length of hex string
|
||
|
buffer. If routine return with
|
||
|
EFI_BUFFER_TOO_SMALL, containg length of hex
|
||
|
string buffer desired.
|
||
|
@param Buf Buffer to be converted from.
|
||
|
@param Len Length in bytes of the buffer to be converted.
|
||
|
|
||
|
@retval EFI_SUCCESS Routine success.
|
||
|
@retval EFI_BUFFER_TOO_SMALL The hex string buffer is too small.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
R8_BufToHexString (
|
||
|
IN OUT CHAR16 *Str,
|
||
|
IN OUT UINTN *HexStringBufferLength,
|
||
|
IN UINT8 *Buf,
|
||
|
IN UINTN Len
|
||
|
)
|
||
|
;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
Converts Unicode string to binary buffer.
|
||
|
The conversion may be partial.
|
||
|
The first character in the string that is not hex digit stops the conversion.
|
||
|
At a minimum, any blob of data could be represented as a hex string.
|
||
|
|
||
|
@param Buf Pointer to buffer that receives the data.
|
||
|
@param Len Length in bytes of the buffer to hold converted
|
||
|
data. If routine return with EFI_SUCCESS,
|
||
|
containing length of converted data. If routine
|
||
|
return with EFI_BUFFER_TOO_SMALL, containg length
|
||
|
of buffer desired.
|
||
|
@param Str String to be converted from.
|
||
|
@param ConvertedStrLen Length of the Hex String consumed.
|
||
|
|
||
|
@retval EFI_SUCCESS Routine Success.
|
||
|
@retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold converted data.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
R8_HexStringToBuf (
|
||
|
IN OUT UINT8 *Buf,
|
||
|
IN OUT UINTN *Len,
|
||
|
IN CHAR16 *Str,
|
||
|
OUT UINTN *ConvertedStrLen OPTIONAL
|
||
|
)
|
||
|
;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
Determines if a Unicode character is a hexadecimal digit.
|
||
|
The test is case insensitive.
|
||
|
|
||
|
@param Digit Pointer to byte that receives the value of the hex
|
||
|
character.
|
||
|
@param Char Unicode character to test.
|
||
|
|
||
|
@retval TRUE If the character is a hexadecimal digit.
|
||
|
@retval FALSE Otherwise.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
R8_IsHexDigit (
|
||
|
OUT UINT8 *Digit,
|
||
|
IN CHAR16 Char
|
||
|
)
|
||
|
;
|
||
|
|
||
|
|