patch-2.4.0-test9 linux/drivers/acpi/include/acinterp.h
Next file: linux/drivers/acpi/include/aclocal.h
Previous file: linux/drivers/acpi/include/achware.h
Back to the patch index
Back to the overall index
- Lines: 527
- Date:
Fri Sep 15 14:30:30 2000
- Orig file:
v2.4.0-test8/linux/drivers/acpi/include/acinterp.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.4.0-test8/linux/drivers/acpi/include/acinterp.h linux/drivers/acpi/include/acinterp.h
@@ -0,0 +1,526 @@
+/******************************************************************************
+ *
+ * Name: acinterp.h - Interpreter subcomponent prototypes and defines
+ * $Revision: 79 $
+ *
+ *****************************************************************************/
+
+/*
+ * 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 __ACINTERP_H__
+#define __ACINTERP_H__
+
+
+#define WALK_OPERANDS &(walk_state->operands [walk_state->num_operands -1])
+
+
+/* Interpreter constants */
+
+#define AML_END_OF_BLOCK -1
+#define PUSH_PKG_LENGTH 1
+#define DO_NOT_PUSH_PKG_LENGTH 0
+
+
+#define STACK_TOP 0
+#define STACK_BOTTOM (u32) -1
+
+/* Constants for global "When_to_parse_methods" */
+
+#define METHOD_PARSE_AT_INIT 0x0
+#define METHOD_PARSE_JUST_IN_TIME 0x1
+#define METHOD_DELETE_AT_COMPLETION 0x2
+
+
+ACPI_STATUS
+acpi_aml_resolve_operands (
+ u16 opcode,
+ ACPI_OPERAND_OBJECT **stack_ptr,
+ ACPI_WALK_STATE *walk_state);
+
+
+/*
+ * amxface - External interpreter interfaces
+ */
+
+ACPI_STATUS
+acpi_aml_load_table (
+ ACPI_TABLE_TYPE table_id);
+
+ACPI_STATUS
+acpi_aml_execute_method (
+ ACPI_NAMESPACE_NODE *method_node,
+ ACPI_OPERAND_OBJECT **params,
+ ACPI_OPERAND_OBJECT **return_obj_desc);
+
+
+/*
+ * amfield - ACPI AML (p-code) execution - field manipulation
+ */
+
+
+ACPI_STATUS
+acpi_aml_read_field (
+ ACPI_OPERAND_OBJECT *obj_desc,
+ void *buffer,
+ u32 buffer_length,
+ u32 byte_length,
+ u32 datum_length,
+ u32 bit_granularity,
+ u32 byte_granularity);
+
+ACPI_STATUS
+acpi_aml_write_field (
+ ACPI_OPERAND_OBJECT *obj_desc,
+ void *buffer,
+ u32 buffer_length,
+ u32 byte_length,
+ u32 datum_length,
+ u32 bit_granularity,
+ u32 byte_granularity);
+
+ACPI_STATUS
+acpi_aml_setup_field (
+ ACPI_OPERAND_OBJECT *obj_desc,
+ ACPI_OPERAND_OBJECT *rgn_desc,
+ u32 field_bit_width);
+
+ACPI_STATUS
+acpi_aml_read_field_data (
+ ACPI_OPERAND_OBJECT *obj_desc,
+ u32 field_byte_offset,
+ u32 field_bit_width,
+ u32 *value);
+
+ACPI_STATUS
+acpi_aml_access_named_field (
+ u32 mode,
+ ACPI_HANDLE named_field,
+ void *buffer,
+ u32 length);
+
+/*
+ * ammisc - ACPI AML (p-code) execution - specific opcodes
+ */
+
+ACPI_STATUS
+acpi_aml_exec_create_field (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_reconfiguration (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_fatal (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_index (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+ACPI_STATUS
+acpi_aml_exec_match (
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+ACPI_STATUS
+acpi_aml_exec_create_mutex (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_create_processor (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_HANDLE processor_nTE);
+
+ACPI_STATUS
+acpi_aml_exec_create_power_resource (
+ ACPI_PARSE_OBJECT *op,
+ ACPI_HANDLE processor_nTE);
+
+ACPI_STATUS
+acpi_aml_exec_create_region (
+ u8 *aml_ptr,
+ u32 acpi_aml_length,
+ u32 region_space,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_create_event (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_create_alias (
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_create_method (
+ u8 *aml_ptr,
+ u32 acpi_aml_length,
+ u32 method_flags,
+ ACPI_HANDLE method);
+
+
+/*
+ * amprep - ACPI AML (p-code) execution - prep utilities
+ */
+
+ACPI_STATUS
+acpi_aml_prep_def_field_value (
+ ACPI_NAMESPACE_NODE *node,
+ ACPI_HANDLE region,
+ u8 field_flags,
+ u8 field_attribute,
+ u32 field_position,
+ u32 field_length);
+
+ACPI_STATUS
+acpi_aml_prep_bank_field_value (
+ ACPI_NAMESPACE_NODE *node,
+ ACPI_HANDLE region,
+ ACPI_HANDLE bank_reg,
+ u32 bank_val,
+ u8 field_flags,
+ u8 field_attribute,
+ u32 field_position,
+ u32 field_length);
+
+ACPI_STATUS
+acpi_aml_prep_index_field_value (
+ ACPI_NAMESPACE_NODE *node,
+ ACPI_HANDLE index_reg,
+ ACPI_HANDLE data_reg,
+ u8 field_flags,
+ u8 field_attribute,
+ u32 field_position,
+ u32 field_length);
+
+
+/*
+ * amsystem - Interface to OS services
+ */
+
+u16
+acpi_aml_system_thread_id (
+ void);
+
+ACPI_STATUS
+acpi_aml_system_do_notify_op (
+ ACPI_OPERAND_OBJECT *value,
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+void
+acpi_aml_system_do_suspend(
+ u32 time);
+
+void
+acpi_aml_system_do_stall (
+ u32 time);
+
+ACPI_STATUS
+acpi_aml_system_acquire_mutex(
+ ACPI_OPERAND_OBJECT *time,
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+ACPI_STATUS
+acpi_aml_system_release_mutex(
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+ACPI_STATUS
+acpi_aml_system_signal_event(
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+ACPI_STATUS
+acpi_aml_system_wait_event(
+ ACPI_OPERAND_OBJECT *time,
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+ACPI_STATUS
+acpi_aml_system_reset_event(
+ ACPI_OPERAND_OBJECT *obj_desc);
+
+ACPI_STATUS
+acpi_aml_system_wait_semaphore (
+ ACPI_HANDLE semaphore,
+ u32 timeout);
+
+
+/*
+ * ammonadic - ACPI AML (p-code) execution, monadic operators
+ */
+
+ACPI_STATUS
+acpi_aml_exec_monadic1 (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_monadic2 (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+ACPI_STATUS
+acpi_aml_exec_monadic2_r (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+
+/*
+ * amdyadic - ACPI AML (p-code) execution, dyadic operators
+ */
+
+ACPI_STATUS
+acpi_aml_exec_dyadic1 (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_exec_dyadic2 (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+ACPI_STATUS
+acpi_aml_exec_dyadic2_r (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+ACPI_STATUS
+acpi_aml_exec_dyadic2_s (
+ u16 opcode,
+ ACPI_WALK_STATE *walk_state,
+ ACPI_OPERAND_OBJECT **return_desc);
+
+
+/*
+ * amresolv - Object resolution and get value functions
+ */
+
+ACPI_STATUS
+acpi_aml_resolve_to_value (
+ ACPI_OPERAND_OBJECT **stack_ptr,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_resolve_node_to_value (
+ ACPI_NAMESPACE_NODE **stack_ptr);
+
+ACPI_STATUS
+acpi_aml_resolve_object_to_value (
+ ACPI_OPERAND_OBJECT **stack_ptr,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_get_field_unit_value (
+ ACPI_OPERAND_OBJECT *field_desc,
+ ACPI_OPERAND_OBJECT *result_desc);
+
+
+/*
+ * amdump - Scanner debug output routines
+ */
+
+void
+acpi_aml_show_hex_value (
+ u32 byte_count,
+ u8 *aml_ptr,
+ u32 lead_space);
+
+
+ACPI_STATUS
+acpi_aml_dump_operand (
+ ACPI_OPERAND_OBJECT *entry_desc);
+
+void
+acpi_aml_dump_operands (
+ ACPI_OPERAND_OBJECT **operands,
+ OPERATING_MODE interpreter_mode,
+ NATIVE_CHAR *ident,
+ u32 num_levels,
+ NATIVE_CHAR *note,
+ NATIVE_CHAR *module_name,
+ u32 line_number);
+
+void
+acpi_aml_dump_object_descriptor (
+ ACPI_OPERAND_OBJECT *object,
+ u32 flags);
+
+
+void
+acpi_aml_dump_node (
+ ACPI_NAMESPACE_NODE *node,
+ u32 flags);
+
+
+/*
+ * amnames - interpreter/scanner name load/execute
+ */
+
+NATIVE_CHAR *
+acpi_aml_allocate_name_string (
+ u32 prefix_count,
+ u32 num_name_segs);
+
+u32
+acpi_aml_good_char (
+ u32 character);
+
+ACPI_STATUS
+acpi_aml_exec_name_segment (
+ u8 **in_aml_address,
+ NATIVE_CHAR *name_string);
+
+ACPI_STATUS
+acpi_aml_get_name_string (
+ OBJECT_TYPE_INTERNAL data_type,
+ u8 *in_aml_address,
+ NATIVE_CHAR **out_name_string,
+ u32 *out_name_length);
+
+ACPI_STATUS
+acpi_aml_do_name (
+ ACPI_OBJECT_TYPE data_type,
+ OPERATING_MODE load_exec_mode);
+
+
+/*
+ * amstore - Object store support
+ */
+
+ACPI_STATUS
+acpi_aml_exec_store (
+ ACPI_OPERAND_OBJECT *val_desc,
+ ACPI_OPERAND_OBJECT *dest_desc,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_store_object_to_object (
+ ACPI_OPERAND_OBJECT *val_desc,
+ ACPI_OPERAND_OBJECT *dest_desc,
+ ACPI_WALK_STATE *walk_state);
+
+ACPI_STATUS
+acpi_aml_store_object_to_node (
+ ACPI_OPERAND_OBJECT *val_desc,
+ ACPI_NAMESPACE_NODE *node,
+ ACPI_WALK_STATE *walk_state);
+
+
+/*
+ * amutils - interpreter/scanner utilities
+ */
+
+void
+acpi_aml_enter_interpreter (
+ void);
+
+void
+acpi_aml_exit_interpreter (
+ void);
+
+u8
+acpi_aml_validate_object_type (
+ ACPI_OBJECT_TYPE type);
+
+u8
+acpi_aml_acquire_global_lock (
+ u32 rule);
+
+ACPI_STATUS
+acpi_aml_release_global_lock (
+ u8 locked);
+
+u32
+acpi_aml_buf_seq (
+ void);
+
+u32
+acpi_aml_digits_needed (
+ u32 value,
+ u32 base);
+
+ACPI_STATUS
+acpi_aml_eisa_id_to_string (
+ u32 numeric_id,
+ NATIVE_CHAR *out_string);
+
+ACPI_STATUS
+acpi_aml_build_copy_internal_package_object (
+ ACPI_OPERAND_OBJECT *source_obj,
+ ACPI_OPERAND_OBJECT *dest_obj,
+ ACPI_WALK_STATE *walk_state);
+
+
+/*
+ * amregion - default Op_region handlers
+ */
+
+ACPI_STATUS
+acpi_aml_system_memory_space_handler (
+ u32 function,
+ u32 address,
+ u32 bit_width,
+ u32 *value,
+ void *handler_context,
+ void *region_context);
+
+ACPI_STATUS
+acpi_aml_system_io_space_handler (
+ u32 function,
+ u32 address,
+ u32 bit_width,
+ u32 *value,
+ void *handler_context,
+ void *region_context);
+
+ACPI_STATUS
+acpi_aml_pci_config_space_handler (
+ u32 function,
+ u32 address,
+ u32 bit_width,
+ u32 *value,
+ void *handler_context,
+ void *region_context);
+
+ACPI_STATUS
+acpi_aml_embedded_controller_space_handler (
+ u32 function,
+ u32 address,
+ u32 bit_width,
+ u32 *value,
+ void *handler_context,
+ void *region_context);
+
+ACPI_STATUS
+acpi_aml_sm_bus_space_handler (
+ u32 function,
+ u32 address,
+ u32 bit_width,
+ u32 *value,
+ void *handler_context,
+ void *region_context);
+
+
+#endif /* __INTERP_H__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)