diff options
author | Robert Moore <robert.moore@intel.com> | 2005-07-08 00:00:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-07-14 00:42:23 -0400 |
commit | f9f4601f331aa1226d7a798a01950efbb388f07f (patch) | |
tree | 62e079a9275749d16a4a0da56a427be201e15d27 /include/acpi | |
parent | 4c3ffbd79529b680b3c3ef2b6f42f0c89c694ec5 (diff) |
ACPICA 20050708 from Bob Moore <robert.moore@intel.com>
The use of the CPU stack in the debug version of the
subsystem has been considerably reduced. Previously, a
debug structure was declared in every function that used
the debug macros. This structure has been removed in
favor of declaring the individual elements as parameters
to the debug functions. This reduces the cumulative stack
use during nested execution of ACPI function calls at the
cost of a small increase in the code size of the debug
version of the subsystem. With assistance from Alexey
Starikovskiy and Len Brown.
Added the ACPI_GET_FUNCTION_NAME macro to enable the
compiler-dependent headers to define a macro that will
return the current function name at runtime (such as
__FUNCTION__ or _func_, etc.) The function name is used
by the debug trace output. If ACPI_GET_FUNCTION_NAME
is not defined in the compiler-dependent header, the
function name is saved on the CPU stack (one pointer per
function.) This mechanism is used because apparently there
exists no standard ANSI-C defined macro that that returns
the function name.
Alexey Starikovskiy redesigned and reimplemented the
"Owner ID" mechanism used to track namespace objects
created/deleted by ACPI tables and control method
execution. A bitmap is now used to allocate and free the
IDs, thus solving the wraparound problem present in the
previous implementation. The size of the namespace node
descriptor was reduced by 2 bytes as a result.
Removed the UINT32_BIT and UINT16_BIT types that were used
for the bitfield flag definitions within the headers for
the predefined ACPI tables. These have been replaced by
UINT8_BIT in order to increase the code portability of
the subsystem. If the use of UINT8 remains a problem,
we may be forced to eliminate bitfields entirely because
of a lack of portability.
Alexey Starikovksiy enhanced the performance of
acpi_ut_update_object_reference. This is a frequently used
function and this improvement increases the performance
of the entire subsystem.
Alexey Starikovskiy fixed several possible memory leaks
and the inverse - premature object deletion.
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acconfig.h | 2 | ||||
-rw-r--r-- | include/acpi/acdisasm.h | 2 | ||||
-rw-r--r-- | include/acpi/acexcep.h | 6 | ||||
-rw-r--r-- | include/acpi/acglobal.h | 3 | ||||
-rw-r--r-- | include/acpi/aclocal.h | 57 | ||||
-rw-r--r-- | include/acpi/acmacros.h | 100 | ||||
-rw-r--r-- | include/acpi/acnamesp.h | 4 | ||||
-rw-r--r-- | include/acpi/acobject.h | 2 | ||||
-rw-r--r-- | include/acpi/acoutput.h | 2 | ||||
-rw-r--r-- | include/acpi/acstruct.h | 11 | ||||
-rw-r--r-- | include/acpi/actables.h | 4 | ||||
-rw-r--r-- | include/acpi/actbl.h | 58 | ||||
-rw-r--r-- | include/acpi/actbl1.h | 52 | ||||
-rw-r--r-- | include/acpi/actbl2.h | 109 | ||||
-rw-r--r-- | include/acpi/actypes.h | 18 | ||||
-rw-r--r-- | include/acpi/acutils.h | 56 | ||||
-rw-r--r-- | include/acpi/platform/acgcc.h | 8 |
17 files changed, 287 insertions, 207 deletions
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h index dd9b70cc963..aa3c08c6da4 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 fcc2d507fac..26325430db8 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 | ||
213 | void | 213 | void |
214 | acpi_is_eisa_id ( | 214 | acpi_dm_is_eisa_id ( |
215 | union acpi_parse_object *op); | 215 | union acpi_parse_object *op); |
216 | 216 | ||
217 | void | 217 | void |
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 60d737b2d70..0a6f492f3c8 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 | ||
232 | char const *acpi_gbl_exception_names_pgm[] = | 234 | char const *acpi_gbl_exception_names_pgm[] = |
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h index 8d5a397abd6..e3cf16eadbe 100644 --- a/include/acpi/acglobal.h +++ b/include/acpi/acglobal.h | |||
@@ -218,9 +218,8 @@ ACPI_EXTERN u32 acpi_gbl_original_mode; | |||
218 | ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; | 218 | ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; |
219 | ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; | 219 | ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; |
220 | ACPI_EXTERN u32 acpi_gbl_ps_find_count; | 220 | ACPI_EXTERN u32 acpi_gbl_ps_find_count; |
221 | ACPI_EXTERN u32 acpi_gbl_owner_id_mask; | ||
221 | ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; | 222 | ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; |
222 | ACPI_EXTERN u16 acpi_gbl_next_table_owner_id; | ||
223 | ACPI_EXTERN u16 acpi_gbl_next_method_owner_id; | ||
224 | ACPI_EXTERN u16 acpi_gbl_global_lock_handle; | 223 | ACPI_EXTERN u16 acpi_gbl_global_lock_handle; |
225 | ACPI_EXTERN u8 acpi_gbl_debugger_configuration; | 224 | ACPI_EXTERN u8 acpi_gbl_debugger_configuration; |
226 | ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; | 225 | ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; |
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h index 58f9ba1a34e..4d2635698e1 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 | |||
61 | struct acpi_walk_state ; | ||
62 | struct acpi_obj_mutex; | ||
63 | union 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 | |||
128 | typedef 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 | ||
121 | struct acpi_mutex_info | 137 | struct 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 | ||
139 | typedef 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 | |||
425 | struct acpi_walk_state ; | ||
426 | struct acpi_obj_mutex; | ||
427 | union 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 | ||
919 | struct 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 09be937d2c3..5b100cef8df 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 d1b3ce80056..870e2544bd9 100644 --- a/include/acpi/acnamesp.h +++ b/include/acpi/acnamesp.h | |||
@@ -163,7 +163,7 @@ acpi_ns_delete_namespace_subtree ( | |||
163 | 163 | ||
164 | void | 164 | void |
165 | acpi_ns_delete_namespace_by_owner ( | 165 | acpi_ns_delete_namespace_by_owner ( |
166 | u16 table_id); | 166 | acpi_owner_id owner_id); |
167 | 167 | ||
168 | void | 168 | void |
169 | acpi_ns_detach_object ( | 169 | acpi_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 e079b94e4fc..34f9d1f1f79 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 2fbe180fee6..d7e828cb84b 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 a2025a8da00..f375c17ad0b 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 | |||
154 | struct acpi_walk_info | 153 | struct 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 | ||
169 | struct acpi_get_devices_info | 168 | struct acpi_get_devices_info |
170 | { | 169 | { |
diff --git a/include/acpi/actables.h b/include/acpi/actables.h index 39df92e21a0..97e6f12da52 100644 --- a/include/acpi/actables.h +++ b/include/acpi/actables.h | |||
@@ -169,6 +169,10 @@ acpi_status | |||
169 | acpi_tb_get_table_rsdt ( | 169 | acpi_tb_get_table_rsdt ( |
170 | void); | 170 | void); |
171 | 171 | ||
172 | acpi_status | ||
173 | acpi_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 b5cdcca444c..c1e9110c366 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
@@ -86,15 +86,15 @@ | |||
86 | */ | 86 | */ |
87 | struct rsdp_descriptor /* Root System Descriptor Pointer */ | 87 | struct 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 | ||
121 | struct acpi_table_header /* ACPI common table header */ | 121 | struct 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 | |||
238 | struct madt_address_override | 244 | struct 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 33de5f4d2cc..93c175a4f44 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h | |||
@@ -52,8 +52,7 @@ | |||
52 | struct rsdt_descriptor_rev1 | 52 | struct 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 | */ |
63 | struct facs_descriptor_rev1 | 62 | struct 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 e1729c967e0..84ce5abbd6f 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h | |||
@@ -73,8 +73,7 @@ | |||
73 | struct rsdt_descriptor_rev2 | 73 | struct 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 | |||
84 | struct xsdt_descriptor_rev2 | 83 | struct 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 | */ |
95 | struct facs_descriptor_rev2 | 93 | struct 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 | ||
252 | struct memory_affinity | 262 | struct 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 | ||
268 | struct system_resource_affinity | 283 | struct 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 8cd774a20c6..1895b862ce0 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 | */ |
210 | typedef u16 UINT16_BIT; | 212 | typedef u8 UINT8_BIT; |
211 | typedef u32 UINT32_BIT; | ||
212 | typedef acpi_native_uint ACPI_PTRDIFF; | 213 | typedef 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 e9c1584dd78..9c05c10e379 100644 --- a/include/acpi/acutils.h +++ b/include/acpi/acutils.h | |||
@@ -120,10 +120,6 @@ u8 | |||
120 | acpi_ut_valid_object_type ( | 120 | acpi_ut_valid_object_type ( |
121 | acpi_object_type type); | 121 | acpi_object_type type); |
122 | 122 | ||
123 | acpi_owner_id | ||
124 | acpi_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 ( | |||
306 | void | 302 | void |
307 | acpi_ut_trace ( | 303 | acpi_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 | ||
311 | void | 309 | void |
312 | acpi_ut_trace_ptr ( | 310 | acpi_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 | ||
317 | void | 317 | void |
318 | acpi_ut_trace_u32 ( | 318 | acpi_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 | ||
323 | void | 325 | void |
324 | acpi_ut_trace_str ( | 326 | acpi_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 | ||
329 | void | 333 | void |
330 | acpi_ut_exit ( | 334 | acpi_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 | ||
334 | void | 340 | void |
335 | acpi_ut_status_exit ( | 341 | acpi_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 | ||
340 | void | 348 | void |
341 | acpi_ut_value_exit ( | 349 | acpi_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 | ||
346 | void | 356 | void |
347 | acpi_ut_ptr_exit ( | 357 | acpi_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 | ||
352 | void | 364 | void |
@@ -378,7 +390,9 @@ void ACPI_INTERNAL_VAR_XFACE | |||
378 | acpi_ut_debug_print ( | 390 | acpi_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 | |||
386 | acpi_ut_debug_print_raw ( | 400 | acpi_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 | ||
483 | void | 499 | void |
484 | acpi_ut_delete_object_desc ( | 500 | acpi_ut_delete_object_desc ( |
@@ -579,6 +595,14 @@ acpi_ut_short_divide ( | |||
579 | * utmisc | 595 | * utmisc |
580 | */ | 596 | */ |
581 | acpi_status | 597 | acpi_status |
598 | acpi_ut_allocate_owner_id ( | ||
599 | acpi_owner_id *owner_id); | ||
600 | |||
601 | acpi_status | ||
602 | acpi_ut_release_owner_id ( | ||
603 | acpi_owner_id owner_id); | ||
604 | |||
605 | acpi_status | ||
582 | acpi_ut_walk_package_tree ( | 606 | acpi_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 91fda36b042..39264127574 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 | */ |