| /** @file | |
| <Todo: Add file description> | |
| Copyright (c) 2007 - 2008, Intel Corporation. <BR> | |
| 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 | |
| ) | |
| ; | |