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 */