aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/acpi/acconfig.h2
-rw-r--r--include/acpi/acdisasm.h2
-rw-r--r--include/acpi/acexcep.h6
-rw-r--r--include/acpi/acglobal.h3
-rw-r--r--include/acpi/aclocal.h57
-rw-r--r--include/acpi/acmacros.h100
-rw-r--r--include/acpi/acnamesp.h4
-rw-r--r--include/acpi/acobject.h2
-rw-r--r--include/acpi/acoutput.h2
-rw-r--r--include/acpi/acstruct.h11
-rw-r--r--include/acpi/actables.h4
-rw-r--r--include/acpi/actbl.h58
-rw-r--r--include/acpi/actbl1.h52
-rw-r--r--include/acpi/actbl2.h109
-rw-r--r--include/acpi/actypes.h18
-rw-r--r--include/acpi/acutils.h56
-rw-r--r--include/acpi/platform/acgcc.h8
17 files changed, 287 insertions, 207 deletions
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h
index dd9b70cc9634..aa3c08c6da41 100644
--- a/include/acpi/acconfig.h
+++ b/include/acpi/acconfig.h
@@ -64,7 +64,7 @@
64 64
65/* Version string */ 65/* Version string */
66 66
67#define ACPI_CA_VERSION 0x20050624 67#define ACPI_CA_VERSION 0x20050708
68 68
69/* 69/*
70 * OS name, used for the _OS object. The _OS object is essentially obsolete, 70 * OS name, used for the _OS object. The _OS object is essentially obsolete,
diff --git a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h
index fcc2d507faca..26325430db80 100644
--- a/include/acpi/acdisasm.h
+++ b/include/acpi/acdisasm.h
@@ -211,7 +211,7 @@ acpi_dm_byte_list (
211 union acpi_parse_object *op); 211 union acpi_parse_object *op);
212 212
213void 213void
214acpi_is_eisa_id ( 214acpi_dm_is_eisa_id (
215 union acpi_parse_object *op); 215 union acpi_parse_object *op);
216 216
217void 217void
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h
index 60d737b2d70f..0a6f492f3c8e 100644
--- a/include/acpi/acexcep.h
+++ b/include/acpi/acexcep.h
@@ -95,8 +95,9 @@
95#define AE_ABORT_METHOD (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL) 95#define AE_ABORT_METHOD (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL)
96#define AE_SAME_HANDLER (acpi_status) (0x001D | AE_CODE_ENVIRONMENTAL) 96#define AE_SAME_HANDLER (acpi_status) (0x001D | AE_CODE_ENVIRONMENTAL)
97#define AE_WAKE_ONLY_GPE (acpi_status) (0x001E | AE_CODE_ENVIRONMENTAL) 97#define AE_WAKE_ONLY_GPE (acpi_status) (0x001E | AE_CODE_ENVIRONMENTAL)
98#define AE_OWNER_ID_LIMIT (acpi_status) (0x001F | AE_CODE_ENVIRONMENTAL)
98 99
99#define AE_CODE_ENV_MAX 0x001E 100#define AE_CODE_ENV_MAX 0x001F
100 101
101 102
102/* 103/*
@@ -226,7 +227,8 @@ char const *acpi_gbl_exception_names_env[] =
226 "AE_LOGICAL_ADDRESS", 227 "AE_LOGICAL_ADDRESS",
227 "AE_ABORT_METHOD", 228 "AE_ABORT_METHOD",
228 "AE_SAME_HANDLER", 229 "AE_SAME_HANDLER",
229 "AE_WAKE_ONLY_GPE" 230 "AE_WAKE_ONLY_GPE",
231 "AE_OWNER_ID_LIMIT"
230}; 232};
231 233
232char const *acpi_gbl_exception_names_pgm[] = 234char const *acpi_gbl_exception_names_pgm[] =
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h
index 8d5a397abd6b..e3cf16eadbed 100644
--- a/include/acpi/acglobal.h
+++ b/include/acpi/acglobal.h
@@ -218,9 +218,8 @@ ACPI_EXTERN u32 acpi_gbl_original_mode;
218ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; 218ACPI_EXTERN u32 acpi_gbl_rsdp_original_location;
219ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; 219ACPI_EXTERN u32 acpi_gbl_ns_lookup_count;
220ACPI_EXTERN u32 acpi_gbl_ps_find_count; 220ACPI_EXTERN u32 acpi_gbl_ps_find_count;
221ACPI_EXTERN u32 acpi_gbl_owner_id_mask;
221ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; 222ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save;
222ACPI_EXTERN u16 acpi_gbl_next_table_owner_id;
223ACPI_EXTERN u16 acpi_gbl_next_method_owner_id;
224ACPI_EXTERN u16 acpi_gbl_global_lock_handle; 223ACPI_EXTERN u16 acpi_gbl_global_lock_handle;
225ACPI_EXTERN u8 acpi_gbl_debugger_configuration; 224ACPI_EXTERN u8 acpi_gbl_debugger_configuration;
226ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; 225ACPI_EXTERN u8 acpi_gbl_global_lock_acquired;
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h
index 58f9ba1a34e7..4d2635698e10 100644
--- a/include/acpi/aclocal.h
+++ b/include/acpi/aclocal.h
@@ -56,6 +56,13 @@ typedef u32 acpi_mutex_handle;
56#define AML_NUM_OPCODES 0x7F 56#define AML_NUM_OPCODES 0x7F
57 57
58 58
59/* Forward declarations */
60
61struct acpi_walk_state ;
62struct acpi_obj_mutex;
63union acpi_parse_object ;
64
65
59/***************************************************************************** 66/*****************************************************************************
60 * 67 *
61 * Mutex typedefs and structs 68 * Mutex typedefs and structs
@@ -116,19 +123,24 @@ static char *acpi_gbl_mutex_names[] =
116#endif 123#endif
117 124
118 125
126/* Owner IDs are used to track namespace nodes for selective deletion */
127
128typedef u8 acpi_owner_id;
129#define ACPI_OWNER_ID_MAX 0xFF
130
131/* This Thread ID means that the mutex is not in use (unlocked) */
132
133#define ACPI_MUTEX_NOT_ACQUIRED (u32) -1
134
119/* Table for the global mutexes */ 135/* Table for the global mutexes */
120 136
121struct acpi_mutex_info 137struct acpi_mutex_info
122{ 138{
123 acpi_mutex mutex; 139 acpi_mutex mutex;
124 u32 use_count; 140 u32 use_count;
125 u32 owner_id; 141 u32 thread_id;
126}; 142};
127 143
128/* This owner ID means that the mutex is not in use (unlocked) */
129
130#define ACPI_MUTEX_NOT_ACQUIRED (u32) (-1)
131
132 144
133/* Lock flag parameter for various interfaces */ 145/* Lock flag parameter for various interfaces */
134 146
@@ -136,13 +148,6 @@ struct acpi_mutex_info
136#define ACPI_MTX_LOCK 1 148#define ACPI_MTX_LOCK 1
137 149
138 150
139typedef u16 acpi_owner_id;
140#define ACPI_OWNER_TYPE_TABLE 0x0
141#define ACPI_OWNER_TYPE_METHOD 0x1
142#define ACPI_FIRST_METHOD_ID 0x0001
143#define ACPI_FIRST_TABLE_ID 0xF000
144
145
146/* Field access granularities */ 151/* Field access granularities */
147 152
148#define ACPI_FIELD_BYTE_GRANULARITY 1 153#define ACPI_FIELD_BYTE_GRANULARITY 1
@@ -185,13 +190,20 @@ struct acpi_namespace_node
185{ 190{
186 u8 descriptor; /* Used to differentiate object descriptor types */ 191 u8 descriptor; /* Used to differentiate object descriptor types */
187 u8 type; /* Type associated with this name */ 192 u8 type; /* Type associated with this name */
188 u16 owner_id; 193 u16 reference_count; /* Current count of references and children */
189 union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */ 194 union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */
190 union acpi_operand_object *object; /* Pointer to attached ACPI object (optional) */ 195 union acpi_operand_object *object; /* Pointer to attached ACPI object (optional) */
191 struct acpi_namespace_node *child; /* First child */ 196 struct acpi_namespace_node *child; /* First child */
192 struct acpi_namespace_node *peer; /* Next peer*/ 197 struct acpi_namespace_node *peer; /* Next peer*/
193 u16 reference_count; /* Current count of references and children */ 198 u8 owner_id; /* Who created this node */
194 u8 flags; 199 u8 flags;
200
201 /* Fields used by the ASL compiler only */
202
203#ifdef ACPI_ASL_COMPILER
204 u32 value;
205 union acpi_parse_object *op;
206#endif
195}; 207};
196 208
197 209
@@ -222,7 +234,7 @@ struct acpi_table_desc
222 u64 physical_address; 234 u64 physical_address;
223 u32 aml_length; 235 u32 aml_length;
224 acpi_size length; 236 acpi_size length;
225 acpi_owner_id table_id; 237 acpi_owner_id owner_id;
226 u8 type; 238 u8 type;
227 u8 allocation; 239 u8 allocation;
228 u8 loaded_into_namespace; 240 u8 loaded_into_namespace;
@@ -420,13 +432,6 @@ struct acpi_field_info
420#define ACPI_CONTROL_PREDICATE_TRUE 0xC4 432#define ACPI_CONTROL_PREDICATE_TRUE 0xC4
421 433
422 434
423/* Forward declarations */
424
425struct acpi_walk_state ;
426struct acpi_obj_mutex;
427union acpi_parse_object ;
428
429
430#define ACPI_STATE_COMMON /* Two 32-bit fields and a pointer */\ 435#define ACPI_STATE_COMMON /* Two 32-bit fields and a pointer */\
431 u8 data_type; /* To differentiate various internal objs */\ 436 u8 data_type; /* To differentiate various internal objs */\
432 u8 flags; \ 437 u8 flags; \
@@ -916,14 +921,6 @@ struct acpi_integrity_info
916 * 921 *
917 ****************************************************************************/ 922 ****************************************************************************/
918 923
919struct acpi_debug_print_info
920{
921 u32 component_id;
922 char *proc_name;
923 char *module_name;
924};
925
926
927/* Entry for a memory allocation (debug only) */ 924/* Entry for a memory allocation (debug only) */
928 925
929#define ACPI_MEM_MALLOC 0 926#define ACPI_MEM_MALLOC 0
diff --git a/include/acpi/acmacros.h b/include/acpi/acmacros.h
index 09be937d2c39..5b100cef8dfc 100644
--- a/include/acpi/acmacros.h
+++ b/include/acpi/acmacros.h
@@ -437,21 +437,22 @@
437#define ACPI_PARAM_LIST(pl) pl 437#define ACPI_PARAM_LIST(pl) pl
438 438
439/* 439/*
440 * Error reporting. These versions add callers module and line#. Since 440 * Error reporting. These versions add callers module and line#.
441 * _THIS_MODULE gets compiled out when ACPI_DEBUG_OUTPUT isn't defined, only 441 *
442 * use it in debug mode. 442 * Since _acpi_module_name gets compiled out when ACPI_DEBUG_OUTPUT
443 * isn't defined, only use it in debug mode.
443 */ 444 */
444#ifdef ACPI_DEBUG_OUTPUT 445#ifdef ACPI_DEBUG_OUTPUT
445 446
446#define ACPI_REPORT_INFO(fp) {acpi_ut_report_info(_THIS_MODULE,__LINE__,_COMPONENT); \ 447#define ACPI_REPORT_INFO(fp) {acpi_ut_report_info(_acpi_module_name,__LINE__,_COMPONENT); \
447 acpi_os_printf ACPI_PARAM_LIST(fp);} 448 acpi_os_printf ACPI_PARAM_LIST(fp);}
448#define ACPI_REPORT_ERROR(fp) {acpi_ut_report_error(_THIS_MODULE,__LINE__,_COMPONENT); \ 449#define ACPI_REPORT_ERROR(fp) {acpi_ut_report_error(_acpi_module_name,__LINE__,_COMPONENT); \
449 acpi_os_printf ACPI_PARAM_LIST(fp);} 450 acpi_os_printf ACPI_PARAM_LIST(fp);}
450#define ACPI_REPORT_WARNING(fp) {acpi_ut_report_warning(_THIS_MODULE,__LINE__,_COMPONENT); \ 451#define ACPI_REPORT_WARNING(fp) {acpi_ut_report_warning(_acpi_module_name,__LINE__,_COMPONENT); \
451 acpi_os_printf ACPI_PARAM_LIST(fp);} 452 acpi_os_printf ACPI_PARAM_LIST(fp);}
452#define ACPI_REPORT_NSERROR(s,e) acpi_ns_report_error(_THIS_MODULE,__LINE__,_COMPONENT, s, e); 453#define ACPI_REPORT_NSERROR(s,e) acpi_ns_report_error(_acpi_module_name,__LINE__,_COMPONENT, s, e);
453 454
454#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) acpi_ns_report_method_error(_THIS_MODULE,__LINE__,_COMPONENT, s, n, p, e); 455#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) acpi_ns_report_method_error(_acpi_module_name,__LINE__,_COMPONENT, s, n, p, e);
455 456
456#else 457#else
457 458
@@ -480,36 +481,56 @@
480 * Debug macros that are conditionally compiled 481 * Debug macros that are conditionally compiled
481 */ 482 */
482#ifdef ACPI_DEBUG_OUTPUT 483#ifdef ACPI_DEBUG_OUTPUT
484#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_acpi_module_name = name;
483 485
484#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_THIS_MODULE = name; 486/*
487 * Common parameters used for debug output functions:
488 * line number, function name, module(file) name, component ID
489 */
490#define ACPI_DEBUG_PARAMETERS __LINE__, ACPI_GET_FUNCTION_NAME, _acpi_module_name, _COMPONENT
485 491
486/* 492/*
487 * Function entry tracing. 493 * Function entry tracing
488 * The first parameter should be the procedure name as a quoted string. This is declared
489 * as a local string ("_proc_name) so that it can be also used by the function exit macros below.
490 */ 494 */
491#define ACPI_FUNCTION_NAME(a) struct acpi_debug_print_info _debug_info; \ 495
492 _debug_info.component_id = _COMPONENT; \ 496/*
493 _debug_info.proc_name = a; \ 497 * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header,
494 _debug_info.module_name = _THIS_MODULE; 498 * define it now. This is the case where there the compiler does not support
495 499 * a __FUNCTION__ macro or equivalent. We save the function name on the
496#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ 500 * local stack.
497 acpi_ut_trace(__LINE__,&_debug_info) 501 */
498#define ACPI_FUNCTION_TRACE_PTR(a,b) ACPI_FUNCTION_NAME(a) \ 502#ifndef ACPI_GET_FUNCTION_NAME
499 acpi_ut_trace_ptr(__LINE__,&_debug_info,(void *)b) 503#define ACPI_GET_FUNCTION_NAME _acpi_function_name
500#define ACPI_FUNCTION_TRACE_U32(a,b) ACPI_FUNCTION_NAME(a) \ 504/*
501 acpi_ut_trace_u32(__LINE__,&_debug_info,(u32)b) 505 * The Name parameter should be the procedure name as a quoted string.
502#define ACPI_FUNCTION_TRACE_STR(a,b) ACPI_FUNCTION_NAME(a) \ 506 * This is declared as a local string ("my_function_name") so that it can
503 acpi_ut_trace_str(__LINE__,&_debug_info,(char *)b) 507 * be also used by the function exit macros below.
504 508 */
505#define ACPI_FUNCTION_ENTRY() acpi_ut_track_stack_ptr() 509#define ACPI_FUNCTION_NAME(name) char *_acpi_function_name = name;
510
511#else
512/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */
513
514#define ACPI_FUNCTION_NAME(name)
515#endif
516
517#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \
518 acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
519#define ACPI_FUNCTION_TRACE_PTR(a,b) ACPI_FUNCTION_NAME(a) \
520 acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS,(void *)b)
521#define ACPI_FUNCTION_TRACE_U32(a,b) ACPI_FUNCTION_NAME(a) \
522 acpi_ut_trace_u32(ACPI_DEBUG_PARAMETERS,(u32)b)
523#define ACPI_FUNCTION_TRACE_STR(a,b) ACPI_FUNCTION_NAME(a) \
524 acpi_ut_trace_str(ACPI_DEBUG_PARAMETERS,(char *)b)
525
526#define ACPI_FUNCTION_ENTRY() acpi_ut_track_stack_ptr()
506 527
507/* 528/*
508 * Function exit tracing. 529 * Function exit tracing.
509 * WARNING: These macros include a return statement. This is usually considered 530 * WARNING: These macros include a return statement. This is usually considered
510 * bad form, but having a separate exit macro is very ugly and difficult to maintain. 531 * bad form, but having a separate exit macro is very ugly and difficult to maintain.
511 * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros 532 * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
512 * so that "_proc_name" is defined. 533 * so that "_acpi_function_name" is defined.
513 */ 534 */
514#ifdef ACPI_USE_DO_WHILE_0 535#ifdef ACPI_USE_DO_WHILE_0
515#define ACPI_DO_WHILE0(a) do a while(0) 536#define ACPI_DO_WHILE0(a) do a while(0)
@@ -517,10 +538,10 @@
517#define ACPI_DO_WHILE0(a) a 538#define ACPI_DO_WHILE0(a) a
518#endif 539#endif
519 540
520#define return_VOID ACPI_DO_WHILE0 ({acpi_ut_exit(__LINE__,&_debug_info);return;}) 541#define return_VOID ACPI_DO_WHILE0 ({acpi_ut_exit(ACPI_DEBUG_PARAMETERS);return;})
521#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({acpi_ut_status_exit(__LINE__,&_debug_info,(s));return((s));}) 542#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({acpi_ut_status_exit(ACPI_DEBUG_PARAMETERS,(s));return((s));})
522#define return_VALUE(s) ACPI_DO_WHILE0 ({acpi_ut_value_exit(__LINE__,&_debug_info,(acpi_integer)(s));return((s));}) 543#define return_VALUE(s) ACPI_DO_WHILE0 ({acpi_ut_value_exit(ACPI_DEBUG_PARAMETERS,(acpi_integer)(s));return((s));})
523#define return_PTR(s) ACPI_DO_WHILE0 ({acpi_ut_ptr_exit(__LINE__,&_debug_info,(u8 *)(s));return((s));}) 544#define return_PTR(s) ACPI_DO_WHILE0 ({acpi_ut_ptr_exit(ACPI_DEBUG_PARAMETERS,(u8 *)(s));return((s));})
524 545
525/* Conditional execution */ 546/* Conditional execution */
526 547
@@ -535,7 +556,7 @@
535/* Stack and buffer dumping */ 556/* Stack and buffer dumping */
536 557
537#define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a),0) 558#define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a),0)
538#define ACPI_DUMP_OPERANDS(a,b,c,d,e) acpi_ex_dump_operands(a,b,c,d,e,_THIS_MODULE,__LINE__) 559#define ACPI_DUMP_OPERANDS(a,b,c,d,e) acpi_ex_dump_operands(a,b,c,d,e,_acpi_module_name,__LINE__)
539 560
540 561
541#define ACPI_DUMP_ENTRY(a,b) acpi_ns_dump_entry (a,b) 562#define ACPI_DUMP_ENTRY(a,b) acpi_ns_dump_entry (a,b)
@@ -572,7 +593,7 @@
572 * leaving no executable debug code! 593 * leaving no executable debug code!
573 */ 594 */
574#define ACPI_MODULE_NAME(name) 595#define ACPI_MODULE_NAME(name)
575#define _THIS_MODULE "" 596#define _acpi_module_name ""
576 597
577#define ACPI_DEBUG_EXEC(a) 598#define ACPI_DEBUG_EXEC(a)
578#define ACPI_NORMAL_EXEC(a) a; 599#define ACPI_NORMAL_EXEC(a) a;
@@ -648,19 +669,18 @@
648 669
649/* Memory allocation */ 670/* Memory allocation */
650 671
651#define ACPI_MEM_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_THIS_MODULE,__LINE__) 672#define ACPI_MEM_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
652#define ACPI_MEM_CALLOCATE(a) acpi_ut_callocate((acpi_size)(a), _COMPONENT,_THIS_MODULE,__LINE__) 673#define ACPI_MEM_CALLOCATE(a) acpi_ut_callocate((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
653#define ACPI_MEM_FREE(a) acpi_os_free(a) 674#define ACPI_MEM_FREE(a) acpi_os_free(a)
654#define ACPI_MEM_TRACKING(a) 675#define ACPI_MEM_TRACKING(a)
655 676
656
657#else 677#else
658 678
659/* Memory allocation */ 679/* Memory allocation */
660 680
661#define ACPI_MEM_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size)(a),_COMPONENT,_THIS_MODULE,__LINE__) 681#define ACPI_MEM_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
662#define ACPI_MEM_CALLOCATE(a) acpi_ut_callocate_and_track((acpi_size)(a), _COMPONENT,_THIS_MODULE,__LINE__) 682#define ACPI_MEM_CALLOCATE(a) acpi_ut_callocate_and_track((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
663#define ACPI_MEM_FREE(a) acpi_ut_free_and_track(a,_COMPONENT,_THIS_MODULE,__LINE__) 683#define ACPI_MEM_FREE(a) acpi_ut_free_and_track(a,_COMPONENT,_acpi_module_name,__LINE__)
664#define ACPI_MEM_TRACKING(a) a 684#define ACPI_MEM_TRACKING(a) a
665 685
666#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 686#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
diff --git a/include/acpi/acnamesp.h b/include/acpi/acnamesp.h
index d1b3ce80056f..870e2544bd9b 100644
--- a/include/acpi/acnamesp.h
+++ b/include/acpi/acnamesp.h
@@ -163,7 +163,7 @@ acpi_ns_delete_namespace_subtree (
163 163
164void 164void
165acpi_ns_delete_namespace_by_owner ( 165acpi_ns_delete_namespace_by_owner (
166 u16 table_id); 166 acpi_owner_id owner_id);
167 167
168void 168void
169acpi_ns_detach_object ( 169acpi_ns_detach_object (
@@ -219,7 +219,7 @@ acpi_ns_dump_objects (
219 acpi_object_type type, 219 acpi_object_type type,
220 u8 display_type, 220 u8 display_type,
221 u32 max_depth, 221 u32 max_depth,
222 u32 ownder_id, 222 acpi_owner_id owner_id,
223 acpi_handle start_handle); 223 acpi_handle start_handle);
224#endif /* ACPI_FUTURE_USAGE */ 224#endif /* ACPI_FUTURE_USAGE */
225 225
diff --git a/include/acpi/acobject.h b/include/acpi/acobject.h
index e079b94e4fce..34f9d1f1f79b 100644
--- a/include/acpi/acobject.h
+++ b/include/acpi/acobject.h
@@ -199,7 +199,7 @@ struct acpi_object_method
199 ACPI_INTERNAL_METHOD implementation; 199 ACPI_INTERNAL_METHOD implementation;
200 u8 concurrency; 200 u8 concurrency;
201 u8 thread_count; 201 u8 thread_count;
202 acpi_owner_id owning_id; 202 acpi_owner_id owner_id;
203}; 203};
204 204
205 205
diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h
index 2fbe180fee6b..d7e828cb84b3 100644
--- a/include/acpi/acoutput.h
+++ b/include/acpi/acoutput.h
@@ -136,7 +136,7 @@
136/* 136/*
137 * Debug level macros that are used in the DEBUG_PRINT macros 137 * Debug level macros that are used in the DEBUG_PRINT macros
138 */ 138 */
139#define ACPI_DEBUG_LEVEL(dl) (u32) dl,__LINE__,&_debug_info 139#define ACPI_DEBUG_LEVEL(dl) (u32) dl,ACPI_DEBUG_PARAMETERS
140 140
141/* Exception level -- used in the global "debug_level" */ 141/* Exception level -- used in the global "debug_level" */
142 142
diff --git a/include/acpi/acstruct.h b/include/acpi/acstruct.h
index a2025a8da008..f375c17ad0b6 100644
--- a/include/acpi/acstruct.h
+++ b/include/acpi/acstruct.h
@@ -71,7 +71,6 @@ struct acpi_walk_state
71 u8 walk_type; 71 u8 walk_type;
72 acpi_owner_id owner_id; /* Owner of objects created during the walk */ 72 acpi_owner_id owner_id; /* Owner of objects created during the walk */
73 u8 last_predicate; /* Result of last predicate */ 73 u8 last_predicate; /* Result of last predicate */
74 u8 reserved; /* For alignment */
75 u8 current_result; /* */ 74 u8 current_result; /* */
76 u8 next_op_info; /* Info about next_op */ 75 u8 next_op_info; /* Info about next_op */
77 u8 num_operands; /* Stack pointer for Operands[] array */ 76 u8 num_operands; /* Stack pointer for Operands[] array */
@@ -154,17 +153,17 @@ struct acpi_device_walk_info
154struct acpi_walk_info 153struct acpi_walk_info
155{ 154{
156 u32 debug_level; 155 u32 debug_level;
157 u32 owner_id; 156 acpi_owner_id owner_id;
158 u8 display_type; 157 u8 display_type;
159}; 158};
160 159
161/* Display Types */ 160/* Display Types */
162 161
163#define ACPI_DISPLAY_SUMMARY 0 162#define ACPI_DISPLAY_SUMMARY (u8) 0
164#define ACPI_DISPLAY_OBJECTS 1 163#define ACPI_DISPLAY_OBJECTS (u8) 1
165#define ACPI_DISPLAY_MASK 1 164#define ACPI_DISPLAY_MASK (u8) 1
166 165
167#define ACPI_DISPLAY_SHORT 2 166#define ACPI_DISPLAY_SHORT (u8) 2
168 167
169struct acpi_get_devices_info 168struct acpi_get_devices_info
170{ 169{
diff --git a/include/acpi/actables.h b/include/acpi/actables.h
index 39df92e21a0d..97e6f12da527 100644
--- a/include/acpi/actables.h
+++ b/include/acpi/actables.h
@@ -169,6 +169,10 @@ acpi_status
169acpi_tb_get_table_rsdt ( 169acpi_tb_get_table_rsdt (
170 void); 170 void);
171 171
172acpi_status
173acpi_tb_validate_rsdp (
174 struct rsdp_descriptor *rsdp);
175
172 176
173/* 177/*
174 * tbutils - common table utilities 178 * tbutils - common table utilities
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h
index b5cdcca444c8..c1e9110c3661 100644
--- a/include/acpi/actbl.h
+++ b/include/acpi/actbl.h
@@ -86,15 +86,15 @@
86 */ 86 */
87struct rsdp_descriptor /* Root System Descriptor Pointer */ 87struct rsdp_descriptor /* Root System Descriptor Pointer */
88{ 88{
89 char signature [8]; /* ACPI signature, contains "RSD PTR " */ 89 char signature[8]; /* ACPI signature, contains "RSD PTR " */
90 u8 checksum; /* To make sum of struct == 0 */ 90 u8 checksum; /* ACPI 1.0 checksum */
91 char oem_id [6]; /* OEM identification */ 91 char oem_id[6]; /* OEM identification */
92 u8 revision; /* Must be 0 for 1.0, 2 for 2.0 */ 92 u8 revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
93 u32 rsdt_physical_address; /* 32-bit physical address of RSDT */ 93 u32 rsdt_physical_address; /* 32-bit physical address of the RSDT */
94 u32 length; /* XSDT Length in bytes including hdr */ 94 u32 length; /* XSDT Length in bytes, including header */
95 u64 xsdt_physical_address; /* 64-bit physical address of XSDT */ 95 u64 xsdt_physical_address; /* 64-bit physical address of the XSDT */
96 u8 extended_checksum; /* Checksum of entire table */ 96 u8 extended_checksum; /* Checksum of entire table (ACPI 2.0) */
97 char reserved [3]; /* Reserved field must be 0 */ 97 char reserved[3]; /* Reserved, must be zero */
98}; 98};
99 99
100 100
@@ -107,15 +107,15 @@ struct acpi_common_facs /* Common FACS for internal use */
107 107
108 108
109#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \ 109#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \
110 char signature [4]; /* ACPI signature (4 ASCII characters) */\ 110 char signature[4]; /* ASCII table signature */\
111 u32 length; /* Length of table, in bytes, including header */\ 111 u32 length; /* Length of table in bytes, including this header */\
112 u8 revision; /* ACPI Specification minor version # */\ 112 u8 revision; /* ACPI Specification minor version # */\
113 u8 checksum; /* To make sum of entire table == 0 */\ 113 u8 checksum; /* To make sum of entire table == 0 */\
114 char oem_id [6]; /* OEM identification */\ 114 char oem_id[6]; /* ASCII OEM identification */\
115 char oem_table_id [8]; /* OEM table identification */\ 115 char oem_table_id[8]; /* ASCII OEM table identification */\
116 u32 oem_revision; /* OEM revision number */\ 116 u32 oem_revision; /* OEM revision number */\
117 char asl_compiler_id [4]; /* ASL compiler vendor ID */\ 117 char asl_compiler_id [4]; /* ASCII ASL compiler vendor ID */\
118 u32 asl_compiler_revision; /* ASL compiler revision number */ 118 u32 asl_compiler_revision; /* ASL compiler version */
119 119
120 120
121struct acpi_table_header /* ACPI common table header */ 121struct acpi_table_header /* ACPI common table header */
@@ -139,8 +139,12 @@ struct multiple_apic_table
139{ 139{
140 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 140 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
141 u32 local_apic_address; /* Physical address of local APIC */ 141 u32 local_apic_address; /* Physical address of local APIC */
142 u32 PCATcompat : 1; /* A one indicates system also has dual 8259s */ 142
143 u32 reserved1 : 31; 143 /* Flags (32 bits) */
144
145 u8 PCATcompat : 1; /* 00: System also has dual 8259s */
146 u8 : 7; /* 01-07: Reserved, must be zero */
147 u8 reserved1[3]; /* 08-31: Reserved, must be zero */
144}; 148};
145 149
146/* Values for Type in APIC_HEADER_DEF */ 150/* Values for Type in APIC_HEADER_DEF */
@@ -180,16 +184,18 @@ struct apic_header
180#define TRIGGER_RESERVED 2 184#define TRIGGER_RESERVED 2
181#define TRIGGER_LEVEL 3 185#define TRIGGER_LEVEL 3
182 186
183/* Common flag definitions */ 187/* Common flag definitions (16 bits each) */
184 188
185#define MPS_INTI_FLAGS \ 189#define MPS_INTI_FLAGS \
186 u16 polarity : 2; /* Polarity of APIC I/O input signals */\ 190 u8 polarity : 2; /* 00-01: Polarity of APIC I/O input signals */\
187 u16 trigger_mode : 2; /* Trigger mode of APIC input signals */\ 191 u8 trigger_mode : 2; /* 02-03: Trigger mode of APIC input signals */\
188 u16 reserved1 : 12; /* Reserved, must be zero */ 192 u8 : 4; /* 04-07: Reserved, must be zero */\
193 u8 reserved1; /* 08-15: Reserved, must be zero */
189 194
190#define LOCAL_APIC_FLAGS \ 195#define LOCAL_APIC_FLAGS \
191 u32 processor_enabled: 1; /* Processor is usable if set */\ 196 u8 processor_enabled: 1; /* 00: Processor is usable if set */\
192 u32 reserved2 : 31; /* Reserved, must be zero */ 197 u8 : 7; /* 01-07: Reserved, must be zero */\
198 u8 reserved2; /* 08-15: Reserved, must be zero */
193 199
194/* Sub-structures for MADT */ 200/* Sub-structures for MADT */
195 201
@@ -238,7 +244,7 @@ struct madt_local_apic_nmi
238struct madt_address_override 244struct madt_address_override
239{ 245{
240 APIC_HEADER_DEF 246 APIC_HEADER_DEF
241 u16 reserved; /* Reserved - must be zero */ 247 u16 reserved; /* Reserved, must be zero */
242 u64 address; /* APIC physical address */ 248 u64 address; /* APIC physical address */
243}; 249};
244 250
@@ -246,7 +252,7 @@ struct madt_io_sapic
246{ 252{
247 APIC_HEADER_DEF 253 APIC_HEADER_DEF
248 u8 io_sapic_id; /* I/O SAPIC ID */ 254 u8 io_sapic_id; /* I/O SAPIC ID */
249 u8 reserved; /* Reserved - must be zero */ 255 u8 reserved; /* Reserved, must be zero */
250 u32 interrupt_base; /* Glocal interrupt for SAPIC start */ 256 u32 interrupt_base; /* Glocal interrupt for SAPIC start */
251 u64 address; /* SAPIC physical address */ 257 u64 address; /* SAPIC physical address */
252}; 258};
@@ -257,7 +263,7 @@ struct madt_local_sapic
257 u8 processor_id; /* ACPI processor id */ 263 u8 processor_id; /* ACPI processor id */
258 u8 local_sapic_id; /* SAPIC ID */ 264 u8 local_sapic_id; /* SAPIC ID */
259 u8 local_sapic_eid; /* SAPIC EID */ 265 u8 local_sapic_eid; /* SAPIC EID */
260 u8 reserved [3]; /* Reserved - must be zero */ 266 u8 reserved[3]; /* Reserved, must be zero */
261 LOCAL_APIC_FLAGS 267 LOCAL_APIC_FLAGS
262 u32 processor_uID; /* Numeric UID - ACPI 3.0 */ 268 u32 processor_uID; /* Numeric UID - ACPI 3.0 */
263 char processor_uIDstring[1]; /* String UID - ACPI 3.0 */ 269 char processor_uIDstring[1]; /* String UID - ACPI 3.0 */
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h
index 33de5f4d2ccc..93c175a4f446 100644
--- a/include/acpi/actbl1.h
+++ b/include/acpi/actbl1.h
@@ -52,8 +52,7 @@
52struct rsdt_descriptor_rev1 52struct rsdt_descriptor_rev1
53{ 53{
54 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 54 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
55 u32 table_offset_entry [1]; /* Array of pointers to other */ 55 u32 table_offset_entry[1]; /* Array of pointers to ACPI tables */
56 /* ACPI tables */
57}; 56};
58 57
59 58
@@ -62,14 +61,19 @@ struct rsdt_descriptor_rev1
62 */ 61 */
63struct facs_descriptor_rev1 62struct facs_descriptor_rev1
64{ 63{
65 char signature[4]; /* ACPI Signature */ 64 char signature[4]; /* ASCII table signature */
66 u32 length; /* Length of structure, in bytes */ 65 u32 length; /* Length of structure in bytes */
67 u32 hardware_signature; /* Hardware configuration signature */ 66 u32 hardware_signature; /* Hardware configuration signature */
68 u32 firmware_waking_vector; /* ACPI OS waking vector */ 67 u32 firmware_waking_vector; /* ACPI OS waking vector */
69 u32 global_lock; /* Global Lock */ 68 u32 global_lock; /* Global Lock */
70 u32 S4bios_f : 1; /* Indicates if S4BIOS support is present */ 69
71 u32 reserved1 : 31; /* Must be 0 */ 70 /* Flags (32 bits) */
72 u8 resverved3 [40]; /* Reserved - must be zero */ 71
72 u8 S4bios_f : 1; /* 00: S4BIOS support is present */
73 u8 : 7; /* 01-07: Reserved, must be zero */
74 u8 reserved1[3]; /* 08-31: Reserved, must be zero */
75
76 u8 reserved2[40]; /* Reserved, must be zero */
73}; 77};
74 78
75 79
@@ -82,13 +86,13 @@ struct fadt_descriptor_rev1
82 u32 firmware_ctrl; /* Physical address of FACS */ 86 u32 firmware_ctrl; /* Physical address of FACS */
83 u32 dsdt; /* Physical address of DSDT */ 87 u32 dsdt; /* Physical address of DSDT */
84 u8 model; /* System Interrupt Model */ 88 u8 model; /* System Interrupt Model */
85 u8 reserved1; /* Reserved */ 89 u8 reserved1; /* Reserved, must be zero */
86 u16 sci_int; /* System vector of SCI interrupt */ 90 u16 sci_int; /* System vector of SCI interrupt */
87 u32 smi_cmd; /* Port address of SMI command port */ 91 u32 smi_cmd; /* Port address of SMI command port */
88 u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */ 92 u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */
89 u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */ 93 u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */
90 u8 S4bios_req; /* Value to write to SMI CMD to enter S4BIOS state */ 94 u8 S4bios_req; /* Value to write to SMI CMD to enter S4BIOS state */
91 u8 reserved2; /* Reserved - must be zero */ 95 u8 reserved2; /* Reserved, must be zero */
92 u32 pm1a_evt_blk; /* Port address of Power Mgt 1a acpi_event Reg Blk */ 96 u32 pm1a_evt_blk; /* Port address of Power Mgt 1a acpi_event Reg Blk */
93 u32 pm1b_evt_blk; /* Port address of Power Mgt 1b acpi_event Reg Blk */ 97 u32 pm1b_evt_blk; /* Port address of Power Mgt 1b acpi_event Reg Blk */
94 u32 pm1a_cnt_blk; /* Port address of Power Mgt 1a Control Reg Blk */ 98 u32 pm1a_cnt_blk; /* Port address of Power Mgt 1a Control Reg Blk */
@@ -104,7 +108,7 @@ struct fadt_descriptor_rev1
104 u8 gpe0_blk_len; /* Byte Length of ports at gpe0_blk */ 108 u8 gpe0_blk_len; /* Byte Length of ports at gpe0_blk */
105 u8 gpe1_blk_len; /* Byte Length of ports at gpe1_blk */ 109 u8 gpe1_blk_len; /* Byte Length of ports at gpe1_blk */
106 u8 gpe1_base; /* Offset in gpe model where gpe1 events start */ 110 u8 gpe1_base; /* Offset in gpe model where gpe1 events start */
107 u8 reserved3; /* Reserved */ 111 u8 reserved3; /* Reserved, must be zero */
108 u16 plvl2_lat; /* Worst case HW latency to enter/exit C2 state */ 112 u16 plvl2_lat; /* Worst case HW latency to enter/exit C2 state */
109 u16 plvl3_lat; /* Worst case HW latency to enter/exit C3 state */ 113 u16 plvl3_lat; /* Worst case HW latency to enter/exit C3 state */
110 u16 flush_size; /* Size of area read to flush caches */ 114 u16 flush_size; /* Size of area read to flush caches */
@@ -114,19 +118,21 @@ struct fadt_descriptor_rev1
114 u8 day_alrm; /* Index to day-of-month alarm in RTC CMOS RAM */ 118 u8 day_alrm; /* Index to day-of-month alarm in RTC CMOS RAM */
115 u8 mon_alrm; /* Index to month-of-year alarm in RTC CMOS RAM */ 119 u8 mon_alrm; /* Index to month-of-year alarm in RTC CMOS RAM */
116 u8 century; /* Index to century in RTC CMOS RAM */ 120 u8 century; /* Index to century in RTC CMOS RAM */
117 u8 reserved4; /* Reserved */ 121 u8 reserved4[3]; /* Reserved, must be zero */
118 u8 reserved4a; /* Reserved */ 122
119 u8 reserved4b; /* Reserved */ 123 /* Flags (32 bits) */
120 u32 wb_invd : 1; /* The wbinvd instruction works properly */ 124
121 u32 wb_invd_flush : 1; /* The wbinvd flushes but does not invalidate */ 125 u8 wb_invd : 1; /* 00: The wbinvd instruction works properly */
122 u32 proc_c1 : 1; /* All processors support C1 state */ 126 u8 wb_invd_flush : 1; /* 01: The wbinvd flushes but does not invalidate */
123 u32 plvl2_up : 1; /* C2 state works on MP system */ 127 u8 proc_c1 : 1; /* 02: All processors support C1 state */
124 u32 pwr_button : 1; /* Power button is handled as a generic feature */ 128 u8 plvl2_up : 1; /* 03: C2 state works on MP system */
125 u32 sleep_button : 1; /* Sleep button is handled as a generic feature, or not present */ 129 u8 pwr_button : 1; /* 04: Power button is handled as a generic feature */
126 u32 fixed_rTC : 1; /* RTC wakeup stat not in fixed register space */ 130 u8 sleep_button : 1; /* 05: Sleep button is handled as a generic feature, or not present */
127 u32 rtcs4 : 1; /* RTC wakeup stat not possible from S4 */ 131 u8 fixed_rTC : 1; /* 06: RTC wakeup stat not in fixed register space */
128 u32 tmr_val_ext : 1; /* The tmr_val width is 32 bits (0 = 24 bits) */ 132 u8 rtcs4 : 1; /* 07: RTC wakeup stat not possible from S4 */
129 u32 reserved5 : 23; /* Reserved - must be zero */ 133 u8 tmr_val_ext : 1; /* 08: tmr_val width is 32 bits (0 = 24 bits) */
134 u8 : 7; /* 09-15: Reserved, must be zero */
135 u8 reserved5[2]; /* 16-31: Reserved, must be zero */
130}; 136};
131 137
132#pragma pack() 138#pragma pack()
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index e1729c967e05..84ce5abbd6f6 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -73,8 +73,7 @@
73struct rsdt_descriptor_rev2 73struct rsdt_descriptor_rev2
74{ 74{
75 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 75 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
76 u32 table_offset_entry [1]; /* Array of pointers to */ 76 u32 table_offset_entry[1]; /* Array of pointers to ACPI tables */
77 /* ACPI table headers */
78}; 77};
79 78
80 79
@@ -84,8 +83,7 @@ struct rsdt_descriptor_rev2
84struct xsdt_descriptor_rev2 83struct xsdt_descriptor_rev2
85{ 84{
86 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 85 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
87 u64 table_offset_entry [1]; /* Array of pointers to */ 86 u64 table_offset_entry[1]; /* Array of pointers to ACPI tables */
88 /* ACPI table headers */
89}; 87};
90 88
91 89
@@ -94,16 +92,21 @@ struct xsdt_descriptor_rev2
94 */ 92 */
95struct facs_descriptor_rev2 93struct facs_descriptor_rev2
96{ 94{
97 char signature[4]; /* ACPI signature */ 95 char signature[4]; /* ASCII table signature */
98 u32 length; /* Length of structure, in bytes */ 96 u32 length; /* Length of structure, in bytes */
99 u32 hardware_signature; /* Hardware configuration signature */ 97 u32 hardware_signature; /* Hardware configuration signature */
100 u32 firmware_waking_vector; /* 32bit physical address of the Firmware Waking Vector. */ 98 u32 firmware_waking_vector; /* 32-bit physical address of the Firmware Waking Vector. */
101 u32 global_lock; /* Global Lock used to synchronize access to shared hardware resources */ 99 u32 global_lock; /* Global Lock used to synchronize access to shared hardware resources */
102 u32 S4bios_f : 1; /* S4Bios_f - Indicates if S4BIOS support is present */ 100
103 u32 reserved1 : 31; /* Must be 0 */ 101 /* Flags (32 bits) */
104 u64 xfirmware_waking_vector; /* 64bit physical address of the Firmware Waking Vector. */ 102
103 u8 S4bios_f : 1; /* 00: S4BIOS support is present */
104 u8 : 7; /* 01-07: Reserved, must be zero */
105 u8 reserved1[3]; /* 08-31: Reserved, must be zero */
106
107 u64 xfirmware_waking_vector; /* 64-bit physical address of the Firmware Waking Vector. */
105 u8 version; /* Version of this table */ 108 u8 version; /* Version of this table */
106 u8 reserved3 [31]; /* Reserved - must be zero */ 109 u8 reserved3[31]; /* Reserved, must be zero */
107}; 110};
108 111
109 112
@@ -165,35 +168,37 @@ struct fadt_descriptor_rev2
165{ 168{
166 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 169 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
167 FADT_REV2_COMMON 170 FADT_REV2_COMMON
168 u8 reserved2; /* Reserved */ 171 u8 reserved2; /* Reserved, must be zero */
169 u32 wb_invd : 1; /* The wbinvd instruction works properly */ 172
170 u32 wb_invd_flush : 1; /* The wbinvd flushes but does not invalidate */ 173 /* Flags (32 bits) */
171 u32 proc_c1 : 1; /* All processors support C1 state */ 174
172 u32 plvl2_up : 1; /* C2 state works on MP system */ 175 u8 wb_invd : 1; /* 00: The wbinvd instruction works properly */
173 u32 pwr_button : 1; /* Power button is handled as a generic feature */ 176 u8 wb_invd_flush : 1; /* 01: The wbinvd flushes but does not invalidate */
174 u32 sleep_button : 1; /* Sleep button is handled as a generic feature, or not present */ 177 u8 proc_c1 : 1; /* 02: All processors support C1 state */
175 u32 fixed_rTC : 1; /* RTC wakeup stat not in fixed register space */ 178 u8 plvl2_up : 1; /* 03: C2 state works on MP system */
176 u32 rtcs4 : 1; /* RTC wakeup stat not possible from S4 */ 179 u8 pwr_button : 1; /* 04: Power button is handled as a generic feature */
177 u32 tmr_val_ext : 1; /* Indicates tmr_val is 32 bits 0=24-bits */ 180 u8 sleep_button : 1; /* 05: Sleep button is handled as a generic feature, or not present */
178 u32 dock_cap : 1; /* Supports Docking */ 181 u8 fixed_rTC : 1; /* 06: RTC wakeup stat not in fixed register space */
179 u32 reset_reg_sup : 1; /* Indicates system supports system reset via the FADT RESET_REG */ 182 u8 rtcs4 : 1; /* 07: RTC wakeup stat not possible from S4 */
180 u32 sealed_case : 1; /* Indicates system has no internal expansion capabilities and case is sealed */ 183 u8 tmr_val_ext : 1; /* 08: tmr_val is 32 bits 0=24-bits */
181 u32 headless : 1; /* Indicates system does not have local video capabilities or local input devices */ 184 u8 dock_cap : 1; /* 09: Docking supported */
182 u32 cpu_sw_sleep : 1; /* Indicates to OSPM that a processor native instruction */ 185 u8 reset_reg_sup : 1; /* 10: System reset via the FADT RESET_REG supported */
183 /* must be executed after writing the SLP_TYPx register */ 186 u8 sealed_case : 1; /* 11: No internal expansion capabilities and case is sealed */
184 /* ACPI 3.0 flag bits */ 187 u8 headless : 1; /* 12: No local video capabilities or local input devices */
185 188 u8 cpu_sw_sleep : 1; /* 13: Must execute native instruction after writing SLP_TYPx register */
186 u32 pci_exp_wak : 1; /* System supports PCIEXP_WAKE (STS/EN) bits */ 189
187 u32 use_platform_clock : 1; /* OSPM should use platform-provided timer */ 190 u8 pci_exp_wak : 1; /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */
188 u32 S4rtc_sts_valid : 1; /* Contents of RTC_STS valid after S4 wake */ 191 u8 use_platform_clock : 1; /* 15: OSPM should use platform-provided timer (ACPI 3.0) */
189 u32 remote_power_on_capable : 1; /* System is compatible with remote power on */ 192 u8 S4rtc_sts_valid : 1; /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */
190 u32 force_apic_cluster_model : 1; /* All local APICs must use cluster model */ 193 u8 remote_power_on_capable : 1; /* 17: System is compatible with remote power on (ACPI 3.0) */
191 u32 force_apic_physical_destination_mode : 1; /* all local x_aPICs must use physical dest mode */ 194 u8 force_apic_cluster_model : 1; /* 18: All local APICs must use cluster model (ACPI 3.0) */
192 u32 reserved6 : 12;/* Reserved - must be zero */ 195 u8 force_apic_physical_destination_mode : 1; /* 19: all local x_aPICs must use physical dest mode (ACPI 3.0) */
196 u8 : 4; /* 20-23: Reserved, must be zero */
197 u8 reserved3; /* 24-31: Reserved, must be zero */
193 198
194 struct acpi_generic_address reset_register; /* Reset register address in GAS format */ 199 struct acpi_generic_address reset_register; /* Reset register address in GAS format */
195 u8 reset_value; /* Value to write to the reset_register port to reset the system */ 200 u8 reset_value; /* Value to write to the reset_register port to reset the system */
196 u8 reserved7[3]; /* These three bytes must be zero */ 201 u8 reserved4[3]; /* These three bytes must be zero */
197 u64 xfirmware_ctrl; /* 64-bit physical address of FACS */ 202 u64 xfirmware_ctrl; /* 64-bit physical address of FACS */
198 u64 Xdsdt; /* 64-bit physical address of DSDT */ 203 u64 Xdsdt; /* 64-bit physical address of DSDT */
199 struct acpi_generic_address xpm1a_evt_blk; /* Extended Power Mgt 1a acpi_event Reg Blk address */ 204 struct acpi_generic_address xpm1a_evt_blk; /* Extended Power Mgt 1a acpi_event Reg Blk address */
@@ -213,11 +218,11 @@ struct fadt_descriptor_rev2_minus
213{ 218{
214 ACPI_TABLE_HEADER_DEF /* ACPI common table header */ 219 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
215 FADT_REV2_COMMON 220 FADT_REV2_COMMON
216 u8 reserved2; /* Reserved */ 221 u8 reserved2; /* Reserved, must be zero */
217 u32 flags; 222 u32 flags;
218 struct acpi_generic_address reset_register; /* Reset register address in GAS format */ 223 struct acpi_generic_address reset_register; /* Reset register address in GAS format */
219 u8 reset_value; /* Value to write to the reset_register port to reset the system. */ 224 u8 reset_value; /* Value to write to the reset_register port to reset the system. */
220 u8 reserved7[3]; /* These three bytes must be zero */ 225 u8 reserved7[3]; /* Reserved, must be zero */
221}; 226};
222 227
223 228
@@ -242,11 +247,16 @@ struct static_resource_alloc
242 u8 length; 247 u8 length;
243 u8 proximity_domain_lo; 248 u8 proximity_domain_lo;
244 u8 apic_id; 249 u8 apic_id;
245 u32 enabled :1; 250
246 u32 reserved3 :31; 251 /* Flags (32 bits) */
252
253 u8 enabled :1; /* 00: Use affinity structure */
254 u8 :7; /* 01-07: Reserved, must be zero */
255 u8 reserved3[3]; /* 08-31: Reserved, must be zero */
256
247 u8 local_sapic_eid; 257 u8 local_sapic_eid;
248 u8 proximity_domain_hi[3]; 258 u8 proximity_domain_hi[3];
249 u32 reserved4; 259 u32 reserved4; /* Reserved, must be zero */
250}; 260};
251 261
252struct memory_affinity 262struct memory_affinity
@@ -258,18 +268,23 @@ struct memory_affinity
258 u64 base_address; 268 u64 base_address;
259 u64 address_length; 269 u64 address_length;
260 u32 reserved4; 270 u32 reserved4;
261 u32 enabled :1; 271
262 u32 hot_pluggable :1; 272 /* Flags (32 bits) */
263 u32 non_volatile :1; 273
264 u32 reserved5 :29; 274 u8 enabled :1; /* 00: Use affinity structure */
265 u64 reserved6; 275 u8 hot_pluggable :1; /* 01: Memory region is hot pluggable */
276 u8 non_volatile :1; /* 02: Memory is non-volatile */
277 u8 :5; /* 03-07: Reserved, must be zero */
278 u8 reserved5[3]; /* 08-31: Reserved, must be zero */
279
280 u64 reserved6; /* Reserved, must be zero */
266}; 281};
267 282
268struct system_resource_affinity 283struct system_resource_affinity
269{ 284{
270 ACPI_TABLE_HEADER_DEF 285 ACPI_TABLE_HEADER_DEF
271 u32 reserved1; /* Must be value '1' */ 286 u32 reserved1; /* Must be value '1' */
272 u64 reserved2; 287 u64 reserved2; /* Reserved, must be zero */
273}; 288};
274 289
275 290
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 8cd774a20c67..1895b862ce0d 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -205,10 +205,11 @@ typedef u32 acpi_size;
205 205
206 206
207/* 207/*
208 * Miscellaneous common types 208 * This type is used for bitfields in ACPI tables. The only type that is
209 * even remotely portable is u8. Anything else is not portable, so
210 * do not add any more bitfield types.
209 */ 211 */
210typedef u16 UINT16_BIT; 212typedef u8 UINT8_BIT;
211typedef u32 UINT32_BIT;
212typedef acpi_native_uint ACPI_PTRDIFF; 213typedef acpi_native_uint ACPI_PTRDIFF;
213 214
214/* 215/*
@@ -243,10 +244,13 @@ struct acpi_pointer
243#define ACPI_LOGMODE_PHYSPTR ACPI_LOGICAL_ADDRESSING | ACPI_PHYSICAL_POINTER 244#define ACPI_LOGMODE_PHYSPTR ACPI_LOGICAL_ADDRESSING | ACPI_PHYSICAL_POINTER
244#define ACPI_LOGMODE_LOGPTR ACPI_LOGICAL_ADDRESSING | ACPI_LOGICAL_POINTER 245#define ACPI_LOGMODE_LOGPTR ACPI_LOGICAL_ADDRESSING | ACPI_LOGICAL_POINTER
245 246
246/* Types for the OS interface layer (OSL) */ 247/*
247 248 * If acpi_cache_t was not defined in the OS-dependent header,
248#ifdef ACPI_USE_LOCAL_CACHE 249 * define it now. This is typically the case where the local cache
249#define acpi_cache_t struct acpi_memory_list 250 * manager implementation is to be used (ACPI_USE_LOCAL_CACHE)
251 */
252#ifndef acpi_cache_t
253#define acpi_cache_t struct acpi_memory_list
250#endif 254#endif
251 255
252/* 256/*
diff --git a/include/acpi/acutils.h b/include/acpi/acutils.h
index e9c1584dd785..9c05c10e379a 100644
--- a/include/acpi/acutils.h
+++ b/include/acpi/acutils.h
@@ -120,10 +120,6 @@ u8
120acpi_ut_valid_object_type ( 120acpi_ut_valid_object_type (
121 acpi_object_type type); 121 acpi_object_type type);
122 122
123acpi_owner_id
124acpi_ut_allocate_owner_id (
125 u32 id_type);
126
127 123
128/* 124/*
129 * utinit - miscellaneous initialization and shutdown 125 * utinit - miscellaneous initialization and shutdown
@@ -306,47 +302,63 @@ acpi_ut_track_stack_ptr (
306void 302void
307acpi_ut_trace ( 303acpi_ut_trace (
308 u32 line_number, 304 u32 line_number,
309 struct acpi_debug_print_info *dbg_info); 305 char *function_name,
306 char *module_name,
307 u32 component_id);
310 308
311void 309void
312acpi_ut_trace_ptr ( 310acpi_ut_trace_ptr (
313 u32 line_number, 311 u32 line_number,
314 struct acpi_debug_print_info *dbg_info, 312 char *function_name,
313 char *module_name,
314 u32 component_id,
315 void *pointer); 315 void *pointer);
316 316
317void 317void
318acpi_ut_trace_u32 ( 318acpi_ut_trace_u32 (
319 u32 line_number, 319 u32 line_number,
320 struct acpi_debug_print_info *dbg_info, 320 char *function_name,
321 char *module_name,
322 u32 component_id,
321 u32 integer); 323 u32 integer);
322 324
323void 325void
324acpi_ut_trace_str ( 326acpi_ut_trace_str (
325 u32 line_number, 327 u32 line_number,
326 struct acpi_debug_print_info *dbg_info, 328 char *function_name,
329 char *module_name,
330 u32 component_id,
327 char *string); 331 char *string);
328 332
329void 333void
330acpi_ut_exit ( 334acpi_ut_exit (
331 u32 line_number, 335 u32 line_number,
332 struct acpi_debug_print_info *dbg_info); 336 char *function_name,
337 char *module_name,
338 u32 component_id);
333 339
334void 340void
335acpi_ut_status_exit ( 341acpi_ut_status_exit (
336 u32 line_number, 342 u32 line_number,
337 struct acpi_debug_print_info *dbg_info, 343 char *function_name,
344 char *module_name,
345 u32 component_id,
338 acpi_status status); 346 acpi_status status);
339 347
340void 348void
341acpi_ut_value_exit ( 349acpi_ut_value_exit (
342 u32 line_number, 350 u32 line_number,
343 struct acpi_debug_print_info *dbg_info, 351 char *function_name,
352 char *module_name,
353 u32 component_id,
344 acpi_integer value); 354 acpi_integer value);
345 355
346void 356void
347acpi_ut_ptr_exit ( 357acpi_ut_ptr_exit (
348 u32 line_number, 358 u32 line_number,
349 struct acpi_debug_print_info *dbg_info, 359 char *function_name,
360 char *module_name,
361 u32 component_id,
350 u8 *ptr); 362 u8 *ptr);
351 363
352void 364void
@@ -378,7 +390,9 @@ void ACPI_INTERNAL_VAR_XFACE
378acpi_ut_debug_print ( 390acpi_ut_debug_print (
379 u32 requested_debug_level, 391 u32 requested_debug_level,
380 u32 line_number, 392 u32 line_number,
381 struct acpi_debug_print_info *dbg_info, 393 char *function_name,
394 char *module_name,
395 u32 component_id,
382 char *format, 396 char *format,
383 ...) ACPI_PRINTF_LIKE_FUNC; 397 ...) ACPI_PRINTF_LIKE_FUNC;
384 398
@@ -386,7 +400,9 @@ void ACPI_INTERNAL_VAR_XFACE
386acpi_ut_debug_print_raw ( 400acpi_ut_debug_print_raw (
387 u32 requested_debug_level, 401 u32 requested_debug_level,
388 u32 line_number, 402 u32 line_number,
389 struct acpi_debug_print_info *dbg_info, 403 char *function_name,
404 char *module_name,
405 u32 component_id,
390 char *format, 406 char *format,
391 ...) ACPI_PRINTF_LIKE_FUNC; 407 ...) ACPI_PRINTF_LIKE_FUNC;
392 408
@@ -477,8 +493,8 @@ acpi_ut_allocate_object_desc_dbg (
477 u32 line_number, 493 u32 line_number,
478 u32 component_id); 494 u32 component_id);
479 495
480#define acpi_ut_create_internal_object(t) acpi_ut_create_internal_object_dbg (_THIS_MODULE,__LINE__,_COMPONENT,t) 496#define acpi_ut_create_internal_object(t) acpi_ut_create_internal_object_dbg (_acpi_module_name,__LINE__,_COMPONENT,t)
481#define acpi_ut_allocate_object_desc() acpi_ut_allocate_object_desc_dbg (_THIS_MODULE,__LINE__,_COMPONENT) 497#define acpi_ut_allocate_object_desc() acpi_ut_allocate_object_desc_dbg (_acpi_module_name,__LINE__,_COMPONENT)
482 498
483void 499void
484acpi_ut_delete_object_desc ( 500acpi_ut_delete_object_desc (
@@ -579,6 +595,14 @@ acpi_ut_short_divide (
579 * utmisc 595 * utmisc
580 */ 596 */
581acpi_status 597acpi_status
598acpi_ut_allocate_owner_id (
599 acpi_owner_id *owner_id);
600
601acpi_status
602acpi_ut_release_owner_id (
603 acpi_owner_id owner_id);
604
605acpi_status
582acpi_ut_walk_package_tree ( 606acpi_ut_walk_package_tree (
583 union acpi_operand_object *source_object, 607 union acpi_operand_object *source_object,
584 void *target_object, 608 void *target_object,
diff --git a/include/acpi/platform/acgcc.h b/include/acpi/platform/acgcc.h
index 91fda36b042b..39264127574c 100644
--- a/include/acpi/platform/acgcc.h
+++ b/include/acpi/platform/acgcc.h
@@ -44,13 +44,17 @@
44#ifndef __ACGCC_H__ 44#ifndef __ACGCC_H__
45#define __ACGCC_H__ 45#define __ACGCC_H__
46 46
47/* Function name is used for debug output. Non-ANSI, compiler-dependent */
48
49#define ACPI_GET_FUNCTION_NAME __FUNCTION__
50
47/* This macro is used to tag functions as "printf-like" because 51/* This macro is used to tag functions as "printf-like" because
48 * some compilers (like GCC) can catch printf format string problems. 52 * some compilers (like GCC) can catch printf format string problems.
49 */ 53 */
50#define ACPI_PRINTF_LIKE_FUNC __attribute__ ((__format__ (__printf__, 4, 5))) 54#define ACPI_PRINTF_LIKE_FUNC __attribute__ ((__format__ (__printf__, 6, 7)))
51 55
52/* Some compilers complain about unused variables. Sometimes we don't want to 56/* Some compilers complain about unused variables. Sometimes we don't want to
53 * use all the variables (most specifically for _THIS_MODULE). This allow us 57 * use all the variables (for example, _acpi_module_name). This allows us
54 * to to tell the compiler warning in a per-variable manner that a variable 58 * to to tell the compiler warning in a per-variable manner that a variable
55 * is unused. 59 * is unused.
56 */ 60 */