acobject.h (30082d0c) | acobject.h (27f7c583) |
---|---|
1 2/****************************************************************************** 3 * 4 * Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only) | 1 2/****************************************************************************** 3 * 4 * Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only) |
5 * $Revision: 1.133 $ | 5 * $Revision: 1.139 $ |
6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * 13 * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. --- 99 unchanged lines hidden (view full) --- 113 * other governmental approval, or letter of assurance, without first obtaining 114 * such license, approval or letter. 115 * 116 *****************************************************************************/ 117 118#ifndef _ACOBJECT_H 119#define _ACOBJECT_H 120 | 6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * 13 * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. --- 99 unchanged lines hidden (view full) --- 113 * other governmental approval, or letter of assurance, without first obtaining 114 * such license, approval or letter. 115 * 116 *****************************************************************************/ 117 118#ifndef _ACOBJECT_H 119#define _ACOBJECT_H 120 |
121/* acpisrc:StructDefs -- for acpisrc conversion */ |
|
121 | 122 |
123 |
|
122/* | 124/* |
123 * The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher | 125 * The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher |
124 * to the interpreter, and to keep track of the various handlers such as | 126 * to the interpreter, and to keep track of the various handlers such as |
125 * address space handlers and notify handlers. The object is a constant | 127 * address space handlers and notify handlers. The object is a constant |
126 * size in order to allow it to be cached and reused. 127 */ 128 129/******************************************************************************* 130 * 131 * Common Descriptors 132 * 133 ******************************************************************************/ 134 135/* 136 * Common area for all objects. 137 * | 128 * size in order to allow it to be cached and reused. 129 */ 130 131/******************************************************************************* 132 * 133 * Common Descriptors 134 * 135 ******************************************************************************/ 136 137/* 138 * Common area for all objects. 139 * |
138 * DataType is used to differentiate between internal descriptors, and MUST 139 * be the first byte in this structure. | 140 * DescriptorType is used to differentiate between internal descriptors, and 141 * must be in the same place across all descriptors 142 * 143 * Note: The DescriptorType and Type fields must appear in the identical 144 * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT 145 * structures. |
140 */ | 146 */ |
141#define ACPI_OBJECT_COMMON_HEADER /* SIZE/ALIGNMENT: 32 bits, one ptr plus trailing 8-bit flag */\ 142 UINT8 Descriptor; /* To differentiate various internal objs */\ | 147#define ACPI_OBJECT_COMMON_HEADER \ 148 union acpi_operand_object *NextObject; /* Objects linked to parent NS node */\ 149 UINT8 DescriptorType; /* To differentiate various internal objs */\ |
143 UINT8 Type; /* ACPI_OBJECT_TYPE */\ 144 UINT16 ReferenceCount; /* For object deletion management */\ | 150 UINT8 Type; /* ACPI_OBJECT_TYPE */\ 151 UINT16 ReferenceCount; /* For object deletion management */\ |
145 union acpi_operand_object *NextObject; /* Objects linked to parent NS node */\ | |
146 UINT8 Flags; | 152 UINT8 Flags; |
153 /* 154 * Note: There are 3 bytes available here before the 155 * next natural alignment boundary (for both 32/64 cases) 156 */ |
|
147 | 157 |
148/* Values for flag byte above */ | 158/* Values for Flag byte above */ |
149 150#define AOPOBJ_AML_CONSTANT 0x01 151#define AOPOBJ_STATIC_POINTER 0x02 152#define AOPOBJ_DATA_VALID 0x04 153#define AOPOBJ_OBJECT_INITIALIZED 0x08 154#define AOPOBJ_SETUP_COMPLETE 0x10 155#define AOPOBJ_SINGLE_DATUM 0x20 | 159 160#define AOPOBJ_AML_CONSTANT 0x01 161#define AOPOBJ_STATIC_POINTER 0x02 162#define AOPOBJ_DATA_VALID 0x04 163#define AOPOBJ_OBJECT_INITIALIZED 0x08 164#define AOPOBJ_SETUP_COMPLETE 0x10 165#define AOPOBJ_SINGLE_DATUM 0x20 |
166#define AOPOBJ_INVALID 0x40 /* Used if host OS won't allow an OpRegion address */ |
|
156 157 | 167 168 |
158/* 159 * Common bitfield for the field objects 160 * "Field Datum" -- a datum from the actual field object 161 * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field 162 */ 163#define ACPI_COMMON_FIELD_INFO /* SIZE/ALIGNMENT: 24 bits + three 32-bit values */\ 164 UINT8 FieldFlags; /* Access, update, and lock bits */\ 165 UINT8 Attribute; /* From AccessAs keyword */\ 166 UINT8 AccessByteWidth; /* Read/Write size in bytes */\ 167 UINT32 BitLength; /* Length of field in bits */\ 168 UINT32 BaseByteOffset; /* Byte offset within containing object */\ 169 UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\ 170 UINT8 AccessBitWidth; /* Read/Write size in bits (8-64) */\ 171 UINT32 Value; /* Value to store into the Bank or Index register */\ 172 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ 173 174 175/* 176 * Fields common to both Strings and Buffers 177 */ 178#define ACPI_COMMON_BUFFER_INFO \ 179 UINT32 Length; 180 181 182/* 183 * Common fields for objects that support ASL notifications 184 */ 185#define ACPI_COMMON_NOTIFY_INFO \ 186 union acpi_operand_object *SystemNotify; /* Handler for system notifies */\ 187 union acpi_operand_object *DeviceNotify; /* Handler for driver notifies */\ 188 union acpi_operand_object *Handler; /* Handler for Address space */ 189 190 | |
191/****************************************************************************** 192 * 193 * Basic data types 194 * 195 *****************************************************************************/ 196 197typedef struct acpi_object_common 198{ --- 7 unchanged lines hidden (view full) --- 206 ACPI_OBJECT_COMMON_HEADER 207 ACPI_INTEGER Value; 208 209} ACPI_OBJECT_INTEGER; 210 211 212/* 213 * Note: The String and Buffer object must be identical through the Pointer | 169/****************************************************************************** 170 * 171 * Basic data types 172 * 173 *****************************************************************************/ 174 175typedef struct acpi_object_common 176{ --- 7 unchanged lines hidden (view full) --- 184 ACPI_OBJECT_COMMON_HEADER 185 ACPI_INTEGER Value; 186 187} ACPI_OBJECT_INTEGER; 188 189 190/* 191 * Note: The String and Buffer object must be identical through the Pointer |
214 * element. There is code that depends on this. | 192 * and length elements. There is code that depends on this. 193 * 194 * Fields common to both Strings and Buffers |
215 */ | 195 */ |
196#define ACPI_COMMON_BUFFER_INFO(_Type) \ 197 _Type *Pointer; \ 198 UINT32 Length; 199 200 |
|
216typedef struct acpi_object_string /* Null terminated, ASCII characters only */ 217{ 218 ACPI_OBJECT_COMMON_HEADER | 201typedef struct acpi_object_string /* Null terminated, ASCII characters only */ 202{ 203 ACPI_OBJECT_COMMON_HEADER |
219 ACPI_COMMON_BUFFER_INFO 220 char *Pointer; /* String in AML stream or allocated string */ | 204 ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */ |
221 222} ACPI_OBJECT_STRING; 223 224 225typedef struct acpi_object_buffer 226{ 227 ACPI_OBJECT_COMMON_HEADER | 205 206} ACPI_OBJECT_STRING; 207 208 209typedef struct acpi_object_buffer 210{ 211 ACPI_OBJECT_COMMON_HEADER |
228 ACPI_COMMON_BUFFER_INFO 229 UINT8 *Pointer; /* Buffer in AML stream or allocated buffer */ 230 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ 231 UINT8 *AmlStart; | 212 ACPI_COMMON_BUFFER_INFO (UINT8) /* Buffer in AML stream or allocated buffer */ |
232 UINT32 AmlLength; | 213 UINT32 AmlLength; |
214 UINT8 *AmlStart; 215 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ |
|
233 234} ACPI_OBJECT_BUFFER; 235 236 237typedef struct acpi_object_package 238{ 239 ACPI_OBJECT_COMMON_HEADER | 216 217} ACPI_OBJECT_BUFFER; 218 219 220typedef struct acpi_object_package 221{ 222 ACPI_OBJECT_COMMON_HEADER |
240 241 UINT32 Count; /* # of elements in package */ 242 UINT32 AmlLength; 243 UINT8 *AmlStart; | |
244 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ 245 union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */ | 223 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ 224 union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */ |
225 UINT8 *AmlStart; 226 UINT32 AmlLength; 227 UINT32 Count; /* # of elements in package */ |
|
246 247} ACPI_OBJECT_PACKAGE; 248 249 250/****************************************************************************** 251 * 252 * Complex data types 253 * 254 *****************************************************************************/ 255 256typedef struct acpi_object_event 257{ 258 ACPI_OBJECT_COMMON_HEADER | 228 229} ACPI_OBJECT_PACKAGE; 230 231 232/****************************************************************************** 233 * 234 * Complex data types 235 * 236 *****************************************************************************/ 237 238typedef struct acpi_object_event 239{ 240 ACPI_OBJECT_COMMON_HEADER |
259 void *Semaphore; | 241 ACPI_SEMAPHORE OsSemaphore; /* Actual OS synchronization object */ |
260 261} ACPI_OBJECT_EVENT; 262 263 | 242 243} ACPI_OBJECT_EVENT; 244 245 |
264#define ACPI_INFINITE_CONCURRENCY 0xFF 265 266typedef 267ACPI_STATUS (*ACPI_INTERNAL_METHOD) ( 268 struct acpi_walk_state *WalkState); 269 270typedef struct acpi_object_method 271{ 272 ACPI_OBJECT_COMMON_HEADER 273 UINT8 MethodFlags; 274 UINT8 ParamCount; 275 UINT32 AmlLength; 276 void *Semaphore; 277 UINT8 *AmlStart; 278 ACPI_INTERNAL_METHOD Implementation; 279 UINT8 Concurrency; 280 UINT8 ThreadCount; 281 ACPI_OWNER_ID OwnerId; 282 283} ACPI_OBJECT_METHOD; 284 285 | |
286typedef struct acpi_object_mutex 287{ 288 ACPI_OBJECT_COMMON_HEADER 289 UINT8 SyncLevel; /* 0-15, specified in Mutex() call */ 290 UINT16 AcquisitionDepth; /* Allow multiple Acquires, same thread */ 291 struct acpi_thread_state *OwnerThread; /* Current owner of the mutex */ | 246typedef struct acpi_object_mutex 247{ 248 ACPI_OBJECT_COMMON_HEADER 249 UINT8 SyncLevel; /* 0-15, specified in Mutex() call */ 250 UINT16 AcquisitionDepth; /* Allow multiple Acquires, same thread */ 251 struct acpi_thread_state *OwnerThread; /* Current owner of the mutex */ |
292 void *Semaphore; /* Actual OS synchronization object */ | 252 ACPI_MUTEX OsMutex; /* Actual OS synchronization object */ |
293 union acpi_operand_object *Prev; /* Link for list of acquired mutexes */ 294 union acpi_operand_object *Next; /* Link for list of acquired mutexes */ 295 ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ 296 UINT8 OriginalSyncLevel; /* Owner's original sync level (0-15) */ 297 298} ACPI_OBJECT_MUTEX; 299 300 301typedef struct acpi_object_region 302{ 303 ACPI_OBJECT_COMMON_HEADER | 253 union acpi_operand_object *Prev; /* Link for list of acquired mutexes */ 254 union acpi_operand_object *Next; /* Link for list of acquired mutexes */ 255 ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ 256 UINT8 OriginalSyncLevel; /* Owner's original sync level (0-15) */ 257 258} ACPI_OBJECT_MUTEX; 259 260 261typedef struct acpi_object_region 262{ 263 ACPI_OBJECT_COMMON_HEADER |
304 | |
305 UINT8 SpaceId; | 264 UINT8 SpaceId; |
306 union acpi_operand_object *Handler; /* Handler for region access */ | |
307 ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ | 265 ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ |
266 union acpi_operand_object *Handler; /* Handler for region access */ |
|
308 union acpi_operand_object *Next; | 267 union acpi_operand_object *Next; |
309 UINT32 Length; | |
310 ACPI_PHYSICAL_ADDRESS Address; | 268 ACPI_PHYSICAL_ADDRESS Address; |
269 UINT32 Length; |
|
311 312} ACPI_OBJECT_REGION; 313 314 | 270 271} ACPI_OBJECT_REGION; 272 273 |
274typedef struct acpi_object_method 275{ 276 ACPI_OBJECT_COMMON_HEADER 277 UINT8 MethodFlags; 278 UINT8 ParamCount; 279 UINT8 SyncLevel; 280 union acpi_operand_object *Mutex; 281 UINT8 *AmlStart; 282 ACPI_INTERNAL_METHOD Implementation; 283 UINT32 AmlLength; 284 UINT8 ThreadCount; 285 ACPI_OWNER_ID OwnerId; 286 287} ACPI_OBJECT_METHOD; 288 289 |
|
315/****************************************************************************** 316 * 317 * Objects that can be notified. All share a common NotifyInfo area. 318 * 319 *****************************************************************************/ 320 | 290/****************************************************************************** 291 * 292 * Objects that can be notified. All share a common NotifyInfo area. 293 * 294 *****************************************************************************/ 295 |
296/* 297 * Common fields for objects that support ASL notifications 298 */ 299#define ACPI_COMMON_NOTIFY_INFO \ 300 union acpi_operand_object *SystemNotify; /* Handler for system notifies */\ 301 union acpi_operand_object *DeviceNotify; /* Handler for driver notifies */\ 302 union acpi_operand_object *Handler; /* Handler for Address space */ 303 304 |
|
321typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */ 322{ 323 ACPI_OBJECT_COMMON_HEADER 324 ACPI_COMMON_NOTIFY_INFO 325 326} ACPI_OBJECT_NOTIFY_COMMON; 327 328 --- 14 unchanged lines hidden (view full) --- 343 UINT32 ResourceOrder; 344 345} ACPI_OBJECT_POWER_RESOURCE; 346 347 348typedef struct acpi_object_processor 349{ 350 ACPI_OBJECT_COMMON_HEADER | 305typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */ 306{ 307 ACPI_OBJECT_COMMON_HEADER 308 ACPI_COMMON_NOTIFY_INFO 309 310} ACPI_OBJECT_NOTIFY_COMMON; 311 312 --- 14 unchanged lines hidden (view full) --- 327 UINT32 ResourceOrder; 328 329} ACPI_OBJECT_POWER_RESOURCE; 330 331 332typedef struct acpi_object_processor 333{ 334 ACPI_OBJECT_COMMON_HEADER |
335 UINT8 ProcId; 336 UINT8 Length; |
|
351 ACPI_COMMON_NOTIFY_INFO | 337 ACPI_COMMON_NOTIFY_INFO |
352 UINT32 ProcId; 353 UINT32 Length; | |
354 ACPI_IO_ADDRESS Address; 355 356} ACPI_OBJECT_PROCESSOR; 357 358 359typedef struct acpi_object_thermal_zone 360{ 361 ACPI_OBJECT_COMMON_HEADER 362 ACPI_COMMON_NOTIFY_INFO 363 364} ACPI_OBJECT_THERMAL_ZONE; 365 366 367/****************************************************************************** 368 * 369 * Fields. All share a common header/info field. 370 * 371 *****************************************************************************/ 372 | 338 ACPI_IO_ADDRESS Address; 339 340} ACPI_OBJECT_PROCESSOR; 341 342 343typedef struct acpi_object_thermal_zone 344{ 345 ACPI_OBJECT_COMMON_HEADER 346 ACPI_COMMON_NOTIFY_INFO 347 348} ACPI_OBJECT_THERMAL_ZONE; 349 350 351/****************************************************************************** 352 * 353 * Fields. All share a common header/info field. 354 * 355 *****************************************************************************/ 356 |
357/* 358 * Common bitfield for the field objects 359 * "Field Datum" -- a datum from the actual field object 360 * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field 361 */ 362#define ACPI_COMMON_FIELD_INFO \ 363 UINT8 FieldFlags; /* Access, update, and lock bits */\ 364 UINT8 Attribute; /* From AccessAs keyword */\ 365 UINT8 AccessByteWidth; /* Read/Write size in bytes */\ 366 ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */\ 367 UINT32 BitLength; /* Length of field in bits */\ 368 UINT32 BaseByteOffset; /* Byte offset within containing object */\ 369 UINT32 Value; /* Value to store into the Bank or Index register */\ 370 UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\ 371 UINT8 AccessBitWidth; /* Read/Write size in bits (8-64) */ 372 373 |
|
373typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */ 374{ 375 ACPI_OBJECT_COMMON_HEADER 376 ACPI_COMMON_FIELD_INFO | 374typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */ 375{ 376 ACPI_OBJECT_COMMON_HEADER 377 ACPI_COMMON_FIELD_INFO |
377 union acpi_operand_object *RegionObj; /* Containing Operation Region object */ 378 /* (REGION/BANK fields only) */ | 378 union acpi_operand_object *RegionObj; /* Parent Operation Region object (REGION/BANK fields only) */ 379 |
379} ACPI_OBJECT_FIELD_COMMON; 380 381 382typedef struct acpi_object_region_field 383{ 384 ACPI_OBJECT_COMMON_HEADER 385 ACPI_COMMON_FIELD_INFO 386 union acpi_operand_object *RegionObj; /* Containing OpRegion object */ --- 48 unchanged lines hidden (view full) --- 435 ACPI_OBJECT_COMMON_HEADER 436 ACPI_NAMESPACE_NODE *Node; /* Parent device */ 437 ACPI_NOTIFY_HANDLER Handler; 438 void *Context; 439 440} ACPI_OBJECT_NOTIFY_HANDLER; 441 442 | 380} ACPI_OBJECT_FIELD_COMMON; 381 382 383typedef struct acpi_object_region_field 384{ 385 ACPI_OBJECT_COMMON_HEADER 386 ACPI_COMMON_FIELD_INFO 387 union acpi_operand_object *RegionObj; /* Containing OpRegion object */ --- 48 unchanged lines hidden (view full) --- 436 ACPI_OBJECT_COMMON_HEADER 437 ACPI_NAMESPACE_NODE *Node; /* Parent device */ 438 ACPI_NOTIFY_HANDLER Handler; 439 void *Context; 440 441} ACPI_OBJECT_NOTIFY_HANDLER; 442 443 |
443/* Flags for address handler */ 444 445#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x1 446 447 | |
448typedef struct acpi_object_addr_handler 449{ 450 ACPI_OBJECT_COMMON_HEADER 451 UINT8 SpaceId; | 444typedef struct acpi_object_addr_handler 445{ 446 ACPI_OBJECT_COMMON_HEADER 447 UINT8 SpaceId; |
452 UINT16 Hflags; | 448 UINT8 HandlerFlags; |
453 ACPI_ADR_SPACE_HANDLER Handler; 454 ACPI_NAMESPACE_NODE *Node; /* Parent device */ 455 void *Context; 456 ACPI_ADR_SPACE_SETUP Setup; 457 union acpi_operand_object *RegionList; /* regions using this handler */ 458 union acpi_operand_object *Next; 459 460} ACPI_OBJECT_ADDR_HANDLER; 461 | 449 ACPI_ADR_SPACE_HANDLER Handler; 450 ACPI_NAMESPACE_NODE *Node; /* Parent device */ 451 void *Context; 452 ACPI_ADR_SPACE_SETUP Setup; 453 union acpi_operand_object *RegionList; /* regions using this handler */ 454 union acpi_operand_object *Next; 455 456} ACPI_OBJECT_ADDR_HANDLER; 457 |
458/* Flags for address handler (HandlerFlags) */ |
|
462 | 459 |
460#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x01 461 462 |
|
463/****************************************************************************** 464 * 465 * Special internal objects 466 * 467 *****************************************************************************/ 468 469/* 470 * The Reference object type is used for these opcodes: 471 * Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp 472 */ 473typedef struct acpi_object_reference 474{ 475 ACPI_OBJECT_COMMON_HEADER 476 UINT8 TargetType; /* Used for IndexOp */ 477 UINT16 Opcode; | 463/****************************************************************************** 464 * 465 * Special internal objects 466 * 467 *****************************************************************************/ 468 469/* 470 * The Reference object type is used for these opcodes: 471 * Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp 472 */ 473typedef struct acpi_object_reference 474{ 475 ACPI_OBJECT_COMMON_HEADER 476 UINT8 TargetType; /* Used for IndexOp */ 477 UINT16 Opcode; |
478 UINT32 Offset; /* Used for ArgOp, LocalOp, and IndexOp */ | |
479 void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */ 480 ACPI_NAMESPACE_NODE *Node; 481 union acpi_operand_object **Where; | 478 void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */ 479 ACPI_NAMESPACE_NODE *Node; 480 union acpi_operand_object **Where; |
481 UINT32 Offset; /* Used for ArgOp, LocalOp, and IndexOp */ |
|
482 483} ACPI_OBJECT_REFERENCE; 484 485 486/* 487 * Extra object is used as additional storage for types that 488 * have AML code in their declarations (TermArgs) that must be 489 * evaluated at run time. 490 * 491 * Currently: Region and FieldUnit types 492 */ 493typedef struct acpi_object_extra 494{ 495 ACPI_OBJECT_COMMON_HEADER | 482 483} ACPI_OBJECT_REFERENCE; 484 485 486/* 487 * Extra object is used as additional storage for types that 488 * have AML code in their declarations (TermArgs) that must be 489 * evaluated at run time. 490 * 491 * Currently: Region and FieldUnit types 492 */ 493typedef struct acpi_object_extra 494{ 495 ACPI_OBJECT_COMMON_HEADER |
496 UINT8 ByteFill1; 497 UINT16 WordFill1; 498 UINT32 AmlLength; 499 UINT8 *AmlStart; | |
500 ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */ 501 void *RegionContext; /* Region-specific data */ | 496 ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */ 497 void *RegionContext; /* Region-specific data */ |
498 UINT8 *AmlStart; 499 UINT32 AmlLength; |
|
502 503} ACPI_OBJECT_EXTRA; 504 505 506/* Additional data that can be attached to namespace nodes */ 507 508typedef struct acpi_object_data 509{ --- 17 unchanged lines hidden (view full) --- 527/****************************************************************************** 528 * 529 * ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above 530 * 531 *****************************************************************************/ 532 533typedef union acpi_operand_object 534{ | 500 501} ACPI_OBJECT_EXTRA; 502 503 504/* Additional data that can be attached to namespace nodes */ 505 506typedef struct acpi_object_data 507{ --- 17 unchanged lines hidden (view full) --- 525/****************************************************************************** 526 * 527 * ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above 528 * 529 *****************************************************************************/ 530 531typedef union acpi_operand_object 532{ |
535 ACPI_OBJECT_COMMON Common; 536 ACPI_OBJECT_INTEGER Integer; 537 ACPI_OBJECT_STRING String; 538 ACPI_OBJECT_BUFFER Buffer; 539 ACPI_OBJECT_PACKAGE Package; 540 ACPI_OBJECT_EVENT Event; 541 ACPI_OBJECT_METHOD Method; 542 ACPI_OBJECT_MUTEX Mutex; 543 ACPI_OBJECT_REGION Region; 544 ACPI_OBJECT_NOTIFY_COMMON CommonNotify; 545 ACPI_OBJECT_DEVICE Device; 546 ACPI_OBJECT_POWER_RESOURCE PowerResource; 547 ACPI_OBJECT_PROCESSOR Processor; 548 ACPI_OBJECT_THERMAL_ZONE ThermalZone; 549 ACPI_OBJECT_FIELD_COMMON CommonField; 550 ACPI_OBJECT_REGION_FIELD Field; 551 ACPI_OBJECT_BUFFER_FIELD BufferField; 552 ACPI_OBJECT_BANK_FIELD BankField; 553 ACPI_OBJECT_INDEX_FIELD IndexField; 554 ACPI_OBJECT_NOTIFY_HANDLER Notify; 555 ACPI_OBJECT_ADDR_HANDLER AddressSpace; 556 ACPI_OBJECT_REFERENCE Reference; 557 ACPI_OBJECT_EXTRA Extra; 558 ACPI_OBJECT_DATA Data; 559 ACPI_OBJECT_CACHE_LIST Cache; | 533 ACPI_OBJECT_COMMON Common; 534 ACPI_OBJECT_INTEGER Integer; 535 ACPI_OBJECT_STRING String; 536 ACPI_OBJECT_BUFFER Buffer; 537 ACPI_OBJECT_PACKAGE Package; 538 ACPI_OBJECT_EVENT Event; 539 ACPI_OBJECT_METHOD Method; 540 ACPI_OBJECT_MUTEX Mutex; 541 ACPI_OBJECT_REGION Region; 542 ACPI_OBJECT_NOTIFY_COMMON CommonNotify; 543 ACPI_OBJECT_DEVICE Device; 544 ACPI_OBJECT_POWER_RESOURCE PowerResource; 545 ACPI_OBJECT_PROCESSOR Processor; 546 ACPI_OBJECT_THERMAL_ZONE ThermalZone; 547 ACPI_OBJECT_FIELD_COMMON CommonField; 548 ACPI_OBJECT_REGION_FIELD Field; 549 ACPI_OBJECT_BUFFER_FIELD BufferField; 550 ACPI_OBJECT_BANK_FIELD BankField; 551 ACPI_OBJECT_INDEX_FIELD IndexField; 552 ACPI_OBJECT_NOTIFY_HANDLER Notify; 553 ACPI_OBJECT_ADDR_HANDLER AddressSpace; 554 ACPI_OBJECT_REFERENCE Reference; 555 ACPI_OBJECT_EXTRA Extra; 556 ACPI_OBJECT_DATA Data; 557 ACPI_OBJECT_CACHE_LIST Cache; |
560 561} ACPI_OPERAND_OBJECT; 562 563 564/****************************************************************************** 565 * 566 * ACPI_DESCRIPTOR - objects that share a common descriptor identifier 567 * --- 14 unchanged lines hidden (view full) --- 582#define ACPI_DESC_TYPE_STATE_THREAD 0x0B 583#define ACPI_DESC_TYPE_WALK 0x0C 584#define ACPI_DESC_TYPE_PARSER 0x0D 585#define ACPI_DESC_TYPE_OPERAND 0x0E 586#define ACPI_DESC_TYPE_NAMED 0x0F 587#define ACPI_DESC_TYPE_MAX 0x0F 588 589 | 558 559} ACPI_OPERAND_OBJECT; 560 561 562/****************************************************************************** 563 * 564 * ACPI_DESCRIPTOR - objects that share a common descriptor identifier 565 * --- 14 unchanged lines hidden (view full) --- 580#define ACPI_DESC_TYPE_STATE_THREAD 0x0B 581#define ACPI_DESC_TYPE_WALK 0x0C 582#define ACPI_DESC_TYPE_PARSER 0x0D 583#define ACPI_DESC_TYPE_OPERAND 0x0E 584#define ACPI_DESC_TYPE_NAMED 0x0F 585#define ACPI_DESC_TYPE_MAX 0x0F 586 587 |
588typedef struct acpi_common_descriptor 589{ 590 void *CommonPointer; 591 UINT8 DescriptorType; /* To differentiate various internal objs */ 592 593} ACPI_COMMON_DESCRIPTOR; 594 |
|
590typedef union acpi_descriptor 591{ | 595typedef union acpi_descriptor 596{ |
592 UINT8 DescriptorId; /* To differentiate various internal objs */ | 597 ACPI_COMMON_DESCRIPTOR Common; |
593 ACPI_OPERAND_OBJECT Object; 594 ACPI_NAMESPACE_NODE Node; 595 ACPI_PARSE_OBJECT Op; 596 597} ACPI_DESCRIPTOR; 598 599 600#endif /* _ACOBJECT_H */ | 598 ACPI_OPERAND_OBJECT Object; 599 ACPI_NAMESPACE_NODE Node; 600 ACPI_PARSE_OBJECT Op; 601 602} ACPI_DESCRIPTOR; 603 604 605#endif /* _ACOBJECT_H */ |