| /** @file | |
| Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef ACPI_HELPER_LIB_H_ | |
| #define ACPI_HELPER_LIB_H_ | |
| /** Is a character upper case | |
| */ | |
| #define IS_UPPER_CHAR(x) ((x >= 'A') && (x <= 'Z')) | |
| /** Is a character a decimal digit | |
| */ | |
| #define IS_DIGIT(x) ((x >= '0') && (x <= '9')) | |
| /** Is a character an upper case hexadecimal digit | |
| */ | |
| #define IS_UPPER_HEX(x) (((x >= 'A') && (x <= 'F')) || IS_DIGIT (x)) | |
| /** Convert a hex number to its ASCII code. | |
| @param [in] Hex Hex number to convert. | |
| Must be 0 <= x < 16. | |
| @return The ASCII code corresponding to x. | |
| -1 if error. | |
| **/ | |
| UINT8 | |
| EFIAPI | |
| 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). | |
| -1 if error. | |
| **/ | |
| UINT8 | |
| EFIAPI | |
| HexFromAscii ( | |
| IN CHAR8 Char | |
| ); | |
| /** Check if a HID is a valid PNP ID. | |
| @param [in] Hid The Hid to validate. | |
| @retval TRUE The Hid is a valid PNP ID. | |
| @retval FALSE The Hid is not a valid PNP ID. | |
| **/ | |
| BOOLEAN | |
| IsValidPnpId ( | |
| IN CONST CHAR8 *Hid | |
| ); | |
| /** Check if a HID is a valid ACPI ID. | |
| @param [in] Hid The Hid to validate. | |
| @retval TRUE The Hid is a valid ACPI ID. | |
| @retval FALSE The Hid is not a valid ACPI ID. | |
| **/ | |
| BOOLEAN | |
| IsValidAcpiId ( | |
| IN CONST CHAR8 *Hid | |
| ); | |
| /** Convert a EisaId string to its compressed UINT32 equivalent. | |
| Cf. ACPI 6.4 specification, s19.3.4 "ASL Macros": "Eisaid" | |
| @param [in] EisaIdStr Input EisaId string. | |
| @param [out] EisaIdInt Output EisaId UINT32 (compressed). | |
| @retval EFI_SUCCESS The function completed successfully. | |
| @retval EFI_INVALID_PARAMETER Invalid parameter. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| AmlGetEisaIdFromString ( | |
| IN CONST CHAR8 *EisaIdStr, | |
| OUT UINT32 *EisaIdInt | |
| ); | |
| #endif // ACPI_HELPER_LIB_H_ |