Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * Name: acdispat.h - dispatcher (parser to interpreter interface)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * Copyright (C) 2000 - 2020, Intel Corp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #ifndef _ACDISPAT_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #define _ACDISPAT_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #define NAMEOF_LOCAL_NTE    "__L0"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #define NAMEOF_ARG_NTE      "__A0"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  * dsargs - execution of dynamic arguments for static objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) acpi_ds_get_bank_field_arguments(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *rgn_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * dscontrol - support for execution control opcodes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 			      union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) acpi_ds_exec_end_control_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 			    union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)  * dsopcode - support for late operand evaluation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 				   union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 			     union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 				   union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 				  union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 				  union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) acpi_ds_eval_bank_field_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 				 union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) acpi_status acpi_ds_initialize_region(acpi_handle obj_handle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)  * dsexec - Parser/Interpreter interface, method execution callbacks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 			    union acpi_operand_object *result_obj);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		      union acpi_parse_object **out_op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)  * dsfield - Parser/Interpreter interface for AML fields
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) acpi_ds_create_field(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 		     struct acpi_namespace_node *region_node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 		     struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) acpi_ds_create_bank_field(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 			  struct acpi_namespace_node *region_node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 			  struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) acpi_ds_create_index_field(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 			   struct acpi_namespace_node *region_node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 			   struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) acpi_ds_create_buffer_field(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 			    struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) acpi_ds_init_field_objects(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 			   struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)  * dsload - Parser/Interpreter interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) /* dsload - pass 1 namespace load callbacks */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 		       union acpi_parse_object **out_op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) /* dsload - pass 2 namespace load callbacks */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 		       union acpi_parse_object **out_op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)  * dsmthdat - method data (locals/args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) acpi_ds_store_object_to_local(u8 type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 			      u32 index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 			      union acpi_operand_object *src_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 			      struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) acpi_ds_method_data_get_entry(u16 opcode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 			      u32 index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 			      struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 			      union acpi_operand_object ***node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) u8 acpi_ds_is_method_value(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) acpi_ds_method_data_get_value(u8 type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 			      u32 index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 			      struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 			      union acpi_operand_object **dest_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) acpi_ds_method_data_init_args(union acpi_operand_object **params,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 			      u32 max_param_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 			      struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) acpi_ds_method_data_get_node(u8 type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 			     u32 index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 			     struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 			     struct acpi_namespace_node **node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) void acpi_ds_method_data_init(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)  * dsmethod - Parser/Interpreter interface - control method parsing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 			      union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) acpi_ds_call_control_method(struct acpi_thread_state *thread,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 			    struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 			    union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) acpi_ds_restart_control_method(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 			       union acpi_operand_object *return_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 				 struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 			       union acpi_operand_object *obj_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 			       struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)  * dsinit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) acpi_ds_initialize_objects(u32 table_index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 			   struct acpi_namespace_node *start_node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)  * dsobject - Parser/Interpreter interface - object initialization and conversion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 			      union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 			      union acpi_operand_object **obj_desc_ptr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 				  union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 				  u32 buffer_length,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 				  union acpi_operand_object **obj_desc_ptr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 				   union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 				   u32 package_length,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 				   union acpi_operand_object **obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 			    union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 			    u16 opcode, union acpi_operand_object **obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) acpi_ds_create_node(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 		    struct acpi_namespace_node *node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 		    union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)  * dspkginit - Package object initialization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) acpi_ds_init_package_element(u8 object_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 			     union acpi_operand_object *source_object,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 			     union acpi_generic_state *state, void *context);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)  * dsutils - Parser/Interpreter interface utility routines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) void acpi_ds_clear_implicit_return(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) acpi_ds_do_implicit_return(union acpi_operand_object *return_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 			   struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 			   u8 add_reference);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) acpi_ds_is_result_used(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 		       struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) acpi_ds_delete_result_if_not_used(union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 				  union acpi_operand_object *result_obj,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 				  struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) acpi_ds_create_operand(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 		       union acpi_parse_object *arg, u32 args_remaining);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) acpi_ds_create_operands(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 			union acpi_parse_object *first_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) acpi_status acpi_ds_resolve_operands(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) void acpi_ds_clear_operands(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)  * dswscope - Scope Stack manipulation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) acpi_ds_scope_stack_push(struct acpi_namespace_node *node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 			 acpi_object_type type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 			 struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) acpi_status acpi_ds_scope_stack_pop(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)  * dswstate - parser WALK_STATE management routines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) acpi_ds_obj_stack_push(void *object, struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) struct acpi_walk_state * acpi_ds_create_walk_state(acpi_owner_id owner_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 						   union acpi_parse_object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 						   *origin,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 						   union acpi_operand_object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 						   *mth_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 						   struct acpi_thread_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 						   *thread);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 		      union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 		      struct acpi_namespace_node *method_node,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 		      u8 * aml_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 		      u32 aml_length,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 		      struct acpi_evaluate_info *info, u8 pass_number);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) acpi_ds_obj_stack_pop_and_delete(u32 pop_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 				 struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) void acpi_ds_delete_walk_state(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 					       *thread);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) acpi_ds_push_walk_state(struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 			struct acpi_thread_state *thread);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) acpi_status acpi_ds_result_stack_clear(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 						       *thread);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) acpi_ds_result_pop(union acpi_operand_object **object,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 		   struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) acpi_ds_result_push(union acpi_operand_object *object,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 		    struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)  * dsdebug - parser debugging routines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) acpi_ds_dump_method_stack(acpi_status status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 			  struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 			  union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) #endif				/* _ACDISPAT_H_ */