patch-2.4.0-test9 linux/drivers/acpi/include/acdispat.h
Next file: linux/drivers/acpi/include/acenv.h
Previous file: linux/drivers/acpi/include/acdebug.h
Back to the patch index
Back to the overall index
- Lines: 402
- Date:
Fri Sep 15 14:30:30 2000
- Orig file:
v2.4.0-test8/linux/drivers/acpi/include/acdispat.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.4.0-test8/linux/drivers/acpi/include/acdispat.h linux/drivers/acpi/include/acdispat.h
@@ -0,0 +1,401 @@
+/******************************************************************************
+ *
+ * Name: acdispat.h - dispatcher (parser to interpreter interface)
+ * $Revision: 29 $
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 R. Byron Moore
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#ifndef _ACDISPAT_H_
+#define _ACDISPAT_H_
+
+
+#define NAMEOF_LOCAL_NTE "__L0"
+#define NAMEOF_ARG_NTE "__A0"
+
+
+/* For Acpi_ds_method_data_set_value */
+
+#define MTH_TYPE_LOCAL 0
+#define MTH_TYPE_ARG 1
+
+
+/* Common interfaces */
+
+ACPI_STATUS
+acpi_ds_obj_stack_push (
+ void *object,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_obj_stack_pop (
+ u32 pop_count,
+ ACPI_WALK_STATE *walk_state);
+
+void *
+acpi_ds_obj_stack_get_value (
+ u32 index,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_obj_stack_pop_object (
+ ACPI_OPERAND_OBJECT **object,
+ ACPI_WALK_STATE *walk_state);
+
+
+/* dsregion - Op region support */
+
+ACPI_STATUS
+acpi_ds_get_region_arguments (
+ ACPI_OPERAND_OBJECT *rgn_desc);
+
+
+/* dsctrl - Parser/Interpreter interface, control stack routines */
+
+
+ACPI_STATUS
+acpi_ds_exec_begin_control_op (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op);
+
+ACPI_STATUS
+acpi_ds_exec_end_control_op (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op);
+
+
+/* dsexec - Parser/Interpreter interface, method execution callbacks */
+
+ACPI_STATUS
+acpi_ds_exec_begin_op (
+ u16 opcode,
+ ACPI_PARSE_OBJECT *op,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT **out_op);
+
+ACPI_STATUS
+acpi_ds_exec_end_op (
+ ACPI_WALK_STATE *state,
+ ACPI_PARSE_OBJECT *op);
+
+
+/* dsfield - Parser/Interpreter interface for AML fields */
+
+
+ACPI_STATUS
+acpi_ds_create_field (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_NAMESPACE_NODE *region_node,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_create_bank_field (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_NAMESPACE_NODE *region_node,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_create_index_field (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_HANDLE region_node,
+ ACPI_WALK_STATE *walk_state);
+
+
+/* dsload - Parser/Interpreter interface, namespace load callbacks */
+
+ACPI_STATUS
+acpi_ds_load1_begin_op (
+ u16 opcode,
+ ACPI_PARSE_OBJECT *op,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT **out_op);
+
+ACPI_STATUS
+acpi_ds_load1_end_op (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op);
+
+ACPI_STATUS
+acpi_ds_load2_begin_op (
+ u16 opcode,
+ ACPI_PARSE_OBJECT *op,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT **out_op);
+
+ACPI_STATUS
+acpi_ds_load2_end_op (
+ ACPI_WALK_STATE *state,
+ ACPI_PARSE_OBJECT *op);
+
+
+/* dsmthdat - method data (locals/args) */
+
+
+ACPI_STATUS
+acpi_ds_method_data_get_entry (
+ u32 type,
+ u32 index,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT ***node);
+
+ACPI_STATUS
+acpi_ds_method_data_delete_all (
+ ACPI_WALK_STATE *walk_state);
+
+u8
+acpi_ds_is_method_value (
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+OBJECT_TYPE_INTERNAL
+acpi_ds_method_data_get_type (
+ u32 type,
+ u32 index,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_method_data_get_value (
+ u32 type,
+ u32 index,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **dest_desc);
+
+ACPI_STATUS
+acpi_ds_method_data_set_value (
+ u32 type,
+ u32 index,
+ ACPI_OPERAND_OBJECT *src_desc,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_method_data_delete_value (
+ u32 type,
+ u32 index,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_method_data_init_args (
+ ACPI_OPERAND_OBJECT **params,
+ u32 max_param_count,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_NAMESPACE_NODE *
+acpi_ds_method_data_get_nte (
+ u32 type,
+ u32 index,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_method_data_init (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_method_data_set_entry (
+ u32 type,
+ u32 index,
+ ACPI_OPERAND_OBJECT *object,
+ ACPI_WALK_STATE *walk_state);
+
+
+/* dsmethod - Parser/Interpreter interface - control method parsing */
+
+ACPI_STATUS
+acpi_ds_parse_method (
+ ACPI_HANDLE obj_handle);
+
+ACPI_STATUS
+acpi_ds_call_control_method (
+ ACPI_WALK_LIST *walk_list,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op);
+
+ACPI_STATUS
+acpi_ds_restart_control_method (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT *return_desc);
+
+ACPI_STATUS
+acpi_ds_terminate_control_method (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_begin_method_execution (
+ ACPI_NAMESPACE_NODE *method_node,
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+
+/* dsobj - Parser/Interpreter interface - object initialization and conversion */
+
+ACPI_STATUS
+acpi_ds_init_one_object (
+ ACPI_HANDLE obj_handle,
+ u32 level,
+ void *context,
+ void **return_value);
+
+ACPI_STATUS
+acpi_ds_initialize_objects (
+ ACPI_TABLE_DESC *table_desc,
+ ACPI_NAMESPACE_NODE *start_node);
+
+ACPI_STATUS
+acpi_ds_build_internal_package_obj (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op,
+ ACPI_OPERAND_OBJECT **obj_desc);
+
+ACPI_STATUS
+acpi_ds_build_internal_object (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op,
+ ACPI_OPERAND_OBJECT **obj_desc_ptr);
+
+ACPI_STATUS
+acpi_ds_init_object_from_op (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op,
+ u16 opcode,
+ ACPI_OPERAND_OBJECT **obj_desc);
+
+ACPI_STATUS
+acpi_ds_create_node (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_NAMESPACE_NODE *node,
+ ACPI_PARSE_OBJECT *op);
+
+
+/* dsregn - Parser/Interpreter interface - Op Region parsing */
+
+ACPI_STATUS
+acpi_ds_eval_region_operands (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *op);
+
+ACPI_STATUS
+acpi_ds_initialize_region (
+ ACPI_HANDLE obj_handle);
+
+
+/* dsutils - Parser/Interpreter interface utility routines */
+
+u8
+acpi_ds_is_result_used (
+ ACPI_PARSE_OBJECT *op);
+
+void
+acpi_ds_delete_result_if_not_used (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_OPERAND_OBJECT *result_obj,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_create_operand (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *arg);
+
+ACPI_STATUS
+acpi_ds_create_operands (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_PARSE_OBJECT *first_arg);
+
+ACPI_STATUS
+acpi_ds_resolve_operands (
+ ACPI_WALK_STATE *walk_state);
+
+OBJECT_TYPE_INTERNAL
+acpi_ds_map_opcode_to_data_type (
+ u16 opcode,
+ u32 *out_flags);
+
+OBJECT_TYPE_INTERNAL
+acpi_ds_map_named_opcode_to_data_type (
+ u16 opcode);
+
+
+/*
+ * dswscope - Scope Stack manipulation
+ */
+
+ACPI_STATUS
+acpi_ds_scope_stack_push (
+ ACPI_NAMESPACE_NODE *node,
+ OBJECT_TYPE_INTERNAL type,
+ ACPI_WALK_STATE *walk_state);
+
+
+ACPI_STATUS
+acpi_ds_scope_stack_pop (
+ ACPI_WALK_STATE *walk_state);
+
+void
+acpi_ds_scope_stack_clear (
+ ACPI_WALK_STATE *walk_state);
+
+
+/* Acpi_dswstate - parser WALK_STATE management routines */
+
+ACPI_WALK_STATE *
+acpi_ds_create_walk_state (
+ ACPI_OWNER_ID owner_id,
+ ACPI_PARSE_OBJECT *origin,
+ ACPI_OPERAND_OBJECT *mth_desc,
+ ACPI_WALK_LIST *walk_list);
+
+ACPI_STATUS
+acpi_ds_obj_stack_delete_all (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_obj_stack_pop_and_delete (
+ u32 pop_count,
+ ACPI_WALK_STATE *walk_state);
+
+void
+acpi_ds_delete_walk_state (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_WALK_STATE *
+acpi_ds_pop_walk_state (
+ ACPI_WALK_LIST *walk_list);
+
+ACPI_STATUS
+acpi_ds_result_stack_pop (
+ ACPI_OPERAND_OBJECT **object,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_result_stack_push (
+ void *object,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_ds_result_stack_clear (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_WALK_STATE *
+acpi_ds_get_current_walk_state (
+ ACPI_WALK_LIST *walk_list);
+
+void
+acpi_ds_delete_walk_state_cache (
+ void);
+
+
+#endif /* _ACDISPAT_H_ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)