mirror of https://github.com/acidanthera/audk.git
72 lines
2.2 KiB
C
72 lines
2.2 KiB
C
/** @file
|
|
Configuration Manager Object parser.
|
|
|
|
Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef CONFIGURATION_MANAGER_OBJECT_PARSER_H_
|
|
#define CONFIGURATION_MANAGER_OBJECT_PARSER_H_
|
|
|
|
#define OUTPUT_FIELD_COLUMN_WIDTH 32
|
|
|
|
/** Function prototype to format a field print.
|
|
|
|
@param [in] Format Format string for tracing the data as specified by
|
|
the 'Format' member of ACPI_PARSER.
|
|
@param [in] Ptr Pointer to the start of the buffer.
|
|
**/
|
|
typedef VOID (EFIAPI *FNPTR_PRINT_FORMATTER)(CONST CHAR8 *Format, UINT8 *Ptr);
|
|
|
|
/**
|
|
The CM_OBJ_PARSER structure describes the fields of an CmObject and
|
|
provides means for the parser to interpret and trace appropriately.
|
|
|
|
ParseAcpi() uses the format string specified by 'Format' for tracing
|
|
the field data.
|
|
*/
|
|
typedef struct CmObjParser CM_OBJ_PARSER;
|
|
struct CmObjParser {
|
|
/// String describing the Cm Object
|
|
CONST CHAR8 *NameStr;
|
|
|
|
/// The length of the field.
|
|
UINT32 Length;
|
|
|
|
/// Optional Print() style format string for tracing the data. If not
|
|
/// used this must be set to NULL.
|
|
CONST CHAR8 *Format;
|
|
|
|
/// Optional pointer to a print formatter function which
|
|
/// is typically used to trace complex field information.
|
|
/// If not used this must be set to NULL.
|
|
/// The Format string is passed to the PrintFormatter function
|
|
/// but may be ignored by the implementation code.
|
|
FNPTR_PRINT_FORMATTER PrintFormatter;
|
|
|
|
/// Optional pointer to print the fields of another CM_OBJ_PARSER
|
|
/// structure. This is useful to print sub-structures.
|
|
CONST CM_OBJ_PARSER *SubObjParser;
|
|
|
|
/// Count of items in the SubObj.
|
|
UINTN SubObjItemCount;
|
|
};
|
|
|
|
/**
|
|
A structure mapping an array of Configuration Manager Object parsers
|
|
with their object names.
|
|
*/
|
|
typedef struct CmObjParserArray {
|
|
/// Object name
|
|
CONST CHAR8 *ObjectName;
|
|
|
|
/// Function pointer to the parser
|
|
CONST CM_OBJ_PARSER *Parser;
|
|
|
|
/// Count of items
|
|
UINTN ItemCount;
|
|
} CM_OBJ_PARSER_ARRAY;
|
|
|
|
#endif // CONFIGURATION_MANAGER_OBJECT_PARSER_H_
|