Print this page
acpica-unix2-20130823
PANKOVs restructure

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/sys/acpi/acobject.h
          +++ new/usr/src/common/acpica/include/acobject.h
   1      -
   2    1  /******************************************************************************
   3    2   *
   4    3   * Name: acobject.h - Definition of ACPI_OPERAND_OBJECT  (Internal object only)
   5    4   *
   6    5   *****************************************************************************/
   7    6  
   8    7  /*
   9      - * Copyright (C) 2000 - 2011, Intel Corp.
        8 + * Copyright (C) 2000 - 2013, Intel Corp.
  10    9   * All rights reserved.
  11   10   *
  12   11   * Redistribution and use in source and binary forms, with or without
  13   12   * modification, are permitted provided that the following conditions
  14   13   * are met:
  15   14   * 1. Redistributions of source code must retain the above copyright
  16   15   *    notice, this list of conditions, and the following disclaimer,
  17   16   *    without modification.
  18   17   * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  19   18   *    substantially similar to the "NO WARRANTY" disclaimer below
↓ open down ↓ 67 lines elided ↑ open up ↑
  87   86      UINT8                           Flags;
  88   87      /*
  89   88       * Note: There are 3 bytes available here before the
  90   89       * next natural alignment boundary (for both 32/64 cases)
  91   90       */
  92   91  
  93   92  /* Values for Flag byte above */
  94   93  
  95   94  #define AOPOBJ_AML_CONSTANT         0x01    /* Integer is an AML constant */
  96   95  #define AOPOBJ_STATIC_POINTER       0x02    /* Data is part of an ACPI table, don't delete */
  97      -#define AOPOBJ_DATA_VALID           0x04    /* Object is intialized and data is valid */
       96 +#define AOPOBJ_DATA_VALID           0x04    /* Object is initialized and data is valid */
  98   97  #define AOPOBJ_OBJECT_INITIALIZED   0x08    /* Region is initialized, _REG was run */
  99   98  #define AOPOBJ_SETUP_COMPLETE       0x10    /* Region setup is complete */
 100   99  #define AOPOBJ_INVALID              0x20    /* Host OS won't allow a Region address */
 101  100  
 102  101  
 103  102  /******************************************************************************
 104  103   *
 105  104   * Basic data types
 106  105   *
 107  106   *****************************************************************************/
