TianoCore EDK2 master
|
#include <AmlInclude.h>
Go to the source code of this file.
Functions | |
BOOLEAN EFIAPI | AmlIsNameString (IN UINT32 Root, IN UINT32 ParentPrefix, IN UINT32 SegCount) |
EFI_STATUS EFIAPI | AmlUpperCaseMemCpyS (OUT CHAR8 *DstBuffer, IN UINT32 MaxDstBufferSize, IN CONST CHAR8 *SrcBuffer, IN UINT32 Count) |
BOOLEAN EFIAPI | AmlIsRootPath (IN CONST CHAR8 *Buffer) |
BOOLEAN EFIAPI | AmlIsLeadNameChar (IN CHAR8 Ch) |
BOOLEAN EFIAPI | AmlIsNameChar (IN CHAR8 Ch) |
BOOLEAN EFIAPI | AslIsNameSeg (IN CONST CHAR8 *AslBuffer, OUT UINT32 *Size) |
BOOLEAN EFIAPI | AmlIsNameSeg (IN CONST CHAR8 *AmlBuffer) |
EFI_STATUS EFIAPI | AslParseNameStringInfo (IN CONST CHAR8 *Buffer, OUT UINT32 *Root, OUT UINT32 *ParentPrefix, OUT UINT32 *SegCount) |
EFI_STATUS EFIAPI | AmlParseNameStringInfo (IN CONST CHAR8 *Buffer, OUT UINT32 *Root, OUT UINT32 *ParentPrefix, OUT UINT32 *SegCount) |
UINT32 EFIAPI | AslComputeNameStringSize (IN UINT32 Root, IN UINT32 ParentPrefix, IN UINT32 SegCount) |
UINT32 EFIAPI | AmlComputeNameStringSize (IN UINT32 Root, IN UINT32 ParentPrefix, IN UINT32 SegCount) |
EFI_STATUS EFIAPI | AslGetNameStringSize (IN CONST CHAR8 *AslPath, OUT UINT32 *AslPathSizePtr) |
EFI_STATUS EFIAPI | AmlGetNameStringSize (IN CONST CHAR8 *AmlPath, OUT UINT32 *AmlPathSizePtr) |
EFI_STATUS EFIAPI | ConvertAslNameToAmlName (IN CONST CHAR8 *AslPath, OUT CHAR8 **OutAmlPath) |
EFI_STATUS EFIAPI | ConvertAmlNameToAslName (IN CONST CHAR8 *AmlPath, OUT CHAR8 **OutAslPath) |
BOOLEAN EFIAPI | AslCompareNameString (IN CONST CHAR8 *AslName1, IN CONST CHAR8 *AslName2) |
BOOLEAN EFIAPI | AmlCompareNameString (IN CONST CHAR8 *AmlName1, IN CONST CHAR8 *AmlName2) |
BOOLEAN EFIAPI | CompareAmlWithAslNameString (IN CONST CHAR8 *AmlName1, IN CONST CHAR8 *AslName2) |
CONST CHAR8 *EFIAPI | AmlGetFirstNameSeg (IN CONST CHAR8 *AmlPath, IN UINT32 Root, IN UINT32 ParentPrefix) |
AML String.
Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file AmlString.h.
Compare two AML NameStrings.
[in] | AmlName1 | First NameString to compare. |
[in] | AmlName2 | Second NameString to compare. |
TRUE | if the two strings are identical. |
FALSE | otherwise, or if error. |
Definition at line 919 of file AmlString.c.
UINT32 EFIAPI AmlComputeNameStringSize | ( | IN UINT32 | Root, |
IN UINT32 | ParentPrefix, | ||
IN UINT32 | SegCount | ||
) |
Compute the AML NameString/path size from NameString information (Root, ParentPrefix, SegCount).
[in] | Root | Number of root char. Can be 0 or 1. |
[in] | ParentPrefix | Number of carets char ('^'). Can be [0-255]. |
[in] | SegCount | Pointer holding the number of NameSeg(s). Can be [0-255]. |
Definition at line 481 of file AmlString.c.
CONST CHAR8 *EFIAPI AmlGetFirstNameSeg | ( | IN CONST CHAR8 * | AmlPath, |
IN UINT32 | Root, | ||
IN UINT32 | ParentPrefix | ||
) |
Given an AmlPath, return the address of the first NameSeg.
It is possible to determine the size of an AML NameString/path just by sight reading it. So no overflow can occur.
[in] | AmlPath | The AML pathname. |
[in] | Root | The AML pathname starts with a root char. It is an absolute path. |
[in] | ParentPrefix | The AML pathname has ParentPrefix carets in its name. |
Definition at line 1021 of file AmlString.c.
EFI_STATUS EFIAPI AmlGetNameStringSize | ( | IN CONST CHAR8 * | AmlPath, |
OUT UINT32 * | AmlPathSizePtr | ||
) |
Get the AML NameString/path size.
[in] | AmlPath | An AML NameString/path. |
[out] | AmlPathSizePtr | Pointer holding the AML NameString/path size. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 547 of file AmlString.c.
BOOLEAN EFIAPI AmlIsLeadNameChar | ( | IN CHAR8 | Ch | ) |
Check whether Ch is an ASL/AML LeadName.
This function works for both ASL and AML pathnames.
ACPI 6.3 specification, s19.2.2. "ASL Name and Pathname Terms": LeadNameChar := 'A'-'Z' | 'a'-'z' | '_'
ACPI 6.3 specification, s20.2.2. "Name Objects Encoding": LeadNameChar := 'A'-'Z' | 'a'-'z' | '_'
[in] | Ch | The char to test. |
TRUE | Ch is an ASL/AML LeadName. |
FALSE | Ch is not an ASL/AML LeadName. |
Definition at line 144 of file AmlString.c.
BOOLEAN EFIAPI AmlIsNameChar | ( | IN CHAR8 | Ch | ) |
Check whether Ch is an ASL/AML NameChar.
This function works for both ASL and AML pathnames.
ACPI 6.3 specification, s19.2.2. "ASL Name and Pathname Terms": NameChar := DigitChar | LeadNameChar LeadNameChar := 'A'-'Z' | 'a'-'z' | '_' DigitChar := '0'-'9'
ACPI 6.3 specification, s20.2.2. "Name Objects Encoding": NameChar := DigitChar | LeadNameChar LeadNameChar := 'A'-'Z' | 'a'-'z' | '_' DigitChar := '0'-'9'
[in] | Ch | The char to test. |
TRUE | Ch is an ASL/AML NameChar. |
FALSE | Ch is not an ASL/AML NameChar. |
Definition at line 176 of file AmlString.c.
Check whether AmlBuffer is an AML NameSeg.
This function only works for AML NameStrings/pathnames. AML NameStrings/pathnames must be 4 chars long.
[in] | AmlBuffer | Pointer in an AML NameString/pathname. |
TRUE | AmlBuffer is an AML NameSeg. |
FALSE | AmlBuffer is not an AML NameSeg. |
Definition at line 244 of file AmlString.c.
Check NameString/path information is valid.
Root, ParentPrefix and SegCount cannot be 0 at the same time. This function works for ASL and AML name strings.
[in] | Root | Number of root char. Must be 0 or 1. |
[in] | ParentPrefix | Number of carets char ('^'). Must be [0-255]. |
[in] | SegCount | Number of NameSeg (s). Must be [0-255]. |
TRUE | id the input information is in the right boundaries. FALSE otherwise. |
Definition at line 32 of file AmlString.c.
Check whether Buffer is a root path ('\').
This function works for both ASL and AML pathnames. Buffer must be at least 2 bytes long.
[in] | Buffer | An ASL/AML path. |
TRUE | Buffer is a root path |
FALSE | Buffer is not a root path. |
Definition at line 112 of file AmlString.c.
EFI_STATUS EFIAPI AmlParseNameStringInfo | ( | IN CONST CHAR8 * | Buffer, |
OUT UINT32 * | Root, | ||
OUT UINT32 * | ParentPrefix, | ||
OUT UINT32 * | SegCount | ||
) |
Parse an AML NameString/path.
It is possible to determine the size of an AML NameString/path just by sight reading it. So no overflow can occur. Information found in the AML NameString/path is returned via pointers: Root, ParentPrefix, SegCount.
[in] | Buffer | AML NameString/path. |
[out] | Root | Pointer holding the number of root char. Can be 0 or 1. |
[out] | ParentPrefix | Pointer holding the number of carets char ('^'). Can be [0-255]. |
[out] | SegCount | Pointer holding the number of NameSeg(s). Can be [0-255]. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 371 of file AmlString.c.
EFI_STATUS EFIAPI AmlUpperCaseMemCpyS | ( | OUT CHAR8 * | DstBuffer, |
IN UINT32 | MaxDstBufferSize, | ||
IN CONST CHAR8 * | SrcBuffer, | ||
IN UINT32 | Count | ||
) |
Copy bytes from SrcBuffer to DstBuffer and convert to upper case. Don't copy more than MaxDstBufferSize bytes.
[out] | DstBuffer | Destination buffer. |
[in] | MaxDstBufferSize | Maximum size of DstBuffer. Must be non-zero. |
[in] | SrcBuffer | Source buffer. |
[in] | Count | Count of bytes to copy from SrcBuffer. Return success if 0. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 65 of file AmlString.c.
Compare two ASL NameStrings.
[in] | AslName1 | First NameString to compare. |
[in] | AslName2 | Second NameString to compare. |
TRUE | if the two strings are identical. |
FALSE | otherwise, or if error. |
Definition at line 873 of file AmlString.c.
UINT32 EFIAPI AslComputeNameStringSize | ( | IN UINT32 | Root, |
IN UINT32 | ParentPrefix, | ||
IN UINT32 | SegCount | ||
) |
Compute the ASL NameString/path size from NameString information (Root, ParentPrefix, SegCount).
[in] | Root | Number of root char. Can be 0 or 1. |
[in] | ParentPrefix | Number of carets char ('^'). Can be [0-255]. |
[in] | SegCount | Pointer holding the number of NameSeg(s). Can be [0-255]. |
Definition at line 439 of file AmlString.c.
EFI_STATUS EFIAPI AslGetNameStringSize | ( | IN CONST CHAR8 * | AslPath, |
OUT UINT32 * | AslPathSizePtr | ||
) |
Get the ASL NameString/path size.
[in] | AslPath | An ASL NameString/path. |
[out] | AslPathSizePtr | Pointer holding the ASL NameString/path size. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 516 of file AmlString.c.
Check whether AslBuffer is an ASL NameSeg.
This function only works for ASL NameStrings/pathnames. ASL NameStrings/pathnames are at most 4 chars long.
[in] | AslBuffer | Pointer in an ASL NameString/pathname. |
[out] | Size | Size of the NameSeg. |
TRUE | AslBuffer is an ASL NameSeg. |
FALSE | AslBuffer is not an ASL NameSeg. |
Definition at line 200 of file AmlString.c.
EFI_STATUS EFIAPI AslParseNameStringInfo | ( | IN CONST CHAR8 * | Buffer, |
OUT UINT32 * | Root, | ||
OUT UINT32 * | ParentPrefix, | ||
OUT UINT32 * | SegCount | ||
) |
Parse an ASL NameString/path.
An ASL NameString/path must be NULL terminated. Information found in the ASL NameString/path is returned via pointers: Root, ParentPrefix, SegCount.
[in] | Buffer | ASL NameString/path. |
[out] | Root | Pointer holding the number of root char. Can be 0 or 1. |
[out] | ParentPrefix | Pointer holding the number of carets char ('^'). Can be [0-255]. |
[out] | SegCount | Pointer holding the number of NameSeg (s). Can be [0-255]. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 286 of file AmlString.c.
Compare an AML NameString and an ASL NameString.
The ASL NameString is converted to an AML NameString before being compared with the ASL NameString. This allows to expand NameSegs shorter than 4 chars. E.g.: AslName: "DEV" will be expanded to "DEV_" before being compared.
[in] | AmlName1 | AML NameString to compare. |
[in] | AslName2 | ASL NameString to compare. |
TRUE | if the two strings are identical. |
FALSE | otherwise, or if error. |
Definition at line 971 of file AmlString.c.
EFI_STATUS EFIAPI ConvertAmlNameToAslName | ( | IN CONST CHAR8 * | AmlPath, |
OUT CHAR8 ** | OutAslPath | ||
) |
Convert an AML NameString/path to an ASL NameString/path. The caller must free the memory allocated in this function. using FreePool ().
[in] | AmlPath | An AML NameString/path. |
[out] | OutAslPath | Buffer containing the ASL path. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | Invalid parameter. |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. |
Definition at line 761 of file AmlString.c.
EFI_STATUS EFIAPI ConvertAslNameToAmlName | ( | IN CONST CHAR8 * | AslPath, |
OUT CHAR8 ** | OutAmlPath | ||
) |
Convert an ASL NameString/path to an AML NameString/path. The caller must free the memory allocated in this function for AmlPath using FreePool ().
[in] | AslPath | An ASL NameString/path. |
[out] | OutAmlPath | Buffer containing the AML path. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | Invalid parameter. |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. |
Definition at line 598 of file AmlString.c.