diff options
Diffstat (limited to 'include/acpi/acobject.h')
-rw-r--r-- | include/acpi/acobject.h | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/include/acpi/acobject.h b/include/acpi/acobject.h index 7a8a652ffb78..eb6f038b03d9 100644 --- a/include/acpi/acobject.h +++ b/include/acpi/acobject.h | |||
@@ -308,19 +308,34 @@ struct acpi_object_addr_handler { | |||
308 | *****************************************************************************/ | 308 | *****************************************************************************/ |
309 | 309 | ||
310 | /* | 310 | /* |
311 | * The Reference object type is used for these opcodes: | 311 | * The Reference object is used for these opcodes: |
312 | * Arg[0-6], Local[0-7], index_op, name_op, zero_op, one_op, ones_op, debug_op | 312 | * Arg[0-6], Local[0-7], index_op, name_op, ref_of_op, load_op, load_table_op, debug_op |
313 | * The Reference.Class differentiates these types. | ||
313 | */ | 314 | */ |
314 | struct acpi_object_reference { | 315 | struct acpi_object_reference { |
315 | ACPI_OBJECT_COMMON_HEADER u8 target_type; /* Used for index_op */ | 316 | ACPI_OBJECT_COMMON_HEADER u8 class; /* Reference Class */ |
316 | u16 opcode; | 317 | u8 target_type; /* Used for Index Op */ |
318 | u8 reserved; | ||
317 | void *object; /* name_op=>HANDLE to obj, index_op=>union acpi_operand_object */ | 319 | void *object; /* name_op=>HANDLE to obj, index_op=>union acpi_operand_object */ |
318 | struct acpi_namespace_node *node; | 320 | struct acpi_namespace_node *node; /* ref_of or Namepath */ |
319 | union acpi_operand_object **where; | 321 | union acpi_operand_object **where; /* Target of Index */ |
320 | u32 offset; /* Used for arg_op, local_op, and index_op */ | 322 | u32 value; /* Used for Local/Arg/Index/ddb_handle */ |
321 | u32 value; /* Used for ddb_handle */ | ||
322 | }; | 323 | }; |
323 | 324 | ||
325 | /* Values for Reference.Class above */ | ||
326 | |||
327 | typedef enum { | ||
328 | ACPI_REFCLASS_LOCAL = 0, /* Method local */ | ||
329 | ACPI_REFCLASS_ARG = 1, /* Method argument */ | ||
330 | ACPI_REFCLASS_REFOF = 2, /* Result of ref_of() TBD: Split to Ref/Node and Ref/operand_obj? */ | ||
331 | ACPI_REFCLASS_INDEX = 3, /* Result of Index() */ | ||
332 | ACPI_REFCLASS_TABLE = 4, /* ddb_handle - Load(), load_table() */ | ||
333 | ACPI_REFCLASS_NAME = 5, /* Reference to a named object */ | ||
334 | ACPI_REFCLASS_DEBUG = 6, /* Debug object */ | ||
335 | |||
336 | ACPI_REFCLASS_MAX = 6 | ||
337 | } ACPI_REFERENCE_CLASSES; | ||
338 | |||
324 | /* | 339 | /* |
325 | * Extra object is used as additional storage for types that | 340 | * Extra object is used as additional storage for types that |
326 | * have AML code in their declarations (term_args) that must be | 341 | * have AML code in their declarations (term_args) that must be |