↓ open down ↓ 8 lines elided ↑ open up ↑
 116  115  typedef struct acpi_object_integer
 117  116  {
 118  117      ACPI_OBJECT_COMMON_HEADER
 119  118      UINT8                           Fill[3];            /* Prevent warning on some compilers */
 120  119      UINT64                          Value;
 121  120  
 122  121  } ACPI_OBJECT_INTEGER;
 123  122  
 124  123  
 125  124  /*
 126      - * Note: The String and Buffer object must be identical through the Pointer
 127      - * and length elements.  There is code that depends on this.
      125 + * Note: The String and Buffer object must be identical through the
      126 + * pointer and length elements. There is code that depends on this.
 128  127   *
 129  128   * Fields common to both Strings and Buffers
 130  129   */
 131  130  #define ACPI_COMMON_BUFFER_INFO(_Type) \
 132  131      _Type                           *Pointer; \
 133  132      UINT32                          Length;
 134  133  
 135  134  
 136  135  typedef struct acpi_object_string   /* Null terminated, ASCII characters only */
 137  136  {
↓ open down ↓ 93 lines elided ↑ open up ↑
 231  230  
 232  231  #define ACPI_METHOD_MODULE_LEVEL        0x01    /* Method is actually module-level code */
 233  232  #define ACPI_METHOD_INTERNAL_ONLY       0x02    /* Method is implemented internally (_OSI) */
 234  233  #define ACPI_METHOD_SERIALIZED          0x04    /* Method is serialized */
 235  234  #define ACPI_METHOD_SERIALIZED_PENDING  0x08    /* Method is to be marked serialized */
 236  235  #define ACPI_METHOD_MODIFIED_NAMESPACE  0x10    /* Method modified the namespace */
 237  236  
 238  237  
 239  238  /******************************************************************************
 240  239   *
 241      - * Objects that can be notified.  All share a common NotifyInfo area.
      240 + * Objects that can be notified. All share a common NotifyInfo area.
 242  241   *
 243  242   *****************************************************************************/
 244  243  
 245  244  /*
 246  245   * Common fields for objects that support ASL notifications
 247  246   */
 248  247  #define ACPI_COMMON_NOTIFY_INFO \
 249      -    union acpi_operand_object       *SystemNotify;      /* Handler for system notifies */\
 250      -    union acpi_operand_object       *DeviceNotify;      /* Handler for driver notifies */\
      248 +    union acpi_operand_object       *NotifyList[2];     /* Handlers for system/device notifies */\
 251  249      union acpi_operand_object       *Handler;           /* Handler for Address space */
 252  250  
 253  251  
 254  252  typedef struct acpi_object_notify_common    /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
 255  253  {
 256  254      ACPI_OBJECT_COMMON_HEADER
 257  255      ACPI_COMMON_NOTIFY_INFO
 258  256  
 259  257  } ACPI_OBJECT_NOTIFY_COMMON;
 260  258  
↓ open down ↓ 34 lines elided ↑ open up ↑
 295  293  typedef struct acpi_object_thermal_zone
 296  294  {
 297  295      ACPI_OBJECT_COMMON_HEADER
 298  296      ACPI_COMMON_NOTIFY_INFO
 299  297  
 300  298  } ACPI_OBJECT_THERMAL_ZONE;
 301  299  
 302  300  
 303  301  /******************************************************************************
 304  302   *
 305      - * Fields.  All share a common header/info field.
      303 + * Fields. All share a common header/info field.
 306  304   *
 307  305   *****************************************************************************/
 308  306  
 309  307  /*
 310  308   * Common bitfield for the field objects
 311  309   * "Field Datum"  -- a datum from the actual field object
 312  310   * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field
 313  311   */
 314  312  #define ACPI_COMMON_FIELD_INFO \
 315  313      UINT8                           FieldFlags;         /* Access, update, and lock bits */\
 316  314      UINT8                           Attribute;          /* From AccessAs keyword */\
 317  315      UINT8                           AccessByteWidth;    /* Read/Write size in bytes */\
 318  316      ACPI_NAMESPACE_NODE             *Node;              /* Link back to parent node */\
 319  317      UINT32                          BitLength;          /* Length of field in bits */\
 320  318      UINT32                          BaseByteOffset;     /* Byte offset within containing object */\
 321  319      UINT32                          Value;              /* Value to store into the Bank or Index register */\
 322  320      UINT8                           StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\
      321 +    UINT8                           AccessLength;       /* For serial regions/fields */
 323  322  
 324  323  
 325  324  typedef struct acpi_object_field_common                 /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
 326  325  {
 327  326      ACPI_OBJECT_COMMON_HEADER
 328  327      ACPI_COMMON_FIELD_INFO
 329  328      union acpi_operand_object       *RegionObj;         /* Parent Operation Region object (REGION/BANK fields only) */
 330  329  
 331  330  } ACPI_OBJECT_FIELD_COMMON;
 332  331  
 333  332  
 334  333  typedef struct acpi_object_region_field
 335  334  {
 336  335      ACPI_OBJECT_COMMON_HEADER
 337  336      ACPI_COMMON_FIELD_INFO
      337 +    UINT16                          ResourceLength;
 338  338      union acpi_operand_object       *RegionObj;         /* Containing OpRegion object */
      339 +    UINT8                           *ResourceBuffer;    /* ResourceTemplate for serial regions/fields */
 339  340  
 340  341  } ACPI_OBJECT_REGION_FIELD;
 341  342  
 342  343  
 343  344  typedef struct acpi_object_bank_field
 344  345  {
 345  346      ACPI_OBJECT_COMMON_HEADER
 346  347      ACPI_COMMON_FIELD_INFO
 347  348      union acpi_operand_object       *RegionObj;         /* Containing OpRegion object */
 348  349      union acpi_operand_object       *BankObj;           /* BankSelect Register object */
↓ open down ↓ 30 lines elided ↑ open up ↑
 379  380  /******************************************************************************
 380  381   *
 381  382   * Objects for handlers
 382  383   *
 383  384   *****************************************************************************/
 384  385  
 385  386  typedef struct acpi_object_notify_handler
 386  387  {
 387  388      ACPI_OBJECT_COMMON_HEADER
 388  389      ACPI_NAMESPACE_NODE             *Node;              /* Parent device */
 389      -    ACPI_NOTIFY_HANDLER             Handler;
      390 +    UINT32                          HandlerType;        /* Type: Device/System/Both */
      391 +    ACPI_NOTIFY_HANDLER             Handler;            /* Handler address */
 390  392      void                            *Context;
      393 +    union acpi_operand_object       *Next[2];           /* Device and System handler lists */
 391  394  
 392  395  } ACPI_OBJECT_NOTIFY_HANDLER;
 393  396  
 394  397  
 395  398  typedef struct acpi_object_addr_handler
 396  399  {
 397  400      ACPI_OBJECT_COMMON_HEADER
 398  401      UINT8                           SpaceId;
 399  402      UINT8                           HandlerFlags;
 400  403      ACPI_ADR_SPACE_HANDLER          Handler;
 401  404      ACPI_NAMESPACE_NODE             *Node;              /* Parent device */
 402  405      void                            *Context;
 403  406      ACPI_ADR_SPACE_SETUP            Setup;
 404      -    union acpi_operand_object       *RegionList;        /* regions using this handler */
      407 +    union acpi_operand_object       *RegionList;        /* Regions using this handler */
 405  408      union acpi_operand_object       *Next;
 406  409  
 407  410  } ACPI_OBJECT_ADDR_HANDLER;
 408  411  
 409  412  /* Flags for address handler (HandlerFlags) */
 410  413  
 411  414  #define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED  0x01
 412  415  
 413  416  
 414  417  /******************************************************************************
↓ open down ↓ 41 lines elided ↑ open up ↑
 456  459   * Extra object is used as additional storage for types that
 457  460   * have AML code in their declarations (TermArgs) that must be
 458  461   * evaluated at run time.
 459  462   *
 460  463   * Currently: Region and FieldUnit types
 461  464   */
 462  465  typedef struct acpi_object_extra
 463  466  {
 464  467      ACPI_OBJECT_COMMON_HEADER
 465  468      ACPI_NAMESPACE_NODE             *Method_REG;        /* _REG method for this region (if any) */
      469 +    ACPI_NAMESPACE_NODE             *ScopeNode;
 466  470      void                            *RegionContext;     /* Region-specific data */
 467  471      UINT8                           *AmlStart;
 468  472      UINT32                          AmlLength;
 469  473  
 470  474  } ACPI_OBJECT_EXTRA;
 471  475  
 472  476  
 473  477  /* Additional data that can be attached to namespace nodes */
 474  478  
 475  479  typedef struct acpi_object_data
↓ open down ↓ 107 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX