/******************************************************************************* * * FUNCTION: ns_execute_table * * PARAMETERS: table_desc - An ACPI table descriptor for table to parse * start_node - Where to enter the table into the namespace * * RETURN: Status * * DESCRIPTION: Load ACPI/AML table by executing the entire table as a single * large control method. * * NOTE: The point of this is to execute any module-level code in-place * as the table is parsed. Some AML code depends on this behavior. * * It is a run-time option at this time, but will eventually become * the default. * * Note: This causes the table to only have a single-pass parse. * However, this is compatible with other ACPI implementations. *
******************************************************************************/
acpi_status
acpi_ns_execute_table(u32 table_index, struct acpi_namespace_node *start_node)
{
acpi_status status; struct acpi_table_header *table;
acpi_owner_id owner_id; struct acpi_evaluate_info *info = NULL;
u32 aml_length;
u8 *aml_start; union acpi_operand_object *method_obj = NULL;
ACPI_FUNCTION_TRACE(ns_execute_table);
status = acpi_get_table_by_index(table_index, &table); if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
/* Table must consist of at least a complete header */
if (table->length < sizeof(struct acpi_table_header)) {
return_ACPI_STATUS(AE_BAD_HEADER);
}
/******************************************************************************* * * FUNCTION: ns_one_complete_parse * * PARAMETERS: pass_number - 1 or 2 * table_desc - The table to be parsed. * * RETURN: Status * * DESCRIPTION: Perform one complete parse of an ACPI/AML table. *
******************************************************************************/
/******************************************************************************* * * FUNCTION: acpi_ns_parse_table * * PARAMETERS: table_desc - An ACPI table descriptor for table to parse * start_node - Where to enter the table into the namespace * * RETURN: Status * * DESCRIPTION: Parse AML within an ACPI table and return a tree of ops *
******************************************************************************/
/* * Executes the AML table as one large control method. * The point of this is to execute any module-level code in-place * as the table is parsed. Some AML code depends on this behavior. * * Note: This causes the table to only have a single-pass parse. * However, this is compatible with other ACPI implementations.
*/
ACPI_DEBUG_PRINT_RAW((ACPI_DB_PARSE, "%s: **** Start table execution pass\n",
ACPI_GET_FUNCTION_NAME));
status = acpi_ns_execute_table(table_index, start_node);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.