// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /****************************************************************************** * * Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes) * * Copyright (C) 2000 - 2023, Intel Corp. * *****************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acinterp.h" #include "acnamesp.h" #include "actables.h" #include "acdispat.h" #include "acevents.h" #include "amlcode.h" #define _COMPONENT … ACPI_MODULE_NAME("exconfig") /* Local prototypes */ static acpi_status acpi_ex_add_table(u32 table_index, union acpi_operand_object **ddb_handle); static acpi_status acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer); /******************************************************************************* * * FUNCTION: acpi_ex_add_table * * PARAMETERS: table - Pointer to raw table * parent_node - Where to load the table (scope) * ddb_handle - Where to return the table handle. * * RETURN: Status * * DESCRIPTION: Common function to Install and Load an ACPI table with a * returned table handle. * ******************************************************************************/ static acpi_status acpi_ex_add_table(u32 table_index, union acpi_operand_object **ddb_handle) { … } /******************************************************************************* * * FUNCTION: acpi_ex_load_table_op * * PARAMETERS: walk_state - Current state with operands * return_desc - Where to store the return object * * RETURN: Status * * DESCRIPTION: Load an ACPI table from the RSDT/XSDT * ******************************************************************************/ acpi_status acpi_ex_load_table_op(struct acpi_walk_state *walk_state, union acpi_operand_object **return_desc) { … } /******************************************************************************* * * FUNCTION: acpi_ex_region_read * * PARAMETERS: obj_desc - Region descriptor * length - Number of bytes to read * buffer - Pointer to where to put the data * * RETURN: Status * * DESCRIPTION: Read data from an operation region. The read starts from the * beginning of the region. * ******************************************************************************/ static acpi_status acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer) { … } /******************************************************************************* * * FUNCTION: acpi_ex_load_op * * PARAMETERS: obj_desc - Region or Buffer/Field where the table will be * obtained * target - Where the status of the load will be stored * walk_state - Current state * * RETURN: Status * * DESCRIPTION: Load an ACPI table from a field or operation region * * NOTE: Region Fields (Field, bank_field, index_fields) are resolved to buffer * objects before this code is reached. * * If source is an operation region, it must refer to system_memory, as * per the ACPI specification. * ******************************************************************************/ acpi_status acpi_ex_load_op(union acpi_operand_object *obj_desc, union acpi_operand_object *target, struct acpi_walk_state *walk_state) { … } /******************************************************************************* * * FUNCTION: acpi_ex_unload_table * * PARAMETERS: ddb_handle - Handle to a previously loaded table * * RETURN: Status * * DESCRIPTION: Unload an ACPI table * ******************************************************************************/ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle) { … }