summaryrefslogtreecommitdiff
path: root/drivers/acpi/include
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/include')
-rw-r--r--drivers/acpi/include/accommon.h61
-rw-r--r--drivers/acpi/include/acconfig.h9
-rw-r--r--drivers/acpi/include/acdebug.h7
-rw-r--r--drivers/acpi/include/acgcc.h8
-rw-r--r--drivers/acpi/include/acinterp.h8
-rw-r--r--drivers/acpi/include/aclinux.h12
-rw-r--r--drivers/acpi/include/aclocal.h21
-rw-r--r--drivers/acpi/include/acnamesp.h9
-rw-r--r--drivers/acpi/include/acoutput.h3
-rw-r--r--drivers/acpi/include/actypes.h23
10 files changed, 110 insertions, 51 deletions
diff --git a/drivers/acpi/include/accommon.h b/drivers/acpi/include/accommon.h
index 61d54a220dcc..feeeef818907 100644
--- a/drivers/acpi/include/accommon.h
+++ b/drivers/acpi/include/accommon.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: accommon.h -- prototypes for the common (subsystem-wide) procedures
- * $Revision: 87 $
+ * $Revision: 90 $
*
*****************************************************************************/
@@ -27,6 +27,30 @@
#define _ACCOMMON_H
+typedef
+ACPI_STATUS (*ACPI_PKG_CALLBACK) (
+ u8 object_type,
+ ACPI_OPERAND_OBJECT *source_object,
+ ACPI_GENERIC_STATE *state,
+ void *context);
+
+
+ACPI_STATUS
+acpi_cm_walk_package_tree (
+ ACPI_OPERAND_OBJECT *source_object,
+ void *target_object,
+ ACPI_PKG_CALLBACK walk_callback,
+ void *context);
+
+
+typedef struct acpi_pkg_info
+{
+ u8 *free_space;
+ u32 length;
+ u32 object_space;
+ u32 num_packages;
+} ACPI_PKG_INFO;
+
#define REF_INCREMENT (u16) 0
#define REF_DECREMENT (u16) 1
#define REF_FORCE_DELETE (u16) 2
@@ -194,29 +218,30 @@ acpi_cm_build_package_object (
u32 *space_used);
ACPI_STATUS
-acpi_cm_build_external_object (
+acpi_cm_copy_iobject_to_eobject (
ACPI_OPERAND_OBJECT *obj,
ACPI_BUFFER *ret_buffer);
ACPI_STATUS
-acpi_cm_build_internal_simple_object(
+acpi_cm_copy_esimple_to_isimple(
ACPI_OBJECT *user_obj,
ACPI_OPERAND_OBJECT *obj);
ACPI_STATUS
-acpi_cm_build_internal_object (
+acpi_cm_copy_eobject_to_iobject (
ACPI_OBJECT *obj,
ACPI_OPERAND_OBJECT *internal_obj);
ACPI_STATUS
-acpi_cm_copy_internal_simple_object (
+acpi_cm_copy_isimple_to_isimple (
ACPI_OPERAND_OBJECT *source_obj,
ACPI_OPERAND_OBJECT *dest_obj);
ACPI_STATUS
-acpi_cm_build_copy_internal_package_object (
+acpi_cm_copy_ipackage_to_ipackage (
ACPI_OPERAND_OBJECT *source_obj,
- ACPI_OPERAND_OBJECT *dest_obj);
+ ACPI_OPERAND_OBJECT *dest_obj,
+ ACPI_WALK_STATE *walk_state);
/*
@@ -526,12 +551,25 @@ acpi_cm_create_update_state (
ACPI_OPERAND_OBJECT *object,
u16 action);
+ACPI_GENERIC_STATE *
+acpi_cm_create_pkg_state (
+ void *internal_object,
+ void *external_object,
+ u16 index);
+
ACPI_STATUS
acpi_cm_create_update_state_and_push (
ACPI_OPERAND_OBJECT *object,
u16 action,
ACPI_GENERIC_STATE **state_list);
+ACPI_STATUS
+acpi_cm_create_pkg_state_and_push (
+ void *internal_object,
+ void *external_object,
+ u16 index,
+ ACPI_GENERIC_STATE **state_list);
+
ACPI_GENERIC_STATE *
acpi_cm_create_control_state (
void);
@@ -564,6 +602,15 @@ ACPI_STATUS
acpi_cm_resolve_package_references (
ACPI_OPERAND_OBJECT *obj_desc);
+#ifdef ACPI_DEBUG
+
+void
+acpi_cm_display_init_pathname (
+ ACPI_HANDLE obj_handle,
+ char *path);
+
+#endif
+
/*
* Memory allocation functions and related macros.
diff --git a/drivers/acpi/include/acconfig.h b/drivers/acpi/include/acconfig.h
index ea9be649d745..e45c17db84b3 100644
--- a/drivers/acpi/include/acconfig.h
+++ b/drivers/acpi/include/acconfig.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acconfig.h - Global configuration constants
- * $Revision: 53 $
+ * $Revision: 55 $
*
*****************************************************************************/
@@ -53,7 +53,7 @@
/* Version string */
-#define ACPI_CA_VERSION 0x20010125
+#define ACPI_CA_VERSION 0x20010208
/* Maximum objects in the various object caches */
@@ -149,10 +149,5 @@
#define RSDP_SCAN_STEP 16
-/* Maximum nesting of package objects */
-
-#define MAX_PACKAGE_DEPTH 16
-
-
#endif /* _ACCONFIG_H */
diff --git a/drivers/acpi/include/acdebug.h b/drivers/acpi/include/acdebug.h
index f1fa7094ef18..d645cceb7c8c 100644
--- a/drivers/acpi/include/acdebug.h
+++ b/drivers/acpi/include/acdebug.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acdebug.h - ACPI/AML debugger
- * $Revision: 39 $
+ * $Revision: 41 $
*
*****************************************************************************/
@@ -43,6 +43,7 @@ extern u8 opt_disasm;
extern u8 opt_stats;
extern u8 opt_parse_jit;
extern u8 opt_verbose;
+extern u8 opt_ini_methods;
extern NATIVE_CHAR *args[DB_MAX_ARGS];
@@ -198,6 +199,10 @@ void
acpi_db_find_references (
NATIVE_CHAR *object_arg);
+void
+acpi_db_display_resources (
+ NATIVE_CHAR *object_arg);
+
/*
* dbdisasm - AML disassembler
diff --git a/drivers/acpi/include/acgcc.h b/drivers/acpi/include/acgcc.h
index 82b1e5139a99..d92af99d6aa8 100644
--- a/drivers/acpi/include/acgcc.h
+++ b/drivers/acpi/include/acgcc.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acgcc.h - GCC specific defines, etc.
- * $Revision: 4 $
+ * $Revision: 5 $
*
*****************************************************************************/
@@ -26,12 +26,11 @@
#ifndef __ACGCC_H__
#define __ACGCC_H__
-#define COMPILER_DEPENDENT_UINT64 unsigned long long
-
#ifdef __ia64__
#define _IA64
+#define COMPILER_DEPENDENT_UINT64 unsigned long
/* Single threaded */
#define ACPI_APPLICATION
@@ -95,8 +94,7 @@
#else /* DO IA32 */
-
-
+#define COMPILER_DEPENDENT_UINT64 unsigned long long
#define ACPI_ASM_MACROS
#define causeinterrupt(level)
#define BREAKPOINT3
diff --git a/drivers/acpi/include/acinterp.h b/drivers/acpi/include/acinterp.h
index 6eb571e5fae0..94d739a07876 100644
--- a/drivers/acpi/include/acinterp.h
+++ b/drivers/acpi/include/acinterp.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
- * $Revision: 91 $
+ * $Revision: 92 $
*
*****************************************************************************/
@@ -558,12 +558,6 @@ acpi_aml_unsigned_integer_to_string (
ACPI_INTEGER value,
NATIVE_CHAR *out_string);
-ACPI_STATUS
-acpi_aml_build_copy_internal_package_object (
- ACPI_OPERAND_OBJECT *source_obj,
- ACPI_OPERAND_OBJECT *dest_obj,
- ACPI_WALK_STATE *walk_state);
-
/*
* amregion - default Op_region handlers
diff --git a/drivers/acpi/include/aclinux.h b/drivers/acpi/include/aclinux.h
index 0cf0e2845519..f86c83239823 100644
--- a/drivers/acpi/include/aclinux.h
+++ b/drivers/acpi/include/aclinux.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: aclinux.h - OS specific defines, etc.
- * $Revision: 7 $
+ * $Revision: 9 $
*
*****************************************************************************/
@@ -26,14 +26,15 @@
#ifndef __ACLINUX_H__
#define __ACLINUX_H__
-
#define ACPI_OS_NAME "Linux"
+#include <linux/config.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <asm/system.h>
#include <asm/atomic.h>
+#include <asm/div64.h>
/* Linux uses GCC */
@@ -42,9 +43,14 @@
#undef DEBUGGER_THREADING
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-/* Linux ia32 can't do int64 well */
#ifndef _IA64
+/* Linux ia32 can't do int64 well */
#define ACPI_NO_INTEGER64_SUPPORT
+/* And the ia32 kernel doesn't include 64-bit divide support */
+#define ACPI_DIV64(dividend, divisor) do_div(dividend, divisor)
+#else
+#define ACPI_DIV64(dividend, divisor) ACPI_DIVIDE(dividend, divisor)
#endif
+
#endif /* __ACLINUX_H__ */
diff --git a/drivers/acpi/include/aclocal.h b/drivers/acpi/include/aclocal.h
index 2d931387ed90..d3ea8a429a23 100644
--- a/drivers/acpi/include/aclocal.h
+++ b/drivers/acpi/include/aclocal.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: aclocal.h - Internal data types used across the ACPI subsystem
- * $Revision: 100 $
+ * $Revision: 104 $
*
*****************************************************************************/
@@ -368,6 +368,23 @@ typedef struct acpi_update_state
} ACPI_UPDATE_STATE;
+
+/*
+ * Pkg state - used to traverse nested package structures
+ */
+typedef struct acpi_pkg_state
+{
+ ACPI_STATE_COMMON
+ union acpi_operand_obj *source_object;
+ union acpi_operand_obj *dest_object;
+ struct acpi_walk_state *walk_state;
+ void *this_target_obj;
+ u32 num_packages;
+ u16 index;
+
+} ACPI_PKG_STATE;
+
+
/*
* Control state - one per if/else and while constructs.
* Allows nesting of these constructs
@@ -428,6 +445,7 @@ typedef union acpi_gen_state
ACPI_UPDATE_STATE update;
ACPI_SCOPE_STATE scope;
ACPI_PSCOPE_STATE parse_scope;
+ ACPI_PKG_STATE pkg;
ACPI_RESULT_VALUES results;
} ACPI_GENERIC_STATE;
@@ -650,7 +668,6 @@ typedef struct acpi_init_walk_info
typedef struct acpi_device_walk_info
{
- u32 flags;
u16 device_count;
u16 num_STA;
u16 num_INI;
diff --git a/drivers/acpi/include/acnamesp.h b/drivers/acpi/include/acnamesp.h
index d6acb8444344..a8ef1e0d7fa1 100644
--- a/drivers/acpi/include/acnamesp.h
+++ b/drivers/acpi/include/acnamesp.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acnamesp.h - Namespace subcomponent prototypes and defines
- * $Revision: 101 $
+ * $Revision: 103 $
*
*****************************************************************************/
@@ -72,7 +72,7 @@ acpi_ns_initialize_objects (
ACPI_STATUS
acpi_ns_initialize_devices (
- u32 flags);
+ void);
/* Namespace init - nsxfinit */
@@ -317,6 +317,11 @@ acpi_ns_get_node (
ACPI_NAMESPACE_NODE *in_prefix_node,
ACPI_NAMESPACE_NODE **out_node);
+u32
+acpi_ns_get_pathname_length (
+ ACPI_NAMESPACE_NODE *node);
+
+
/*
* Object management for NTEs - nsobject
*/
diff --git a/drivers/acpi/include/acoutput.h b/drivers/acpi/include/acoutput.h
index 5c20943cba89..6939d9e7e04b 100644
--- a/drivers/acpi/include/acoutput.h
+++ b/drivers/acpi/include/acoutput.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acoutput.h -- debug output
- * $Revision: 69 $
+ * $Revision: 70 $
*
*****************************************************************************/
@@ -96,6 +96,7 @@
#define TRACE_USER_REQUESTS 0x01000000
#define TRACE_PACKAGE 0x02000000
#define TRACE_MUTEX 0x04000000
+#define TRACE_INIT 0x08000000
#define TRACE_ALL 0x0FFFFF00
diff --git a/drivers/acpi/include/actypes.h b/drivers/acpi/include/actypes.h
index 826fc89018ad..b5bbe9619fd7 100644
--- a/drivers/acpi/include/actypes.h
+++ b/drivers/acpi/include/actypes.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: actypes.h - Common data types for the entire ACPI subsystem
- * $Revision: 163 $
+ * $Revision: 165 $
*
*****************************************************************************/
@@ -237,8 +237,7 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_NO_EVENT_INIT 0x04
#define ACPI_NO_ACPI_ENABLE 0x08
#define ACPI_NO_DEVICE_INIT 0x10
-#define ACPI_NO_PCI_INIT 0x20
-#define ACPI_NO_OBJECT_INIT 0x40
+#define ACPI_NO_OBJECT_INIT 0x20
/*
@@ -1029,22 +1028,14 @@ typedef struct _resource_tag
* END: Definitions for Resource Attributes
*/
-/*
- * Definitions for PCI Routing tables
- */
-typedef struct
-{
- ACPI_INTEGER address;
- u32 pin;
- u32 source_index;
- NATIVE_CHAR source[1];
-
-} PRT_ENTRY;
-typedef struct _prt_tag
+typedef struct pci_routing_table
{
u32 length;
- PRT_ENTRY data;
+ u32 pin;
+ ACPI_INTEGER address; /* here for 64-bit alignment */
+ u32 source_index;
+ NATIVE_CHAR source[4]; /* pad to 64 bits so sizeof() works in all cases */
} PCI_ROUTING_TABLE;