vserver 1.9.3
[linux-2.6.git] / include / acpi / aclocal.h
index eb1b957..2afff11 100644 (file)
@@ -189,8 +189,6 @@ struct acpi_namespace_node
        u8                                  type;           /* Type associated with this name */
        u16                                 owner_id;
        union acpi_name_union               name;           /* ACPI Name, always 4 chars per ACPI spec */
-
-
        union acpi_operand_object           *object;        /* Pointer to attached ACPI object (optional) */
        struct acpi_namespace_node          *child;         /* First child */
        struct acpi_namespace_node          *peer;          /* Next peer*/
@@ -211,10 +209,8 @@ struct acpi_namespace_node
 #define ANOBJ_METHOD_LOCAL              0x10
 #define ANOBJ_METHOD_NO_RETVAL          0x20
 #define ANOBJ_METHOD_SOME_NO_RETVAL     0x40
-
 #define ANOBJ_IS_BIT_OFFSET             0x80
 
-
 /*
  * ACPI Table Descriptor.  One per ACPI table
  */
@@ -309,16 +305,31 @@ struct acpi_create_field_info
  *
  ****************************************************************************/
 
-/* Information about a GPE, one per each GPE in an array */
+/* Dispatch info for each GPE -- either a method or handler, cannot be both */
 
-struct acpi_gpe_event_info
+struct acpi_handler_info
 {
-       struct acpi_namespace_node              *method_node;   /* Method node for this GPE level */
-       acpi_gpe_handler                        handler;        /* Address of handler, if any */
+       acpi_event_handler                      address;        /* Address of handler, if any */
        void                                    *context;       /* Context to be passed to handler */
+       struct acpi_namespace_node              *method_node;   /* Method node for this GPE level (saved) */
+};
+
+union acpi_gpe_dispatch_info
+{
+       struct acpi_namespace_node              *method_node;   /* Method node for this GPE level */
+       struct acpi_handler_info                *handler;
+};
+
+/*
+ * Information about a GPE, one per each GPE in an array.
+ * NOTE: Important to keep this struct as small as possible.
+ */
+struct acpi_gpe_event_info
+{
+       union acpi_gpe_dispatch_info    dispatch;       /* Either Method or Handler */
        struct acpi_gpe_register_info           *register_info; /* Backpointer to register info */
-       u8                                      flags;          /* Level or Edge */
-       u8                                      bit_mask;       /* This GPE within the register */
+       u8                                      flags;          /* Misc info about this GPE */
+       u8                                      register_bit;   /* This GPE bit within the register */
 };
 
 /* Information about a GPE register pair, one per each status/enable pair in an array */
@@ -327,9 +338,8 @@ struct acpi_gpe_register_info
 {
        struct acpi_generic_address             status_address; /* Address of status reg */
        struct acpi_generic_address             enable_address; /* Address of enable reg */
-       u8                                      status;         /* Current value of status reg */
-       u8                                      enable;         /* Current value of enable reg */
-       u8                                      wake_enable;    /* Mask of bits to keep enabled when sleeping */
+       u8                                      enable_for_wake; /* GPEs to keep enabled when sleeping */
+       u8                                      enable_for_run; /* GPEs to keep enabled when running */
        u8                                      base_gpe_number; /* Base GPE number for this register */
 };
 
@@ -339,6 +349,7 @@ struct acpi_gpe_register_info
  */
 struct acpi_gpe_block_info
 {
+       struct acpi_namespace_node              *node;
        struct acpi_gpe_block_info              *previous;
        struct acpi_gpe_block_info              *next;
        struct acpi_gpe_xrupt_info              *xrupt_block;   /* Backpointer to interrupt block */
@@ -502,7 +513,7 @@ struct acpi_thread_state
        struct acpi_walk_state              *walk_state_list;       /* Head of list of walk_states for this thread */
        union acpi_operand_object           *acquired_mutex_list;   /* List of all currently acquired mutexes */
        u32                                 thread_id;              /* Running thread ID */
-       u16                                 current_sync_level;     /* Mutex Sync (nested acquire) level */
+       u                                 current_sync_level;     /* Mutex Sync (nested acquire) level */
 };