acstruct.h (30082d0c) | acstruct.h (27f7c583) |
---|---|
1/****************************************************************************** 2 * 3 * Name: acstruct.h - Internal structs | 1/****************************************************************************** 2 * 3 * Name: acstruct.h - Internal structs |
4 * $Revision: 1.39 $ | 4 * $Revision: 1.44 $ |
5 * 6 *****************************************************************************/ 7 8/****************************************************************************** 9 * 10 * 1. Copyright Notice 11 * 12 * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. --- 99 unchanged lines hidden (view full) --- 112 * other governmental approval, or letter of assurance, without first obtaining 113 * such license, approval or letter. 114 * 115 *****************************************************************************/ 116 117#ifndef __ACSTRUCT_H__ 118#define __ACSTRUCT_H__ 119 | 5 * 6 *****************************************************************************/ 7 8/****************************************************************************** 9 * 10 * 1. Copyright Notice 11 * 12 * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. --- 99 unchanged lines hidden (view full) --- 112 * other governmental approval, or letter of assurance, without first obtaining 113 * such license, approval or letter. 114 * 115 *****************************************************************************/ 116 117#ifndef __ACSTRUCT_H__ 118#define __ACSTRUCT_H__ 119 |
120/* acpisrc:StructDefs -- for acpisrc conversion */ |
|
120 121/***************************************************************************** 122 * 123 * Tree walking typedefs and structs 124 * 125 ****************************************************************************/ 126 127 128/* | 121 122/***************************************************************************** 123 * 124 * Tree walking typedefs and structs 125 * 126 ****************************************************************************/ 127 128 129/* |
129 * Walk state - current state of a parse tree walk. Used for both a leisurely stroll through 130 * the tree (for whatever reason), and for control method execution. | 130 * Walk state - current state of a parse tree walk. Used for both a leisurely 131 * stroll through the tree (for whatever reason), and for control method 132 * execution. |
131 */ 132#define ACPI_NEXT_OP_DOWNWARD 1 133#define ACPI_NEXT_OP_UPWARD 2 134 | 133 */ 134#define ACPI_NEXT_OP_DOWNWARD 1 135#define ACPI_NEXT_OP_UPWARD 2 136 |
137/* 138 * Groups of definitions for WalkType used for different implementations of 139 * walkers (never simultaneously) - flags for interpreter: 140 */ |
|
135#define ACPI_WALK_NON_METHOD 0 | 141#define ACPI_WALK_NON_METHOD 0 |
136#define ACPI_WALK_METHOD 1 137#define ACPI_WALK_METHOD_RESTART 2 138#define ACPI_WALK_CONST_REQUIRED 3 139#define ACPI_WALK_CONST_OPTIONAL 4 | 142#define ACPI_WALK_METHOD 0x01 143#define ACPI_WALK_METHOD_RESTART 0x02 |
140 | 144 |
145/* Flags for iASL compiler only */ 146 147#define ACPI_WALK_CONST_REQUIRED 0x10 148#define ACPI_WALK_CONST_OPTIONAL 0x20 149 150 |
|
141typedef struct acpi_walk_state 142{ | 151typedef struct acpi_walk_state 152{ |
143 UINT8 DataType; /* To differentiate various internal objs MUST BE FIRST!*/ 144 UINT8 WalkType; 145 ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */ 146 BOOLEAN LastPredicate; /* Result of last predicate */ 147 UINT8 CurrentResult; /* */ 148 UINT8 NextOpInfo; /* Info about NextOp */ 149 UINT8 NumOperands; /* Stack pointer for Operands[] array */ 150 UINT8 ReturnUsed; 151 UINT16 Opcode; /* Current AML opcode */ 152 UINT8 ScopeDepth; 153 UINT8 PassNumber; /* Parse pass during table load */ 154 UINT32 ArgCount; /* push for fixed or var args */ 155 UINT32 AmlOffset; 156 UINT32 ArgTypes; 157 UINT32 MethodBreakpoint; /* For single stepping */ 158 UINT32 UserBreakpoint; /* User AML breakpoint */ 159 UINT32 ParseFlags; 160 UINT32 PrevArgTypes; | 153 struct acpi_walk_state *Next; /* Next WalkState in list */ 154 UINT8 DescriptorType; /* To differentiate various internal objs */ 155 UINT8 WalkType; 156 UINT16 Opcode; /* Current AML opcode */ 157 UINT8 NextOpInfo; /* Info about NextOp */ 158 UINT8 NumOperands; /* Stack pointer for Operands[] array */ 159 ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */ 160 BOOLEAN LastPredicate; /* Result of last predicate */ 161 UINT8 CurrentResult; 162 UINT8 ReturnUsed; 163 UINT8 ScopeDepth; 164 UINT8 PassNumber; /* Parse pass during table load */ 165 UINT32 AmlOffset; 166 UINT32 ArgTypes; 167 UINT32 MethodBreakpoint; /* For single stepping */ 168 UINT32 UserBreakpoint; /* User AML breakpoint */ 169 UINT32 ParseFlags; |
161 | 170 |
162 UINT8 *AmlLastWhile; 163 struct acpi_namespace_node Arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */ 164 union acpi_operand_object **CallerReturnDesc; 165 ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */ 166 struct acpi_namespace_node *DeferredNode; /* Used when executing deferred opcodes */ 167 struct acpi_gpe_event_info *GpeEventInfo; /* Info for GPE (_Lxx/_Exx methods only */ 168 union acpi_operand_object *ImplicitReturnObj; 169 struct acpi_namespace_node LocalVariables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */ 170 struct acpi_namespace_node *MethodCallNode; /* Called method Node*/ 171 ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */ 172 union acpi_operand_object *MethodDesc; /* Method descriptor if running a method */ 173 struct acpi_namespace_node *MethodNode; /* Method node if running a method. */ 174 ACPI_PARSE_OBJECT *Op; /* Current parser op */ 175 union acpi_operand_object *Operands[ACPI_OBJ_NUM_OPERANDS+1]; /* Operands passed to the interpreter (+1 for NULL terminator) */ 176 const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */ 177 ACPI_PARSE_OBJECT *Origin; /* Start of walk [Obsolete] */ 178 union acpi_operand_object **Params; 179 ACPI_PARSE_STATE ParserState; /* Current state of parser */ 180 union acpi_operand_object *ResultObj; 181 ACPI_GENERIC_STATE *Results; /* Stack of accumulated results */ 182 union acpi_operand_object *ReturnDesc; /* Return object, if any */ 183 ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */ | 171 ACPI_PARSE_STATE ParserState; /* Current state of parser */ 172 UINT32 PrevArgTypes; 173 UINT32 ArgCount; /* push for fixed or var args */ |
184 | 174 |
185 ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */ 186 ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */ 187 ACPI_PARSE_DOWNWARDS DescendingCallback; 188 ACPI_PARSE_UPWARDS AscendingCallback; 189 ACPI_THREAD_STATE *Thread; 190 struct acpi_walk_state *Next; /* Next WalkState in list */ | 175 struct acpi_namespace_node Arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */ 176 struct acpi_namespace_node LocalVariables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */ 177 union acpi_operand_object *Operands[ACPI_OBJ_NUM_OPERANDS + 1]; /* Operands passed to the interpreter (+1 for NULL terminator) */ 178 union acpi_operand_object **Params; |
191 | 179 |
180 UINT8 *AmlLastWhile; 181 union acpi_operand_object **CallerReturnDesc; 182 ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */ 183 struct acpi_namespace_node *DeferredNode; /* Used when executing deferred opcodes */ 184 struct acpi_gpe_event_info *GpeEventInfo; /* Info for GPE (_Lxx/_Exx methods only */ 185 union acpi_operand_object *ImplicitReturnObj; 186 struct acpi_namespace_node *MethodCallNode; /* Called method Node*/ 187 ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */ 188 union acpi_operand_object *MethodDesc; /* Method descriptor if running a method */ 189 struct acpi_namespace_node *MethodNode; /* Method node if running a method. */ 190 ACPI_PARSE_OBJECT *Op; /* Current parser op */ 191 const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */ 192 ACPI_PARSE_OBJECT *Origin; /* Start of walk [Obsolete] */ 193 union acpi_operand_object *ResultObj; 194 ACPI_GENERIC_STATE *Results; /* Stack of accumulated results */ 195 union acpi_operand_object *ReturnDesc; /* Return object, if any */ 196 ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */ 197 ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */ 198 ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */ 199 ACPI_THREAD_STATE *Thread; 200 ACPI_PARSE_DOWNWARDS DescendingCallback; 201 ACPI_PARSE_UPWARDS AscendingCallback; 202 |
|
192} ACPI_WALK_STATE; 193 194 195/* Info used by AcpiPsInitObjects */ 196 197typedef struct acpi_init_walk_info 198{ | 203} ACPI_WALK_STATE; 204 205 206/* Info used by AcpiPsInitObjects */ 207 208typedef struct acpi_init_walk_info 209{ |
199 UINT16 MethodCount; 200 UINT16 DeviceCount; 201 UINT16 OpRegionCount; 202 UINT16 FieldCount; 203 UINT16 BufferCount; 204 UINT16 PackageCount; 205 UINT16 OpRegionInit; 206 UINT16 FieldInit; 207 UINT16 BufferInit; 208 UINT16 PackageInit; 209 UINT16 ObjectCount; 210 ACPI_TABLE_DESC *TableDesc; | 210 UINT16 MethodCount; 211 UINT16 DeviceCount; 212 UINT16 OpRegionCount; 213 UINT16 FieldCount; 214 UINT16 BufferCount; 215 UINT16 PackageCount; 216 UINT16 OpRegionInit; 217 UINT16 FieldInit; 218 UINT16 BufferInit; 219 UINT16 PackageInit; 220 UINT16 ObjectCount; 221 ACPI_TABLE_DESC *TableDesc; |
211 212} ACPI_INIT_WALK_INFO; 213 214 | 222 223} ACPI_INIT_WALK_INFO; 224 225 |
215/* Info used by AcpiNsInitializeDevices */ 216 217typedef struct acpi_device_walk_info 218{ 219 UINT16 DeviceCount; 220 UINT16 Num_STA; 221 UINT16 Num_INI; 222 ACPI_TABLE_DESC *TableDesc; 223 224} ACPI_DEVICE_WALK_INFO; 225 226 227/* TBD: [Restructure] Merge with struct above */ 228 229typedef struct acpi_walk_info 230{ 231 UINT32 DebugLevel; 232 UINT32 Count; 233 ACPI_OWNER_ID OwnerId; 234 UINT8 DisplayType; 235 236} ACPI_WALK_INFO; 237 238/* Display Types */ 239 240#define ACPI_DISPLAY_SUMMARY (UINT8) 0 241#define ACPI_DISPLAY_OBJECTS (UINT8) 1 242#define ACPI_DISPLAY_MASK (UINT8) 1 243 244#define ACPI_DISPLAY_SHORT (UINT8) 2 245 | |
246typedef struct acpi_get_devices_info 247{ | 226typedef struct acpi_get_devices_info 227{ |
248 ACPI_WALK_CALLBACK UserFunction; 249 void *Context; 250 char *Hid; | 228 ACPI_WALK_CALLBACK UserFunction; 229 void *Context; 230 char *Hid; |
251 252} ACPI_GET_DEVICES_INFO; 253 254 255typedef union acpi_aml_operands 256{ | 231 232} ACPI_GET_DEVICES_INFO; 233 234 235typedef union acpi_aml_operands 236{ |
257 ACPI_OPERAND_OBJECT *Operands[7]; | 237 ACPI_OPERAND_OBJECT *Operands[7]; |
258 259 struct 260 { | 238 239 struct 240 { |
261 ACPI_OBJECT_INTEGER *Type; 262 ACPI_OBJECT_INTEGER *Code; 263 ACPI_OBJECT_INTEGER *Argument; | 241 ACPI_OBJECT_INTEGER *Type; 242 ACPI_OBJECT_INTEGER *Code; 243 ACPI_OBJECT_INTEGER *Argument; |
264 265 } Fatal; 266 267 struct 268 { | 244 245 } Fatal; 246 247 struct 248 { |
269 ACPI_OPERAND_OBJECT *Source; 270 ACPI_OBJECT_INTEGER *Index; 271 ACPI_OPERAND_OBJECT *Target; | 249 ACPI_OPERAND_OBJECT *Source; 250 ACPI_OBJECT_INTEGER *Index; 251 ACPI_OPERAND_OBJECT *Target; |
272 273 } Index; 274 275 struct 276 { | 252 253 } Index; 254 255 struct 256 { |
277 ACPI_OPERAND_OBJECT *Source; 278 ACPI_OBJECT_INTEGER *Index; 279 ACPI_OBJECT_INTEGER *Length; 280 ACPI_OPERAND_OBJECT *Target; | 257 ACPI_OPERAND_OBJECT *Source; 258 ACPI_OBJECT_INTEGER *Index; 259 ACPI_OBJECT_INTEGER *Length; 260 ACPI_OPERAND_OBJECT *Target; |
281 282 } Mid; 283 284} ACPI_AML_OPERANDS; 285 286 | 261 262 } Mid; 263 264} ACPI_AML_OPERANDS; 265 266 |
287/* Internal method parameter list */ 288 289typedef struct acpi_parameter_info | 267/* 268 * Structure used to pass object evaluation parameters. 269 * Purpose is to reduce CPU stack use. 270 */ 271typedef struct acpi_evaluate_info |
290{ | 272{ |
291 ACPI_NAMESPACE_NODE *Node; 292 ACPI_OPERAND_OBJECT *ObjDesc; 293 ACPI_OPERAND_OBJECT **Parameters; 294 ACPI_OPERAND_OBJECT *ReturnObject; 295 UINT8 PassNumber; 296 UINT8 ParameterType; 297 UINT8 ReturnObjectType; | 273 ACPI_NAMESPACE_NODE *PrefixNode; 274 char *Pathname; 275 ACPI_OPERAND_OBJECT *ObjDesc; 276 ACPI_OPERAND_OBJECT **Parameters; 277 ACPI_NAMESPACE_NODE *ResolvedNode; 278 ACPI_OPERAND_OBJECT *ReturnObject; 279 UINT8 PassNumber; 280 UINT8 ParameterType; 281 UINT8 ReturnObjectType; 282 UINT8 Flags; |
298 | 283 |
299} ACPI_PARAMETER_INFO; | 284} ACPI_EVALUATE_INFO; |
300 301/* Types for ParameterType above */ 302 303#define ACPI_PARAM_ARGS 0 304#define ACPI_PARAM_GPE 1 305 | 285 286/* Types for ParameterType above */ 287 288#define ACPI_PARAM_ARGS 0 289#define ACPI_PARAM_GPE 1 290 |
291/* Values for Flags above */ |
|
306 | 292 |
293#define ACPI_IGNORE_RETURN_VALUE 1 294 295 296/* Info used by AcpiNsInitializeDevices */ 297 298typedef struct acpi_device_walk_info 299{ 300 UINT16 DeviceCount; 301 UINT16 Num_STA; 302 UINT16 Num_INI; 303 ACPI_TABLE_DESC *TableDesc; 304 ACPI_EVALUATE_INFO *EvaluateInfo; 305 306} ACPI_DEVICE_WALK_INFO; 307 308 309/* TBD: [Restructure] Merge with struct above */ 310 311typedef struct acpi_walk_info 312{ 313 UINT32 DebugLevel; 314 UINT32 Count; 315 ACPI_OWNER_ID OwnerId; 316 UINT8 DisplayType; 317 318} ACPI_WALK_INFO; 319 320/* Display Types */ 321 322#define ACPI_DISPLAY_SUMMARY (UINT8) 0 323#define ACPI_DISPLAY_OBJECTS (UINT8) 1 324#define ACPI_DISPLAY_MASK (UINT8) 1 325 326#define ACPI_DISPLAY_SHORT (UINT8) 2 327 328 |
|
307#endif | 329#endif |