// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /****************************************************************************** * * Module Name: dspkginit - Completion of deferred package initialization * * Copyright (C) 2000 - 2023, Intel Corp. * *****************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acnamesp.h" #include "amlcode.h" #include "acdispat.h" #include "acinterp.h" #include "acparser.h" #define _COMPONENT … ACPI_MODULE_NAME("dspkginit") /* Local prototypes */ static void acpi_ds_resolve_package_element(union acpi_operand_object **element); /******************************************************************************* * * FUNCTION: acpi_ds_build_internal_package_obj * * PARAMETERS: walk_state - Current walk state * op - Parser object to be translated * element_count - Number of elements in the package - this is * the num_elements argument to Package() * obj_desc_ptr - Where the ACPI internal object is returned * * RETURN: Status * * DESCRIPTION: Translate a parser Op package object to the equivalent * namespace object * * NOTE: The number of elements in the package will be always be the num_elements * count, regardless of the number of elements in the package list. If * num_elements is smaller, only that many package list elements are used. * if num_elements is larger, the Package object is padded out with * objects of type Uninitialized (as per ACPI spec.) * * Even though the ASL compilers do not allow num_elements to be smaller * than the Package list length (for the fixed length package opcode), some * BIOS code modifies the AML on the fly to adjust the num_elements, and * this code compensates for that. This also provides compatibility with * other AML interpreters. * ******************************************************************************/ acpi_status acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, union acpi_parse_object *op, u32 element_count, union acpi_operand_object **obj_desc_ptr) { … } /******************************************************************************* * * FUNCTION: acpi_ds_init_package_element * * PARAMETERS: acpi_pkg_callback * * RETURN: Status * * DESCRIPTION: Resolve a named reference element within a package object * ******************************************************************************/ acpi_status acpi_ds_init_package_element(u8 object_type, union acpi_operand_object *source_object, union acpi_generic_state *state, void *context) { … } /******************************************************************************* * * FUNCTION: acpi_ds_resolve_package_element * * PARAMETERS: element_ptr - Pointer to a reference object * * RETURN: Possible new element is stored to the indirect element_ptr * * DESCRIPTION: Resolve a package element that is a reference to a named * object. * ******************************************************************************/ static void acpi_ds_resolve_package_element(union acpi_operand_object **element_ptr) { … }