Lines Matching +full:container +full:- +full:rules
1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
4 * Module Name: exstore - AML Interpreter object store support
6 * Copyright (C) 2000 - 2023, Intel Corp.
35 * PARAMETERS: *source_desc - Value to be stored
36 * *dest_desc - Where to store it. Must be an NS node
39 * walk_state - Current walk state
46 * the destination operand -- not just simply the actual "Store"
86 switch (dest_desc->common.type) { in acpi_ex_store()
93 /* Allow stores to Constants -- a Noop as per ACPI spec */ in acpi_ex_store()
95 if (dest_desc->common.flags & AOPOBJ_AML_CONSTANT) { in acpi_ex_store()
106 "Target is not a Reference or Constant object - [%s] %p", in acpi_ex_store()
121 switch (ref_desc->reference.class) { in acpi_ex_store()
124 /* Storing an object into a Name "container" */ in acpi_ex_store()
127 ref_desc->reference. in acpi_ex_store()
147 acpi_ds_store_object_to_local(ref_desc->reference.class, in acpi_ex_store()
148 ref_desc->reference.value, in acpi_ex_store()
155 * displayed and otherwise has no effect -- see ACPI Specification in acpi_ex_store()
168 ref_desc->reference.class)); in acpi_ex_store()
182 * PARAMETERS: *source_desc - Value to be stored
183 * *dest_desc - Named object to receive the value
184 * walk_state - Current walk state
209 switch (index_desc->reference.target_type) { in acpi_ex_store_object_to_index()
216 * The object at *(index_desc->Reference.Where) is the in acpi_ex_store_object_to_index()
218 * The parent package object is at index_desc->Reference.Object in acpi_ex_store_object_to_index()
220 obj_desc = *(index_desc->reference.where); in acpi_ex_store_object_to_index()
222 if (source_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE && in acpi_ex_store_object_to_index()
223 source_desc->reference.class == ACPI_REFCLASS_TABLE) { in acpi_ex_store_object_to_index()
246 index_desc->reference.object)->common. in acpi_ex_store_object_to_index()
252 *(index_desc->reference.where) = new_desc; in acpi_ex_store_object_to_index()
254 /* Increment ref count by the ref count of the parent package-1 */ in acpi_ex_store_object_to_index()
257 index_desc->reference.object)->common. in acpi_ex_store_object_to_index()
269 * The first 8-bit element of the source object is written to the in acpi_ex_store_object_to_index()
270 * 8-bit Buffer location defined by the Index destination object, in acpi_ex_store_object_to_index()
279 obj_desc = index_desc->reference.object; in acpi_ex_store_object_to_index()
280 if ((obj_desc->common.type != ACPI_TYPE_BUFFER) && in acpi_ex_store_object_to_index()
281 (obj_desc->common.type != ACPI_TYPE_STRING)) { in acpi_ex_store_object_to_index()
289 switch (source_desc->common.type) { in acpi_ex_store_object_to_index()
292 /* Use the least-significant byte of the integer */ in acpi_ex_store_object_to_index()
294 value = (u8) (source_desc->integer.value); in acpi_ex_store_object_to_index()
302 value = source_desc->buffer.pointer[0]; in acpi_ex_store_object_to_index()
317 obj_desc->buffer.pointer[index_desc->reference.value] = value; in acpi_ex_store_object_to_index()
334 * PARAMETERS: source_desc - Value to be stored
335 * node - Named object to receive the value
336 * walk_state - Current walk state
337 * implicit_conversion - Perform implicit conversion (yes/no)
354 * storing to an arg_x -- as per the rules of the ACPI spec.
385 if (walk_state->opcode != AML_COPY_OBJECT_OP) { in acpi_ex_store_object_to_node()
394 * Integer --> Integer (Named/Local/Arg) in acpi_ex_store_object_to_node()
395 * String --> String (Named/Local/Arg) in acpi_ex_store_object_to_node()
396 * Buffer --> Buffer (Named/Local/Arg) in acpi_ex_store_object_to_node()
397 * Package --> Package (Named/Local/Arg) in acpi_ex_store_object_to_node()
400 * Integer --> String or Buffer (Named) in acpi_ex_store_object_to_node()
401 * String --> Integer or Buffer (Named) in acpi_ex_store_object_to_node()
402 * Buffer --> Integer or String (Named) in acpi_ex_store_object_to_node()
411 if (walk_state->opcode == AML_STORE_OP) { in acpi_ex_store_object_to_node()
412 if (source_desc->common.type != in acpi_ex_store_object_to_node()
438 acpi_ut_get_type_name(node->type), in acpi_ex_store_object_to_node()
439 node->name.ascii)); in acpi_ex_store_object_to_node()
468 if ((walk_state->opcode == AML_COPY_OBJECT_OP) || in acpi_ex_store_object_to_node()
502 new_desc->common.type); in acpi_ex_store_object_to_node()
524 &walk_state->result_obj); in acpi_ex_store_object_to_node()
532 * This is the ACPI spec-defined behavior for the copy_object in acpi_ex_store_object_to_node()
548 * PARAMETERS: source_desc - Value to be stored
549 * node - Named object to receive the value
550 * walk_state - Current walk state
573 source_desc, acpi_ut_get_type_name(node->type), in acpi_ex_store_direct_to_node()
586 status = acpi_ns_attach_object(node, new_desc, new_desc->common.type); in acpi_ex_store_direct_to_node()