/** @file Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.
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_