0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __ACSTRUCT_H__
0011 #define __ACSTRUCT_H__
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #define ACPI_NEXT_OP_DOWNWARD 1
0027 #define ACPI_NEXT_OP_UPWARD 2
0028
0029
0030
0031
0032
0033 #define ACPI_WALK_NON_METHOD 0
0034 #define ACPI_WALK_METHOD 0x01
0035 #define ACPI_WALK_METHOD_RESTART 0x02
0036
0037 struct acpi_walk_state {
0038 struct acpi_walk_state *next;
0039 u8 descriptor_type;
0040 u8 walk_type;
0041 u16 opcode;
0042 u8 next_op_info;
0043 u8 num_operands;
0044 u8 operand_index;
0045 acpi_owner_id owner_id;
0046 u8 last_predicate;
0047 u8 current_result;
0048 u8 return_used;
0049 u8 scope_depth;
0050 u8 pass_number;
0051 u8 namespace_override;
0052 u8 result_size;
0053 u8 result_count;
0054 u8 *aml;
0055 u32 arg_types;
0056 u32 method_breakpoint;
0057 u32 user_breakpoint;
0058 u32 parse_flags;
0059
0060 struct acpi_parse_state parser_state;
0061 u32 prev_arg_types;
0062 u32 arg_count;
0063 u16 method_nesting_depth;
0064 u8 method_is_nested;
0065
0066 struct acpi_namespace_node arguments[ACPI_METHOD_NUM_ARGS];
0067 struct acpi_namespace_node local_variables[ACPI_METHOD_NUM_LOCALS];
0068 union acpi_operand_object *operands[ACPI_OBJ_NUM_OPERANDS + 1];
0069 union acpi_operand_object **params;
0070
0071 u8 *aml_last_while;
0072 union acpi_operand_object **caller_return_desc;
0073 union acpi_generic_state *control_state;
0074 struct acpi_namespace_node *deferred_node;
0075 union acpi_operand_object *implicit_return_obj;
0076 struct acpi_namespace_node *method_call_node;
0077 union acpi_parse_object *method_call_op;
0078 union acpi_operand_object *method_desc;
0079 struct acpi_namespace_node *method_node;
0080 char *method_pathname;
0081 union acpi_parse_object *op;
0082 const struct acpi_opcode_info *op_info;
0083 union acpi_parse_object *origin;
0084 union acpi_operand_object *result_obj;
0085 union acpi_generic_state *results;
0086 union acpi_operand_object *return_desc;
0087 union acpi_generic_state *scope_info;
0088 union acpi_parse_object *prev_op;
0089 union acpi_parse_object *next_op;
0090 struct acpi_thread_state *thread;
0091 acpi_parse_downwards descending_callback;
0092 acpi_parse_upwards ascending_callback;
0093 };
0094
0095
0096
0097 struct acpi_init_walk_info {
0098 u32 table_index;
0099 u32 object_count;
0100 u32 method_count;
0101 u32 serial_method_count;
0102 u32 non_serial_method_count;
0103 u32 serialized_method_count;
0104 u32 device_count;
0105 u32 op_region_count;
0106 u32 field_count;
0107 u32 buffer_count;
0108 u32 package_count;
0109 u32 op_region_init;
0110 u32 field_init;
0111 u32 buffer_init;
0112 u32 package_init;
0113 acpi_owner_id owner_id;
0114 };
0115
0116 struct acpi_get_devices_info {
0117 acpi_walk_callback user_function;
0118 void *context;
0119 const char *hid;
0120 };
0121
0122 union acpi_aml_operands {
0123 union acpi_operand_object *operands[7];
0124
0125 struct {
0126 struct acpi_object_integer *type;
0127 struct acpi_object_integer *code;
0128 struct acpi_object_integer *argument;
0129
0130 } fatal;
0131
0132 struct {
0133 union acpi_operand_object *source;
0134 struct acpi_object_integer *index;
0135 union acpi_operand_object *target;
0136
0137 } index;
0138
0139 struct {
0140 union acpi_operand_object *source;
0141 struct acpi_object_integer *index;
0142 struct acpi_object_integer *length;
0143 union acpi_operand_object *target;
0144
0145 } mid;
0146 };
0147
0148
0149
0150
0151
0152 struct acpi_evaluate_info {
0153
0154
0155 struct acpi_namespace_node *prefix_node;
0156 const char *relative_pathname;
0157 union acpi_operand_object **parameters;
0158
0159 struct acpi_namespace_node *node;
0160 union acpi_operand_object *obj_desc;
0161 char *full_pathname;
0162
0163 const union acpi_predefined_info *predefined;
0164 union acpi_operand_object *return_object;
0165 union acpi_operand_object *parent_package;
0166
0167 u32 return_flags;
0168 u32 return_btype;
0169 u16 param_count;
0170 u16 node_flags;
0171 u8 pass_number;
0172 u8 return_object_type;
0173 u8 flags;
0174 };
0175
0176
0177
0178 #define ACPI_IGNORE_RETURN_VALUE 1
0179
0180
0181
0182 #define ACPI_OBJECT_REPAIRED 1
0183 #define ACPI_OBJECT_WRAPPED 2
0184
0185
0186
0187 struct acpi_device_walk_info {
0188 struct acpi_table_desc *table_desc;
0189 struct acpi_evaluate_info *evaluate_info;
0190 u32 device_count;
0191 u32 num_STA;
0192 u32 num_INI;
0193 };
0194
0195
0196
0197 struct acpi_region_walk_info {
0198 u32 debug_level;
0199 u32 count;
0200 acpi_owner_id owner_id;
0201 u8 display_type;
0202 u32 address_space_id;
0203 };
0204
0205
0206
0207 struct acpi_walk_info {
0208 u32 debug_level;
0209 u32 count;
0210 acpi_owner_id owner_id;
0211 u8 display_type;
0212 };
0213
0214
0215
0216 #define ACPI_DISPLAY_SUMMARY (u8) 0
0217 #define ACPI_DISPLAY_OBJECTS (u8) 1
0218 #define ACPI_DISPLAY_MASK (u8) 1
0219
0220 #define ACPI_DISPLAY_SHORT (u8) 2
0221
0222 #endif