// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /******************************************************************************* * * Module Name: nsobject - Utilities for objects attached to namespace * table entries * ******************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acnamesp.h" #define _COMPONENT … ACPI_MODULE_NAME("nsobject") /******************************************************************************* * * FUNCTION: acpi_ns_attach_object * * PARAMETERS: node - Parent Node * object - Object to be attached * type - Type of object, or ACPI_TYPE_ANY if not * known * * RETURN: Status * * DESCRIPTION: Record the given object as the value associated with the * name whose acpi_handle is passed. If Object is NULL * and Type is ACPI_TYPE_ANY, set the name as having no value. * Note: Future may require that the Node->Flags field be passed * as a parameter. * * MUTEX: Assumes namespace is locked * ******************************************************************************/ acpi_status acpi_ns_attach_object(struct acpi_namespace_node *node, union acpi_operand_object *object, acpi_object_type type) { … } /******************************************************************************* * * FUNCTION: acpi_ns_detach_object * * PARAMETERS: node - A Namespace node whose object will be detached * * RETURN: None. * * DESCRIPTION: Detach/delete an object associated with a namespace node. * if the object is an allocated object, it is freed. * Otherwise, the field is simply cleared. * ******************************************************************************/ void acpi_ns_detach_object(struct acpi_namespace_node *node) { … } /******************************************************************************* * * FUNCTION: acpi_ns_get_attached_object * * PARAMETERS: node - Namespace node * * RETURN: Current value of the object field from the Node whose * handle is passed * * DESCRIPTION: Obtain the object attached to a namespace node. * ******************************************************************************/ union acpi_operand_object *acpi_ns_get_attached_object(struct acpi_namespace_node *node) { … } /******************************************************************************* * * FUNCTION: acpi_ns_get_secondary_object * * PARAMETERS: node - Namespace node * * RETURN: Current value of the object field from the Node whose * handle is passed. * * DESCRIPTION: Obtain a secondary object associated with a namespace node. * ******************************************************************************/ union acpi_operand_object *acpi_ns_get_secondary_object(union acpi_operand_object *obj_desc) { … } /******************************************************************************* * * FUNCTION: acpi_ns_attach_data * * PARAMETERS: node - Namespace node * handler - Handler to be associated with the data * data - Data to be attached * * RETURN: Status * * DESCRIPTION: Low-level attach data. Create and attach a Data object. * ******************************************************************************/ acpi_status acpi_ns_attach_data(struct acpi_namespace_node *node, acpi_object_handler handler, void *data) { … } /******************************************************************************* * * FUNCTION: acpi_ns_detach_data * * PARAMETERS: node - Namespace node * handler - Handler associated with the data * * RETURN: Status * * DESCRIPTION: Low-level detach data. Delete the data node, but the caller * is responsible for the actual data. * ******************************************************************************/ acpi_status acpi_ns_detach_data(struct acpi_namespace_node *node, acpi_object_handler handler) { … } /******************************************************************************* * * FUNCTION: acpi_ns_get_attached_data * * PARAMETERS: node - Namespace node * handler - Handler associated with the data * data - Where the data is returned * * RETURN: Status * * DESCRIPTION: Low level interface to obtain data previously associated with * a namespace node. * ******************************************************************************/ acpi_status acpi_ns_get_attached_data(struct acpi_namespace_node *node, acpi_object_handler handler, void **data) { … }