aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/namespace
diff options
context:
space:
mode:
authorRobert Moore <robert.moore@intel.com>2005-04-18 22:49:35 -0400
committerLen Brown <len.brown@intel.com>2005-07-12 00:08:52 -0400
commit44f6c01242da4e162f28d8e1216a8c7a91174605 (patch)
tree53f724764f1bd9036dfb049a643d198125cc9edc /drivers/acpi/namespace
parentebb6e1a6122fd6b7c96470cfd4ce0f04150e5084 (diff)
ACPICA 20050408 from Bob Moore
Fixed three cases in the interpreter where an "index" argument to an ASL function was still (internally) 32 bits instead of the required 64 bits. This was the Index argument to the Index, Mid, and Match operators. The "strupr" function is now permanently local (acpi_ut_strupr), since this is not a POSIX-defined function and not present in most kernel-level C libraries. References to the C library strupr function have been removed from the headers. Completed the deployment of static functions/prototypes. All prototypes with the static attribute have been moved from the headers to the owning C file. ACPICA 20050329 from Bob Moore An error is now generated if an attempt is made to create a Buffer Field of length zero (A CreateField with a length operand of zero.) The interpreter now issues a warning whenever executable code at the module level is detected during ACPI table load. This will give some idea of the prevalence of this type of code. Implemented support for references to named objects (other than control methods) within package objects. Enhanced package object output for the debug object. Package objects are now completely dumped, showing all elements. Enhanced miscellaneous object output for the debug object. Any object can now be written to the debug object (for example, a device object can be written, and the type of the object will be displayed.) The "static" qualifier has been added to all local functions across the core subsystem. The number of "long" lines (> 80 chars) within the source has been significantly reduced, by about 1/3. Cleaned up all header files to ensure that all CA/iASL functions are prototyped (even static functions) and the formatting is consistent. Two new header files have been added, acopcode.h and acnames.h. Removed several obsolete functions that were no longer used. Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/namespace')
-rw-r--r--drivers/acpi/namespace/nsaccess.c5
-rw-r--r--drivers/acpi/namespace/nsalloc.c121
-rw-r--r--drivers/acpi/namespace/nsdump.c109
-rw-r--r--drivers/acpi/namespace/nsdumpdv.c18
-rw-r--r--drivers/acpi/namespace/nseval.c70
-rw-r--r--drivers/acpi/namespace/nsinit.c28
-rw-r--r--drivers/acpi/namespace/nsload.c28
-rw-r--r--drivers/acpi/namespace/nsnames.c12
-rw-r--r--drivers/acpi/namespace/nsobject.c14
-rw-r--r--drivers/acpi/namespace/nssearch.c29
-rw-r--r--drivers/acpi/namespace/nsutils.c167
-rw-r--r--drivers/acpi/namespace/nswalk.c2
-rw-r--r--drivers/acpi/namespace/nsxfeval.c16
-rw-r--r--drivers/acpi/namespace/nsxfname.c8
-rw-r--r--drivers/acpi/namespace/nsxfobj.c4
15 files changed, 390 insertions, 241 deletions
diff --git a/drivers/acpi/namespace/nsaccess.c b/drivers/acpi/namespace/nsaccess.c
index 1c0c12336c57..ece7a9dedd5c 100644
--- a/drivers/acpi/namespace/nsaccess.c
+++ b/drivers/acpi/namespace/nsaccess.c
@@ -67,7 +67,8 @@
67 ******************************************************************************/ 67 ******************************************************************************/
68 68
69acpi_status 69acpi_status
70acpi_ns_root_initialize (void) 70acpi_ns_root_initialize (
71 void)
71{ 72{
72 acpi_status status; 73 acpi_status status;
73 const struct acpi_predefined_names *init_val = NULL; 74 const struct acpi_predefined_names *init_val = NULL;
@@ -265,7 +266,7 @@ unlock_and_exit:
265 * 266 *
266 * FUNCTION: acpi_ns_lookup 267 * FUNCTION: acpi_ns_lookup
267 * 268 *
268 * PARAMETERS: prefix_node - Search scope if name is not fully qualified 269 * PARAMETERS: scope_info - Current scope info block
269 * Pathname - Search pathname, in internal format 270 * Pathname - Search pathname, in internal format
270 * (as represented in the AML stream) 271 * (as represented in the AML stream)
271 * Type - Type associated with name 272 * Type - Type associated with name
diff --git a/drivers/acpi/namespace/nsalloc.c b/drivers/acpi/namespace/nsalloc.c
index bfd922c5c7d1..5653a19d7172 100644
--- a/drivers/acpi/namespace/nsalloc.c
+++ b/drivers/acpi/namespace/nsalloc.c
@@ -49,14 +49,20 @@
49#define _COMPONENT ACPI_NAMESPACE 49#define _COMPONENT ACPI_NAMESPACE
50 ACPI_MODULE_NAME ("nsalloc") 50 ACPI_MODULE_NAME ("nsalloc")
51 51
52/* Local prototypes */
53
54static void
55acpi_ns_remove_reference (
56 struct acpi_namespace_node *node);
57
52 58
53/******************************************************************************* 59/*******************************************************************************
54 * 60 *
55 * FUNCTION: acpi_ns_create_node 61 * FUNCTION: acpi_ns_create_node
56 * 62 *
57 * PARAMETERS: acpi_name - Name of the new node 63 * PARAMETERS: Name - Name of the new node (4 char ACPI name)
58 * 64 *
59 * RETURN: None 65 * RETURN: New namespace node (Null on failure)
60 * 66 *
61 * DESCRIPTION: Create a namespace node 67 * DESCRIPTION: Create a namespace node
62 * 68 *
@@ -145,7 +151,6 @@ acpi_ns_delete_node (
145 } 151 }
146 } 152 }
147 153
148
149 ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].total_freed++); 154 ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].total_freed++);
150 155
151 /* 156 /*
@@ -157,57 +162,6 @@ acpi_ns_delete_node (
157} 162}
158 163
159 164
160#ifdef ACPI_ALPHABETIC_NAMESPACE
161/*******************************************************************************
162 *
163 * FUNCTION: acpi_ns_compare_names
164 *
165 * PARAMETERS: Name1 - First name to compare
166 * Name2 - Second name to compare
167 *
168 * RETURN: value from strncmp
169 *
170 * DESCRIPTION: Compare two ACPI names. Names that are prefixed with an
171 * underscore are forced to be alphabetically first.
172 *
173 ******************************************************************************/
174
175int
176acpi_ns_compare_names (
177 char *name1,
178 char *name2)
179{
180 char reversed_name1[ACPI_NAME_SIZE];
181 char reversed_name2[ACPI_NAME_SIZE];
182 u32 i;
183 u32 j;
184
185
186 /*
187 * Replace all instances of "underscore" with a value that is smaller so
188 * that all names that are prefixed with underscore(s) are alphabetically
189 * first.
190 *
191 * Reverse the name bytewise so we can just do a 32-bit compare instead
192 * of a strncmp.
193 */
194 for (i = 0, j= (ACPI_NAME_SIZE - 1); i < ACPI_NAME_SIZE; i++, j--) {
195 reversed_name1[j] = name1[i];
196 if (name1[i] == '_') {
197 reversed_name1[j] = '*';
198 }
199
200 reversed_name2[j] = name2[i];
201 if (name2[i] == '_') {
202 reversed_name2[j] = '*';
203 }
204 }
205
206 return (*(int *) reversed_name1 - *(int *) reversed_name2);
207}
208#endif
209
210
211/******************************************************************************* 165/*******************************************************************************
212 * 166 *
213 * FUNCTION: acpi_ns_install_node 167 * FUNCTION: acpi_ns_install_node
@@ -271,7 +225,8 @@ acpi_ns_install_node (
271 * alphabetic placement. 225 * alphabetic placement.
272 */ 226 */
273 previous_child_node = NULL; 227 previous_child_node = NULL;
274 while (acpi_ns_compare_names (acpi_ut_get_node_name (child_node), acpi_ut_get_node_name (node)) < 0) { 228 while (acpi_ns_compare_names (acpi_ut_get_node_name (child_node),
229 acpi_ut_get_node_name (node)) < 0) {
275 if (child_node->flags & ANOBJ_END_OF_PEER_LIST) { 230 if (child_node->flags & ANOBJ_END_OF_PEER_LIST) {
276 /* Last peer; Clear end-of-list flag */ 231 /* Last peer; Clear end-of-list flag */
277 232
@@ -429,7 +384,8 @@ acpi_ns_delete_children (
429 /* There should be only one reference remaining on this node */ 384 /* There should be only one reference remaining on this node */
430 385
431 if (child_node->reference_count != 1) { 386 if (child_node->reference_count != 1) {
432 ACPI_REPORT_WARNING (("Existing references (%d) on node being deleted (%p)\n", 387 ACPI_REPORT_WARNING ((
388 "Existing references (%d) on node being deleted (%p)\n",
433 child_node->reference_count, child_node)); 389 child_node->reference_count, child_node));
434 } 390 }
435 391
@@ -548,7 +504,7 @@ acpi_ns_delete_namespace_subtree (
548 * 504 *
549 ******************************************************************************/ 505 ******************************************************************************/
550 506
551void 507static void
552acpi_ns_remove_reference ( 508acpi_ns_remove_reference (
553 struct acpi_namespace_node *node) 509 struct acpi_namespace_node *node)
554{ 510{
@@ -683,3 +639,54 @@ acpi_ns_delete_namespace_by_owner (
683} 639}
684 640
685 641
642#ifdef ACPI_ALPHABETIC_NAMESPACE
643/*******************************************************************************
644 *
645 * FUNCTION: acpi_ns_compare_names
646 *
647 * PARAMETERS: Name1 - First name to compare
648 * Name2 - Second name to compare
649 *
650 * RETURN: value from strncmp
651 *
652 * DESCRIPTION: Compare two ACPI names. Names that are prefixed with an
653 * underscore are forced to be alphabetically first.
654 *
655 ******************************************************************************/
656
657int
658acpi_ns_compare_names (
659 char *name1,
660 char *name2)
661{
662 char reversed_name1[ACPI_NAME_SIZE];
663 char reversed_name2[ACPI_NAME_SIZE];
664 u32 i;
665 u32 j;
666
667
668 /*
669 * Replace all instances of "underscore" with a value that is smaller so
670 * that all names that are prefixed with underscore(s) are alphabetically
671 * first.
672 *
673 * Reverse the name bytewise so we can just do a 32-bit compare instead
674 * of a strncmp.
675 */
676 for (i = 0, j= (ACPI_NAME_SIZE - 1); i < ACPI_NAME_SIZE; i++, j--) {
677 reversed_name1[j] = name1[i];
678 if (name1[i] == '_') {
679 reversed_name1[j] = '*';
680 }
681
682 reversed_name2[j] = name2[i];
683 if (name2[i] == '_') {
684 reversed_name2[j] = '*';
685 }
686 }
687
688 return (*(int *) reversed_name1 - *(int *) reversed_name2);
689}
690#endif
691
692
diff --git a/drivers/acpi/namespace/nsdump.c b/drivers/acpi/namespace/nsdump.c
index 1f6af3eb6c91..4550e6f9809b 100644
--- a/drivers/acpi/namespace/nsdump.c
+++ b/drivers/acpi/namespace/nsdump.c
@@ -50,16 +50,32 @@
50#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
51 ACPI_MODULE_NAME ("nsdump") 51 ACPI_MODULE_NAME ("nsdump")
52 52
53/* Local prototypes */
53 54
54#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 55#ifdef ACPI_OBSOLETE_FUNCTIONS
56void
57acpi_ns_dump_root_devices (
58 void);
55 59
60static acpi_status
61acpi_ns_dump_one_device (
62 acpi_handle obj_handle,
63 u32 level,
64 void *context,
65 void **return_value);
66#endif
67
68
69#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
56/******************************************************************************* 70/*******************************************************************************
57 * 71 *
58 * FUNCTION: acpi_ns_print_pathname 72 * FUNCTION: acpi_ns_print_pathname
59 * 73 *
60 * PARAMETERS: num_segment - Number of ACPI name segments 74 * PARAMETERS: num_segments - Number of ACPI name segments
61 * Pathname - The compressed (internal) path 75 * Pathname - The compressed (internal) path
62 * 76 *
77 * RETURN: None
78 *
63 * DESCRIPTION: Print an object's full namespace pathname 79 * DESCRIPTION: Print an object's full namespace pathname
64 * 80 *
65 ******************************************************************************/ 81 ******************************************************************************/
@@ -103,6 +119,8 @@ acpi_ns_print_pathname (
103 * Level - Desired debug level 119 * Level - Desired debug level
104 * Component - Caller's component ID 120 * Component - Caller's component ID
105 * 121 *
122 * RETURN: None
123 *
106 * DESCRIPTION: Print an object's full namespace pathname 124 * DESCRIPTION: Print an object's full namespace pathname
107 * Manages allocation/freeing of a pathname buffer 125 * Manages allocation/freeing of a pathname buffer
108 * 126 *
@@ -137,9 +155,12 @@ acpi_ns_dump_pathname (
137 * 155 *
138 * FUNCTION: acpi_ns_dump_one_object 156 * FUNCTION: acpi_ns_dump_one_object
139 * 157 *
140 * PARAMETERS: Handle - Node to be dumped 158 * PARAMETERS: obj_handle - Node to be dumped
141 * Level - Nesting level of the handle 159 * Level - Nesting level of the handle
142 * Context - Passed into walk_namespace 160 * Context - Passed into walk_namespace
161 * return_value - Not used
162 *
163 * RETURN: Status
143 * 164 *
144 * DESCRIPTION: Dump a single Node 165 * DESCRIPTION: Dump a single Node
145 * This procedure is a user_function called by acpi_ns_walk_namespace. 166 * This procedure is a user_function called by acpi_ns_walk_namespace.
@@ -394,8 +415,7 @@ acpi_ns_dump_one_object (
394 return (AE_OK); 415 return (AE_OK);
395 } 416 }
396 417
397 acpi_os_printf ("(R%d)", 418 acpi_os_printf ("(R%d)", obj_desc->common.reference_count);
398 obj_desc->common.reference_count);
399 419
400 switch (type) { 420 switch (type) {
401 case ACPI_TYPE_METHOD: 421 case ACPI_TYPE_METHOD:
@@ -551,18 +571,20 @@ cleanup:
551 571
552 572
553#ifdef ACPI_FUTURE_USAGE 573#ifdef ACPI_FUTURE_USAGE
554
555/******************************************************************************* 574/*******************************************************************************
556 * 575 *
557 * FUNCTION: acpi_ns_dump_objects 576 * FUNCTION: acpi_ns_dump_objects
558 * 577 *
559 * PARAMETERS: Type - Object type to be dumped 578 * PARAMETERS: Type - Object type to be dumped
579 * display_type - 0 or ACPI_DISPLAY_SUMMARY
560 * max_depth - Maximum depth of dump. Use ACPI_UINT32_MAX 580 * max_depth - Maximum depth of dump. Use ACPI_UINT32_MAX
561 * for an effectively unlimited depth. 581 * for an effectively unlimited depth.
562 * owner_id - Dump only objects owned by this ID. Use 582 * owner_id - Dump only objects owned by this ID. Use
563 * ACPI_UINT32_MAX to match all owners. 583 * ACPI_UINT32_MAX to match all owners.
564 * start_handle - Where in namespace to start/end search 584 * start_handle - Where in namespace to start/end search
565 * 585 *
586 * RETURN: None
587 *
566 * DESCRIPTION: Dump typed objects within the loaded namespace. 588 * DESCRIPTION: Dump typed objects within the loaded namespace.
567 * Uses acpi_ns_walk_namespace in conjunction with acpi_ns_dump_one_object. 589 * Uses acpi_ns_walk_namespace in conjunction with acpi_ns_dump_one_object.
568 * 590 *
@@ -594,6 +616,39 @@ acpi_ns_dump_objects (
594 616
595/******************************************************************************* 617/*******************************************************************************
596 * 618 *
619 * FUNCTION: acpi_ns_dump_entry
620 *
621 * PARAMETERS: Handle - Node to be dumped
622 * debug_level - Output level
623 *
624 * RETURN: None
625 *
626 * DESCRIPTION: Dump a single Node
627 *
628 ******************************************************************************/
629
630void
631acpi_ns_dump_entry (
632 acpi_handle handle,
633 u32 debug_level)
634{
635 struct acpi_walk_info info;
636
637
638 ACPI_FUNCTION_ENTRY ();
639
640
641 info.debug_level = debug_level;
642 info.owner_id = ACPI_UINT32_MAX;
643 info.display_type = ACPI_DISPLAY_SUMMARY;
644
645 (void) acpi_ns_dump_one_object (handle, 1, &info, NULL);
646}
647
648
649#ifdef _ACPI_ASL_COMPILER
650/*******************************************************************************
651 *
597 * FUNCTION: acpi_ns_dump_tables 652 * FUNCTION: acpi_ns_dump_tables
598 * 653 *
599 * PARAMETERS: search_base - Root of subtree to be dumped, or 654 * PARAMETERS: search_base - Root of subtree to be dumped, or
@@ -601,6 +656,8 @@ acpi_ns_dump_objects (
601 * max_depth - Maximum depth of dump. Use INT_MAX 656 * max_depth - Maximum depth of dump. Use INT_MAX
602 * for an effectively unlimited depth. 657 * for an effectively unlimited depth.
603 * 658 *
659 * RETURN: None
660 *
604 * DESCRIPTION: Dump the name space, or a portion of it. 661 * DESCRIPTION: Dump the name space, or a portion of it.
605 * 662 *
606 ******************************************************************************/ 663 ******************************************************************************/
@@ -626,7 +683,7 @@ acpi_ns_dump_tables (
626 } 683 }
627 684
628 if (ACPI_NS_ALL == search_base) { 685 if (ACPI_NS_ALL == search_base) {
629 /* entire namespace */ 686 /* Entire namespace */
630 687
631 search_handle = acpi_gbl_root_node; 688 search_handle = acpi_gbl_root_node;
632 ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n")); 689 ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));
@@ -636,38 +693,6 @@ acpi_ns_dump_tables (
636 ACPI_UINT32_MAX, search_handle); 693 ACPI_UINT32_MAX, search_handle);
637 return_VOID; 694 return_VOID;
638} 695}
639 696#endif /* _ACPI_ASL_COMPILER */
640#endif /* ACPI_FUTURE_USAGE */ 697#endif /* ACPI_FUTURE_USAGE */
641 698#endif /* defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) */
642
643/*******************************************************************************
644 *
645 * FUNCTION: acpi_ns_dump_entry
646 *
647 * PARAMETERS: Handle - Node to be dumped
648 * debug_level - Output level
649 *
650 * DESCRIPTION: Dump a single Node
651 *
652 ******************************************************************************/
653
654void
655acpi_ns_dump_entry (
656 acpi_handle handle,
657 u32 debug_level)
658{
659 struct acpi_walk_info info;
660
661
662 ACPI_FUNCTION_ENTRY ();
663
664
665 info.debug_level = debug_level;
666 info.owner_id = ACPI_UINT32_MAX;
667 info.display_type = ACPI_DISPLAY_SUMMARY;
668
669 (void) acpi_ns_dump_one_object (handle, 1, &info, NULL);
670}
671
672#endif
673
diff --git a/drivers/acpi/namespace/nsdumpdv.c b/drivers/acpi/namespace/nsdumpdv.c
index d30a59e6b07d..27c4f7cd2a43 100644
--- a/drivers/acpi/namespace/nsdumpdv.c
+++ b/drivers/acpi/namespace/nsdumpdv.c
@@ -43,15 +43,18 @@
43 43
44 44
45#include <acpi/acpi.h> 45#include <acpi/acpi.h>
46#include <acpi/acnamesp.h>
47 46
48 47
48/* TBD: This entire module is apparently obsolete and should be removed */
49
49#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
50 ACPI_MODULE_NAME ("nsdumpdv") 51 ACPI_MODULE_NAME ("nsdumpdv")
51 52
52 53#ifdef ACPI_OBSOLETE_FUNCTIONS
53#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 54#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
54 55
56#include <acpi/acnamesp.h>
57
55/******************************************************************************* 58/*******************************************************************************
56 * 59 *
57 * FUNCTION: acpi_ns_dump_one_device 60 * FUNCTION: acpi_ns_dump_one_device
@@ -59,13 +62,16 @@
59 * PARAMETERS: Handle - Node to be dumped 62 * PARAMETERS: Handle - Node to be dumped
60 * Level - Nesting level of the handle 63 * Level - Nesting level of the handle
61 * Context - Passed into walk_namespace 64 * Context - Passed into walk_namespace
65 * return_value - Not used
66 *
67 * RETURN: Status
62 * 68 *
63 * DESCRIPTION: Dump a single Node that represents a device 69 * DESCRIPTION: Dump a single Node that represents a device
64 * This procedure is a user_function called by acpi_ns_walk_namespace. 70 * This procedure is a user_function called by acpi_ns_walk_namespace.
65 * 71 *
66 ******************************************************************************/ 72 ******************************************************************************/
67 73
68acpi_status 74static acpi_status
69acpi_ns_dump_one_device ( 75acpi_ns_dump_one_device (
70 acpi_handle obj_handle, 76 acpi_handle obj_handle,
71 u32 level, 77 u32 level,
@@ -108,12 +114,15 @@ acpi_ns_dump_one_device (
108 * 114 *
109 * PARAMETERS: None 115 * PARAMETERS: None
110 * 116 *
117 * RETURN: None
118 *
111 * DESCRIPTION: Dump all objects of type "device" 119 * DESCRIPTION: Dump all objects of type "device"
112 * 120 *
113 ******************************************************************************/ 121 ******************************************************************************/
114 122
115void 123void
116acpi_ns_dump_root_devices (void) 124acpi_ns_dump_root_devices (
125 void)
117{ 126{
118 acpi_handle sys_bus_handle; 127 acpi_handle sys_bus_handle;
119 acpi_status status; 128 acpi_status status;
@@ -142,5 +151,6 @@ acpi_ns_dump_root_devices (void)
142} 151}
143 152
144#endif 153#endif
154#endif
145 155
146 156
diff --git a/drivers/acpi/namespace/nseval.c b/drivers/acpi/namespace/nseval.c
index 0d008d53657e..1ae89a1c8826 100644
--- a/drivers/acpi/namespace/nseval.c
+++ b/drivers/acpi/namespace/nseval.c
@@ -52,19 +52,33 @@
52#define _COMPONENT ACPI_NAMESPACE 52#define _COMPONENT ACPI_NAMESPACE
53 ACPI_MODULE_NAME ("nseval") 53 ACPI_MODULE_NAME ("nseval")
54 54
55/* Local prototypes */
56
57static acpi_status
58acpi_ns_execute_control_method (
59 struct acpi_parameter_info *info);
60
61static acpi_status
62acpi_ns_get_object_value (
63 struct acpi_parameter_info *info);
64
55 65
56/******************************************************************************* 66/*******************************************************************************
57 * 67 *
58 * FUNCTION: acpi_ns_evaluate_relative 68 * FUNCTION: acpi_ns_evaluate_relative
59 * 69 *
60 * PARAMETERS: Pathname - Name of method to execute, If NULL, the 70 * PARAMETERS: Pathname - Name of method to execute, If NULL, the
61 * handle is the object to execute 71 * handle is the object to execute
62 * Info - Method info block 72 * Info - Method info block, contains:
73 * return_object - Where to put method's return value (if
74 * any). If NULL, no value is returned.
75 * Params - List of parameters to pass to the method,
76 * terminated by NULL. Params itself may be
77 * NULL if no parameters are being passed.
63 * 78 *
64 * RETURN: Status 79 * RETURN: Status
65 * 80 *
66 * DESCRIPTION: Find and execute the requested method using the handle as a 81 * DESCRIPTION: Evaluate the object or find and execute the requested method
67 * scope
68 * 82 *
69 * MUTEX: Locks Namespace 83 * MUTEX: Locks Namespace
70 * 84 *
@@ -157,8 +171,8 @@ cleanup1:
157 * 171 *
158 * FUNCTION: acpi_ns_evaluate_by_name 172 * FUNCTION: acpi_ns_evaluate_by_name
159 * 173 *
160 * PARAMETERS: Pathname - Fully qualified pathname to the object 174 * PARAMETERS: Pathname - Fully qualified pathname to the object
161 * Info - Contains: 175 * Info - Method info block, contains:
162 * return_object - Where to put method's return value (if 176 * return_object - Where to put method's return value (if
163 * any). If NULL, no value is returned. 177 * any). If NULL, no value is returned.
164 * Params - List of parameters to pass to the method, 178 * Params - List of parameters to pass to the method,
@@ -167,8 +181,8 @@ cleanup1:
167 * 181 *
168 * RETURN: Status 182 * RETURN: Status
169 * 183 *
170 * DESCRIPTION: Find and execute the requested method passing the given 184 * DESCRIPTION: Evaluate the object or rind and execute the requested method
171 * parameters 185 * passing the given parameters
172 * 186 *
173 * MUTEX: Locks Namespace 187 * MUTEX: Locks Namespace
174 * 188 *
@@ -241,17 +255,21 @@ cleanup:
241 * 255 *
242 * FUNCTION: acpi_ns_evaluate_by_handle 256 * FUNCTION: acpi_ns_evaluate_by_handle
243 * 257 *
244 * PARAMETERS: Handle - Method Node to execute 258 * PARAMETERS: Info - Method info block, contains:
245 * Params - List of parameters to pass to the method, 259 * Node - Method/Object Node to execute
246 * terminated by NULL. Params itself may be 260 * Parameters - List of parameters to pass to the method,
261 * terminated by NULL. Params itself may be
247 * NULL if no parameters are being passed. 262 * NULL if no parameters are being passed.
248 * param_type - Type of Parameter list 263 * return_object - Where to put method's return value (if
249 * return_object - Where to put method's return value (if 264 * any). If NULL, no value is returned.
250 * any). If NULL, no value is returned. 265 * parameter_type - Type of Parameter list
266 * return_object - Where to put method's return value (if
267 * any). If NULL, no value is returned.
251 * 268 *
252 * RETURN: Status 269 * RETURN: Status
253 * 270 *
254 * DESCRIPTION: Execute the requested method passing the given parameters 271 * DESCRIPTION: Evaluate object or execute the requested method passing the
272 * given parameters
255 * 273 *
256 * MUTEX: Locks Namespace 274 * MUTEX: Locks Namespace
257 * 275 *
@@ -345,7 +363,16 @@ acpi_ns_evaluate_by_handle (
345 * 363 *
346 * FUNCTION: acpi_ns_execute_control_method 364 * FUNCTION: acpi_ns_execute_control_method
347 * 365 *
348 * PARAMETERS: Info - Method info block (w/params) 366 * PARAMETERS: Info - Method info block, contains:
367 * Node - Method Node to execute
368 * Parameters - List of parameters to pass to the method,
369 * terminated by NULL. Params itself may be
370 * NULL if no parameters are being passed.
371 * return_object - Where to put method's return value (if
372 * any). If NULL, no value is returned.
373 * parameter_type - Type of Parameter list
374 * return_object - Where to put method's return value (if
375 * any). If NULL, no value is returned.
349 * 376 *
350 * RETURN: Status 377 * RETURN: Status
351 * 378 *
@@ -355,7 +382,7 @@ acpi_ns_evaluate_by_handle (
355 * 382 *
356 ******************************************************************************/ 383 ******************************************************************************/
357 384
358acpi_status 385static acpi_status
359acpi_ns_execute_control_method ( 386acpi_ns_execute_control_method (
360 struct acpi_parameter_info *info) 387 struct acpi_parameter_info *info)
361{ 388{
@@ -414,7 +441,10 @@ acpi_ns_execute_control_method (
414 * 441 *
415 * FUNCTION: acpi_ns_get_object_value 442 * FUNCTION: acpi_ns_get_object_value
416 * 443 *
417 * PARAMETERS: Info - Method info block (w/params) 444 * PARAMETERS: Info - Method info block, contains:
445 * Node - Object's NS node
446 * return_object - Where to put object value (if
447 * any). If NULL, no value is returned.
418 * 448 *
419 * RETURN: Status 449 * RETURN: Status
420 * 450 *
@@ -424,7 +454,7 @@ acpi_ns_execute_control_method (
424 * 454 *
425 ******************************************************************************/ 455 ******************************************************************************/
426 456
427acpi_status 457static acpi_status
428acpi_ns_get_object_value ( 458acpi_ns_get_object_value (
429 struct acpi_parameter_info *info) 459 struct acpi_parameter_info *info)
430{ 460{
diff --git a/drivers/acpi/namespace/nsinit.c b/drivers/acpi/namespace/nsinit.c
index 4a46b380605b..362802ae29a2 100644
--- a/drivers/acpi/namespace/nsinit.c
+++ b/drivers/acpi/namespace/nsinit.c
@@ -50,6 +50,22 @@
50#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
51 ACPI_MODULE_NAME ("nsinit") 51 ACPI_MODULE_NAME ("nsinit")
52 52
53/* Local prototypes */
54
55static acpi_status
56acpi_ns_init_one_object (
57 acpi_handle obj_handle,
58 u32 level,
59 void *context,
60 void **return_value);
61
62static acpi_status
63acpi_ns_init_one_device (
64 acpi_handle obj_handle,
65 u32 nesting_level,
66 void *context,
67 void **return_value);
68
53 69
54/******************************************************************************* 70/*******************************************************************************
55 * 71 *
@@ -191,7 +207,7 @@ acpi_ns_initialize_devices (
191 * 207 *
192 ******************************************************************************/ 208 ******************************************************************************/
193 209
194acpi_status 210static acpi_status
195acpi_ns_init_one_object ( 211acpi_ns_init_one_object (
196 acpi_handle obj_handle, 212 acpi_handle obj_handle,
197 u32 level, 213 u32 level,
@@ -331,7 +347,7 @@ acpi_ns_init_one_object (
331 * 347 *
332 ******************************************************************************/ 348 ******************************************************************************/
333 349
334acpi_status 350static acpi_status
335acpi_ns_init_one_device ( 351acpi_ns_init_one_device (
336 acpi_handle obj_handle, 352 acpi_handle obj_handle,
337 u32 nesting_level, 353 u32 nesting_level,
@@ -374,7 +390,8 @@ acpi_ns_init_one_device (
374 /* 390 /*
375 * Run _STA to determine if we can run _INI on the device. 391 * Run _STA to determine if we can run _INI on the device.
376 */ 392 */
377 ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD, pinfo.node, "_STA")); 393 ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD,
394 pinfo.node, METHOD_NAME__STA));
378 status = acpi_ut_execute_STA (pinfo.node, &flags); 395 status = acpi_ut_execute_STA (pinfo.node, &flags);
379 396
380 if (ACPI_FAILURE (status)) { 397 if (ACPI_FAILURE (status)) {
@@ -399,8 +416,9 @@ acpi_ns_init_one_device (
399 /* 416 /*
400 * The device is present. Run _INI. 417 * The device is present. Run _INI.
401 */ 418 */
402 ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD, pinfo.node, "_INI")); 419 ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD,
403 status = acpi_ns_evaluate_relative ("_INI", &pinfo); 420 pinfo.node, METHOD_NAME__INI));
421 status = acpi_ns_evaluate_relative (METHOD_NAME__INI, &pinfo);
404 if (ACPI_FAILURE (status)) { 422 if (ACPI_FAILURE (status)) {
405 /* No _INI (AE_NOT_FOUND) means device requires no initialization */ 423 /* No _INI (AE_NOT_FOUND) means device requires no initialization */
406 424
diff --git a/drivers/acpi/namespace/nsload.c b/drivers/acpi/namespace/nsload.c
index 1d7aedf68a77..34e497016601 100644
--- a/drivers/acpi/namespace/nsload.c
+++ b/drivers/acpi/namespace/nsload.c
@@ -50,9 +50,24 @@
50#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
51 ACPI_MODULE_NAME ("nsload") 51 ACPI_MODULE_NAME ("nsload")
52 52
53/* Local prototypes */
53 54
54#ifndef ACPI_NO_METHOD_EXECUTION 55static acpi_status
56acpi_ns_load_table_by_type (
57 acpi_table_type table_type);
58
59#ifdef ACPI_FUTURE_IMPLEMENTATION
60acpi_status
61acpi_ns_unload_namespace (
62 acpi_handle handle);
63
64static acpi_status
65acpi_ns_delete_subtree (
66 acpi_handle start_handle);
67#endif
55 68
69
70#ifndef ACPI_NO_METHOD_EXECUTION
56/******************************************************************************* 71/*******************************************************************************
57 * 72 *
58 * FUNCTION: acpi_ns_load_table 73 * FUNCTION: acpi_ns_load_table
@@ -159,7 +174,7 @@ acpi_ns_load_table (
159 * 174 *
160 ******************************************************************************/ 175 ******************************************************************************/
161 176
162acpi_status 177static acpi_status
163acpi_ns_load_table_by_type ( 178acpi_ns_load_table_by_type (
164 acpi_table_type table_type) 179 acpi_table_type table_type)
165{ 180{
@@ -321,8 +336,7 @@ acpi_ns_load_namespace (
321} 336}
322 337
323 338
324#ifdef ACPI_FUTURE_USAGE 339#ifdef ACPI_FUTURE_IMPLEMENTATION
325
326/******************************************************************************* 340/*******************************************************************************
327 * 341 *
328 * FUNCTION: acpi_ns_delete_subtree 342 * FUNCTION: acpi_ns_delete_subtree
@@ -339,7 +353,7 @@ acpi_ns_load_namespace (
339 * 353 *
340 ******************************************************************************/ 354 ******************************************************************************/
341 355
342acpi_status 356static acpi_status
343acpi_ns_delete_subtree ( 357acpi_ns_delete_subtree (
344 acpi_handle start_handle) 358 acpi_handle start_handle)
345{ 359{
@@ -453,8 +467,6 @@ acpi_ns_unload_namespace (
453 467
454 return_ACPI_STATUS (status); 468 return_ACPI_STATUS (status);
455} 469}
456 470#endif
457#endif /* ACPI_FUTURE_USAGE */
458
459#endif 471#endif
460 472
diff --git a/drivers/acpi/namespace/nsnames.c b/drivers/acpi/namespace/nsnames.c
index b6f8f910eff0..d8ce7e39795f 100644
--- a/drivers/acpi/namespace/nsnames.c
+++ b/drivers/acpi/namespace/nsnames.c
@@ -50,6 +50,14 @@
50#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
51 ACPI_MODULE_NAME ("nsnames") 51 ACPI_MODULE_NAME ("nsnames")
52 52
53/* Local prototypes */
54
55static void
56acpi_ns_build_external_path (
57 struct acpi_namespace_node *node,
58 acpi_size size,
59 char *name_buffer);
60
53 61
54/******************************************************************************* 62/*******************************************************************************
55 * 63 *
@@ -66,7 +74,7 @@
66 * 74 *
67 ******************************************************************************/ 75 ******************************************************************************/
68 76
69void 77static void
70acpi_ns_build_external_path ( 78acpi_ns_build_external_path (
71 struct acpi_namespace_node *node, 79 struct acpi_namespace_node *node,
72 acpi_size size, 80 acpi_size size,
@@ -126,7 +134,7 @@ acpi_ns_build_external_path (
126 * 134 *
127 * FUNCTION: acpi_ns_get_external_pathname 135 * FUNCTION: acpi_ns_get_external_pathname
128 * 136 *
129 * PARAMETERS: Node - NS node whose pathname is needed 137 * PARAMETERS: Node - Namespace node whose pathname is needed
130 * 138 *
131 * RETURN: Pointer to storage containing the fully qualified name of 139 * RETURN: Pointer to storage containing the fully qualified name of
132 * the node, In external format (name segments separated by path 140 * the node, In external format (name segments separated by path
diff --git a/drivers/acpi/namespace/nsobject.c b/drivers/acpi/namespace/nsobject.c
index 4e41e66db61f..27258c1ca4f1 100644
--- a/drivers/acpi/namespace/nsobject.c
+++ b/drivers/acpi/namespace/nsobject.c
@@ -60,6 +60,8 @@
60 * Type - Type of object, or ACPI_TYPE_ANY if not 60 * Type - Type of object, or ACPI_TYPE_ANY if not
61 * known 61 * known
62 * 62 *
63 * RETURN: Status
64 *
63 * DESCRIPTION: Record the given object as the value associated with the 65 * DESCRIPTION: Record the given object as the value associated with the
64 * name whose acpi_handle is passed. If Object is NULL 66 * name whose acpi_handle is passed. If Object is NULL
65 * and Type is ACPI_TYPE_ANY, set the name as having no value. 67 * and Type is ACPI_TYPE_ANY, set the name as having no value.
@@ -97,7 +99,8 @@ acpi_ns_attach_object (
97 if (!object && (ACPI_TYPE_ANY != type)) { 99 if (!object && (ACPI_TYPE_ANY != type)) {
98 /* Null object */ 100 /* Null object */
99 101
100 ACPI_REPORT_ERROR (("ns_attach_object: Null object, but type not ACPI_TYPE_ANY\n")); 102 ACPI_REPORT_ERROR ((
103 "ns_attach_object: Null object, but type not ACPI_TYPE_ANY\n"));
101 return_ACPI_STATUS (AE_BAD_PARAMETER); 104 return_ACPI_STATUS (AE_BAD_PARAMETER);
102 } 105 }
103 106
@@ -112,7 +115,8 @@ acpi_ns_attach_object (
112 /* Check if this object is already attached */ 115 /* Check if this object is already attached */
113 116
114 if (node->object == object) { 117 if (node->object == object) {
115 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj %p already installed in name_obj %p\n", 118 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
119 "Obj %p already installed in name_obj %p\n",
116 object, node)); 120 object, node));
117 121
118 return_ACPI_STATUS (AE_OK); 122 return_ACPI_STATUS (AE_OK);
@@ -192,7 +196,7 @@ acpi_ns_attach_object (
192 * 196 *
193 * FUNCTION: acpi_ns_detach_object 197 * FUNCTION: acpi_ns_detach_object
194 * 198 *
195 * PARAMETERS: Node - An node whose object will be detached 199 * PARAMETERS: Node - A Namespace node whose object will be detached
196 * 200 *
197 * RETURN: None. 201 * RETURN: None.
198 * 202 *
@@ -248,7 +252,7 @@ acpi_ns_detach_object (
248 * 252 *
249 * FUNCTION: acpi_ns_get_attached_object 253 * FUNCTION: acpi_ns_get_attached_object
250 * 254 *
251 * PARAMETERS: Node - Parent Node to be examined 255 * PARAMETERS: Node - Namespace node
252 * 256 *
253 * RETURN: Current value of the object field from the Node whose 257 * RETURN: Current value of the object field from the Node whose
254 * handle is passed 258 * handle is passed
@@ -284,7 +288,7 @@ acpi_ns_get_attached_object (
284 * 288 *
285 * FUNCTION: acpi_ns_get_secondary_object 289 * FUNCTION: acpi_ns_get_secondary_object
286 * 290 *
287 * PARAMETERS: Node - Parent Node to be examined 291 * PARAMETERS: Node - Namespace node
288 * 292 *
289 * RETURN: Current value of the object field from the Node whose 293 * RETURN: Current value of the object field from the Node whose
290 * handle is passed. 294 * handle is passed.
diff --git a/drivers/acpi/namespace/nssearch.c b/drivers/acpi/namespace/nssearch.c
index 0e6dea23603b..af8aaa9cc4f3 100644
--- a/drivers/acpi/namespace/nssearch.c
+++ b/drivers/acpi/namespace/nssearch.c
@@ -49,15 +49,24 @@
49#define _COMPONENT ACPI_NAMESPACE 49#define _COMPONENT ACPI_NAMESPACE
50 ACPI_MODULE_NAME ("nssearch") 50 ACPI_MODULE_NAME ("nssearch")
51 51
52/* Local prototypes */
53
54static acpi_status
55acpi_ns_search_parent_tree (
56 u32 target_name,
57 struct acpi_namespace_node *node,
58 acpi_object_type type,
59 struct acpi_namespace_node **return_node);
60
52 61
53/******************************************************************************* 62/*******************************************************************************
54 * 63 *
55 * FUNCTION: acpi_ns_search_node 64 * FUNCTION: acpi_ns_search_node
56 * 65 *
57 * PARAMETERS: *target_name - Ascii ACPI name to search for 66 * PARAMETERS: target_name - Ascii ACPI name to search for
58 * *Node - Starting node where search will begin 67 * Node - Starting node where search will begin
59 * Type - Object type to match 68 * Type - Object type to match
60 * **return_node - Where the matched Named obj is returned 69 * return_node - Where the matched Named obj is returned
61 * 70 *
62 * RETURN: Status 71 * RETURN: Status
63 * 72 *
@@ -163,10 +172,10 @@ acpi_ns_search_node (
163 * 172 *
164 * FUNCTION: acpi_ns_search_parent_tree 173 * FUNCTION: acpi_ns_search_parent_tree
165 * 174 *
166 * PARAMETERS: *target_name - Ascii ACPI name to search for 175 * PARAMETERS: target_name - Ascii ACPI name to search for
167 * *Node - Starting node where search will begin 176 * Node - Starting node where search will begin
168 * Type - Object type to match 177 * Type - Object type to match
169 * **return_node - Where the matched Node is returned 178 * return_node - Where the matched Node is returned
170 * 179 *
171 * RETURN: Status 180 * RETURN: Status
172 * 181 *
@@ -257,12 +266,12 @@ acpi_ns_search_parent_tree (
257 * 266 *
258 * PARAMETERS: target_name - Ascii ACPI name to search for (4 chars) 267 * PARAMETERS: target_name - Ascii ACPI name to search for (4 chars)
259 * walk_state - Current state of the walk 268 * walk_state - Current state of the walk
260 * *Node - Starting node where search will begin 269 * Node - Starting node where search will begin
261 * interpreter_mode - Add names only in ACPI_MODE_LOAD_PASS_x. 270 * interpreter_mode - Add names only in ACPI_MODE_LOAD_PASS_x.
262 * Otherwise,search only. 271 * Otherwise,search only.
263 * Type - Object type to match 272 * Type - Object type to match
264 * Flags - Flags describing the search restrictions 273 * Flags - Flags describing the search restrictions
265 * **return_node - Where the Node is returned 274 * return_node - Where the Node is returned
266 * 275 *
267 * RETURN: Status 276 * RETURN: Status
268 * 277 *
diff --git a/drivers/acpi/namespace/nsutils.c b/drivers/acpi/namespace/nsutils.c
index 75da76cc0b19..c53b82e94ce3 100644
--- a/drivers/acpi/namespace/nsutils.c
+++ b/drivers/acpi/namespace/nsutils.c
@@ -51,6 +51,18 @@
51#define _COMPONENT ACPI_NAMESPACE 51#define _COMPONENT ACPI_NAMESPACE
52 ACPI_MODULE_NAME ("nsutils") 52 ACPI_MODULE_NAME ("nsutils")
53 53
54/* Local prototypes */
55
56static u8
57acpi_ns_valid_path_separator (
58 char sep);
59
60#ifdef ACPI_OBSOLETE_FUNCTIONS
61acpi_name
62acpi_ns_find_parent_name (
63 struct acpi_namespace_node *node_to_search);
64#endif
65
54 66
55/******************************************************************************* 67/*******************************************************************************
56 * 68 *
@@ -59,7 +71,8 @@
59 * PARAMETERS: module_name - Caller's module name (for error output) 71 * PARAMETERS: module_name - Caller's module name (for error output)
60 * line_number - Caller's line number (for error output) 72 * line_number - Caller's line number (for error output)
61 * component_id - Caller's component ID (for error output) 73 * component_id - Caller's component ID (for error output)
62 * Message - Error message to use on failure 74 * internal_name - Name or path of the namespace node
75 * lookup_status - Exception code from NS lookup
63 * 76 *
64 * RETURN: None 77 * RETURN: None
65 * 78 *
@@ -121,6 +134,9 @@ acpi_ns_report_error (
121 * line_number - Caller's line number (for error output) 134 * line_number - Caller's line number (for error output)
122 * component_id - Caller's component ID (for error output) 135 * component_id - Caller's component ID (for error output)
123 * Message - Error message to use on failure 136 * Message - Error message to use on failure
137 * prefix_node - Prefix relative to the path
138 * Path - Path to the node
139 * method_status - Execution status
124 * 140 *
125 * RETURN: None 141 * RETURN: None
126 * 142 *
@@ -161,8 +177,8 @@ acpi_ns_report_method_error (
161 * 177 *
162 * FUNCTION: acpi_ns_print_node_pathname 178 * FUNCTION: acpi_ns_print_node_pathname
163 * 179 *
164 * PARAMETERS: Node - Object 180 * PARAMETERS: Node - Object
165 * Msg - Prefix message 181 * Message - Prefix message
166 * 182 *
167 * DESCRIPTION: Print an object's full namespace pathname 183 * DESCRIPTION: Print an object's full namespace pathname
168 * Manages allocation/freeing of a pathname buffer 184 * Manages allocation/freeing of a pathname buffer
@@ -172,7 +188,7 @@ acpi_ns_report_method_error (
172void 188void
173acpi_ns_print_node_pathname ( 189acpi_ns_print_node_pathname (
174 struct acpi_namespace_node *node, 190 struct acpi_namespace_node *node,
175 char *msg) 191 char *message)
176{ 192{
177 struct acpi_buffer buffer; 193 struct acpi_buffer buffer;
178 acpi_status status; 194 acpi_status status;
@@ -189,8 +205,8 @@ acpi_ns_print_node_pathname (
189 205
190 status = acpi_ns_handle_to_pathname (node, &buffer); 206 status = acpi_ns_handle_to_pathname (node, &buffer);
191 if (ACPI_SUCCESS (status)) { 207 if (ACPI_SUCCESS (status)) {
192 if (msg) { 208 if (message) {
193 acpi_os_printf ("%s ", msg); 209 acpi_os_printf ("%s ", message);
194 } 210 }
195 211
196 acpi_os_printf ("[%s] (Node %p)", (char *) buffer.pointer, node); 212 acpi_os_printf ("[%s] (Node %p)", (char *) buffer.pointer, node);
@@ -224,7 +240,7 @@ acpi_ns_valid_root_prefix (
224 * 240 *
225 * FUNCTION: acpi_ns_valid_path_separator 241 * FUNCTION: acpi_ns_valid_path_separator
226 * 242 *
227 * PARAMETERS: Sep - Character to be checked 243 * PARAMETERS: Sep - Character to be checked
228 * 244 *
229 * RETURN: TRUE if a valid path separator 245 * RETURN: TRUE if a valid path separator
230 * 246 *
@@ -232,7 +248,7 @@ acpi_ns_valid_root_prefix (
232 * 248 *
233 ******************************************************************************/ 249 ******************************************************************************/
234 250
235u8 251static u8
236acpi_ns_valid_path_separator ( 252acpi_ns_valid_path_separator (
237 char sep) 253 char sep)
238{ 254{
@@ -245,10 +261,12 @@ acpi_ns_valid_path_separator (
245 * 261 *
246 * FUNCTION: acpi_ns_get_type 262 * FUNCTION: acpi_ns_get_type
247 * 263 *
248 * PARAMETERS: Handle - Parent Node to be examined 264 * PARAMETERS: Node - Parent Node to be examined
249 * 265 *
250 * RETURN: Type field from Node whose handle is passed 266 * RETURN: Type field from Node whose handle is passed
251 * 267 *
268 * DESCRIPTION: Return the type of a Namespace node
269 *
252 ******************************************************************************/ 270 ******************************************************************************/
253 271
254acpi_object_type 272acpi_object_type
@@ -271,11 +289,13 @@ acpi_ns_get_type (
271 * 289 *
272 * FUNCTION: acpi_ns_local 290 * FUNCTION: acpi_ns_local
273 * 291 *
274 * PARAMETERS: Type - A namespace object type 292 * PARAMETERS: Type - A namespace object type
275 * 293 *
276 * RETURN: LOCAL if names must be found locally in objects of the 294 * RETURN: LOCAL if names must be found locally in objects of the
277 * passed type, 0 if enclosing scopes should be searched 295 * passed type, 0 if enclosing scopes should be searched
278 * 296 *
297 * DESCRIPTION: Returns scope rule for the given object type.
298 *
279 ******************************************************************************/ 299 ******************************************************************************/
280 300
281u32 301u32
@@ -303,7 +323,7 @@ acpi_ns_local (
303 * PARAMETERS: Info - Info struct initialized with the 323 * PARAMETERS: Info - Info struct initialized with the
304 * external name pointer. 324 * external name pointer.
305 * 325 *
306 * RETURN: Status 326 * RETURN: None
307 * 327 *
308 * DESCRIPTION: Calculate the length of the internal (AML) namestring 328 * DESCRIPTION: Calculate the length of the internal (AML) namestring
309 * corresponding to the external (ASL) namestring. 329 * corresponding to the external (ASL) namestring.
@@ -551,14 +571,16 @@ acpi_ns_internalize_name (
551 * 571 *
552 * FUNCTION: acpi_ns_externalize_name 572 * FUNCTION: acpi_ns_externalize_name
553 * 573 *
554 * PARAMETERS: *internal_name - Internal representation of name 574 * PARAMETERS: internal_name_length - Lenth of the internal name below
555 * **converted_name - Where to return the resulting 575 * internal_name - Internal representation of name
556 * external representation of name 576 * converted_name_length - Where the length is returned
577 * converted_name - Where the resulting external name
578 * is returned
557 * 579 *
558 * RETURN: Status 580 * RETURN: Status
559 * 581 *
560 * DESCRIPTION: Convert internal name (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30) 582 * DESCRIPTION: Convert internal name (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
561 * to its external form (e.g. "\_PR_.CPU0") 583 * to its external (printable) form (e.g. "\_PR_.CPU0")
562 * 584 *
563 ******************************************************************************/ 585 ******************************************************************************/
564 586
@@ -717,8 +739,9 @@ acpi_ns_externalize_name (
717 * 739 *
718 * DESCRIPTION: Convert a namespace handle to a real Node 740 * DESCRIPTION: Convert a namespace handle to a real Node
719 * 741 *
720 * Note: Real integer handles allow for more verification 742 * Note: Real integer handles would allow for more verification
721 * and keep all pointers within this subsystem. 743 * and keep all pointers within this subsystem - however this introduces
744 * more (and perhaps unnecessary) overhead.
722 * 745 *
723 ******************************************************************************/ 746 ******************************************************************************/
724 747
@@ -775,7 +798,7 @@ acpi_ns_convert_entry_to_handle (
775 return ((acpi_handle) node); 798 return ((acpi_handle) node);
776 799
777 800
778/* --------------------------------------------------- 801/* Example future implementation ---------------------
779 802
780 if (!Node) 803 if (!Node)
781 { 804 {
@@ -801,12 +824,13 @@ acpi_ns_convert_entry_to_handle (
801 * 824 *
802 * RETURN: none 825 * RETURN: none
803 * 826 *
804 * DESCRIPTION: free memory allocated for table storage. 827 * DESCRIPTION: free memory allocated for namespace and ACPI table storage.
805 * 828 *
806 ******************************************************************************/ 829 ******************************************************************************/
807 830
808void 831void
809acpi_ns_terminate (void) 832acpi_ns_terminate (
833 void)
810{ 834{
811 union acpi_operand_object *obj_desc; 835 union acpi_operand_object *obj_desc;
812 836
@@ -940,7 +964,6 @@ acpi_ns_get_node_by_path (
940 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); 964 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
941 965
942cleanup: 966cleanup:
943 /* Cleanup */
944 if (internal_path) { 967 if (internal_path) {
945 ACPI_MEM_FREE (internal_path); 968 ACPI_MEM_FREE (internal_path);
946 } 969 }
@@ -950,55 +973,6 @@ cleanup:
950 973
951/******************************************************************************* 974/*******************************************************************************
952 * 975 *
953 * FUNCTION: acpi_ns_find_parent_name
954 *
955 * PARAMETERS: *child_node - Named Obj whose name is to be found
956 *
957 * RETURN: The ACPI name
958 *
959 * DESCRIPTION: Search for the given obj in its parent scope and return the
960 * name segment, or "????" if the parent name can't be found
961 * (which "should not happen").
962 *
963 ******************************************************************************/
964#ifdef ACPI_FUTURE_USAGE
965acpi_name
966acpi_ns_find_parent_name (
967 struct acpi_namespace_node *child_node)
968{
969 struct acpi_namespace_node *parent_node;
970
971
972 ACPI_FUNCTION_TRACE ("ns_find_parent_name");
973
974
975 if (child_node) {
976 /* Valid entry. Get the parent Node */
977
978 parent_node = acpi_ns_get_parent_node (child_node);
979 if (parent_node) {
980 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
981 "Parent of %p [%4.4s] is %p [%4.4s]\n",
982 child_node, acpi_ut_get_node_name (child_node),
983 parent_node, acpi_ut_get_node_name (parent_node)));
984
985 if (parent_node->name.integer) {
986 return_VALUE ((acpi_name) parent_node->name.integer);
987 }
988 }
989
990 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
991 "Unable to find parent of %p (%4.4s)\n",
992 child_node, acpi_ut_get_node_name (child_node)));
993 }
994
995 return_VALUE (ACPI_UNKNOWN_NAME);
996}
997#endif
998
999
1000/*******************************************************************************
1001 *
1002 * FUNCTION: acpi_ns_get_parent_node 976 * FUNCTION: acpi_ns_get_parent_node
1003 * 977 *
1004 * PARAMETERS: Node - Current table entry 978 * PARAMETERS: Node - Current table entry
@@ -1009,7 +983,6 @@ acpi_ns_find_parent_name (
1009 * 983 *
1010 ******************************************************************************/ 984 ******************************************************************************/
1011 985
1012
1013struct acpi_namespace_node * 986struct acpi_namespace_node *
1014acpi_ns_get_parent_node ( 987acpi_ns_get_parent_node (
1015 struct acpi_namespace_node *node) 988 struct acpi_namespace_node *node)
@@ -1030,7 +1003,6 @@ acpi_ns_get_parent_node (
1030 node = node->peer; 1003 node = node->peer;
1031 } 1004 }
1032 1005
1033
1034 return (node->peer); 1006 return (node->peer);
1035} 1007}
1036 1008
@@ -1049,7 +1021,6 @@ acpi_ns_get_parent_node (
1049 * 1021 *
1050 ******************************************************************************/ 1022 ******************************************************************************/
1051 1023
1052
1053struct acpi_namespace_node * 1024struct acpi_namespace_node *
1054acpi_ns_get_next_valid_node ( 1025acpi_ns_get_next_valid_node (
1055 struct acpi_namespace_node *node) 1026 struct acpi_namespace_node *node)
@@ -1067,3 +1038,53 @@ acpi_ns_get_next_valid_node (
1067} 1038}
1068 1039
1069 1040
1041#ifdef ACPI_OBSOLETE_FUNCTIONS
1042/*******************************************************************************
1043 *
1044 * FUNCTION: acpi_ns_find_parent_name
1045 *
1046 * PARAMETERS: *child_node - Named Obj whose name is to be found
1047 *
1048 * RETURN: The ACPI name
1049 *
1050 * DESCRIPTION: Search for the given obj in its parent scope and return the
1051 * name segment, or "????" if the parent name can't be found
1052 * (which "should not happen").
1053 *
1054 ******************************************************************************/
1055
1056acpi_name
1057acpi_ns_find_parent_name (
1058 struct acpi_namespace_node *child_node)
1059{
1060 struct acpi_namespace_node *parent_node;
1061
1062
1063 ACPI_FUNCTION_TRACE ("ns_find_parent_name");
1064
1065
1066 if (child_node) {
1067 /* Valid entry. Get the parent Node */
1068
1069 parent_node = acpi_ns_get_parent_node (child_node);
1070 if (parent_node) {
1071 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
1072 "Parent of %p [%4.4s] is %p [%4.4s]\n",
1073 child_node, acpi_ut_get_node_name (child_node),
1074 parent_node, acpi_ut_get_node_name (parent_node)));
1075
1076 if (parent_node->name.integer) {
1077 return_VALUE ((acpi_name) parent_node->name.integer);
1078 }
1079 }
1080
1081 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
1082 "Unable to find parent of %p (%4.4s)\n",
1083 child_node, acpi_ut_get_node_name (child_node)));
1084 }
1085
1086 return_VALUE (ACPI_UNKNOWN_NAME);
1087}
1088#endif
1089
1090
diff --git a/drivers/acpi/namespace/nswalk.c b/drivers/acpi/namespace/nswalk.c
index 4de2444df300..f9a7277dca6e 100644
--- a/drivers/acpi/namespace/nswalk.c
+++ b/drivers/acpi/namespace/nswalk.c
@@ -56,7 +56,7 @@
56 * 56 *
57 * PARAMETERS: Type - Type of node to be searched for 57 * PARAMETERS: Type - Type of node to be searched for
58 * parent_node - Parent node whose children we are 58 * parent_node - Parent node whose children we are
59 * getting 59 * getting
60 * child_node - Previous child that was found. 60 * child_node - Previous child that was found.
61 * The NEXT child will be returned 61 * The NEXT child will be returned
62 * 62 *
diff --git a/drivers/acpi/namespace/nsxfeval.c b/drivers/acpi/namespace/nsxfeval.c
index 1dc995586cbe..12ea202257fa 100644
--- a/drivers/acpi/namespace/nsxfeval.c
+++ b/drivers/acpi/namespace/nsxfeval.c
@@ -58,11 +58,11 @@
58 * FUNCTION: acpi_evaluate_object_typed 58 * FUNCTION: acpi_evaluate_object_typed
59 * 59 *
60 * PARAMETERS: Handle - Object handle (optional) 60 * PARAMETERS: Handle - Object handle (optional)
61 * *Pathname - Object pathname (optional) 61 * Pathname - Object pathname (optional)
62 * **external_params - List of parameters to pass to method, 62 * external_params - List of parameters to pass to method,
63 * terminated by NULL. May be NULL 63 * terminated by NULL. May be NULL
64 * if no parameters are being passed. 64 * if no parameters are being passed.
65 * *return_buffer - Where to put method's return value (if 65 * return_buffer - Where to put method's return value (if
66 * any). If NULL, no value is returned. 66 * any). If NULL, no value is returned.
67 * return_type - Expected type of return object 67 * return_type - Expected type of return object
68 * 68 *
@@ -73,6 +73,7 @@
73 * be valid (non-null) 73 * be valid (non-null)
74 * 74 *
75 ******************************************************************************/ 75 ******************************************************************************/
76
76#ifdef ACPI_FUTURE_USAGE 77#ifdef ACPI_FUTURE_USAGE
77acpi_status 78acpi_status
78acpi_evaluate_object_typed ( 79acpi_evaluate_object_typed (
@@ -307,7 +308,8 @@ acpi_evaluate_object (
307 if (ACPI_SUCCESS (status)) { 308 if (ACPI_SUCCESS (status)) {
308 /* Validate/Allocate/Clear caller buffer */ 309 /* Validate/Allocate/Clear caller buffer */
309 310
310 status = acpi_ut_initialize_buffer (return_buffer, buffer_space_needed); 311 status = acpi_ut_initialize_buffer (return_buffer,
312 buffer_space_needed);
311 if (ACPI_FAILURE (status)) { 313 if (ACPI_FAILURE (status)) {
312 /* 314 /*
313 * Caller's buffer is too small or a new one can't be allocated 315 * Caller's buffer is too small or a new one can't be allocated
@@ -423,7 +425,8 @@ acpi_walk_namespace (
423 return_ACPI_STATUS (status); 425 return_ACPI_STATUS (status);
424 } 426 }
425 427
426 status = acpi_ns_walk_namespace (type, start_object, max_depth, ACPI_NS_WALK_UNLOCK, 428 status = acpi_ns_walk_namespace (type, start_object, max_depth,
429 ACPI_NS_WALK_UNLOCK,
427 user_function, context, return_value); 430 user_function, context, return_value);
428 431
429 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); 432 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
@@ -525,7 +528,8 @@ acpi_ns_get_device_callback (
525 } 528 }
526 } 529 }
527 530
528 status = info->user_function (obj_handle, nesting_level, info->context, return_value); 531 status = info->user_function (obj_handle, nesting_level, info->context,
532 return_value);
529 return (status); 533 return (status);
530} 534}
531 535
diff --git a/drivers/acpi/namespace/nsxfname.c b/drivers/acpi/namespace/nsxfname.c
index f2405efd1b9a..8d097914c49a 100644
--- a/drivers/acpi/namespace/nsxfname.c
+++ b/drivers/acpi/namespace/nsxfname.c
@@ -57,9 +57,9 @@
57 * FUNCTION: acpi_get_handle 57 * FUNCTION: acpi_get_handle
58 * 58 *
59 * PARAMETERS: Parent - Object to search under (search scope). 59 * PARAMETERS: Parent - Object to search under (search scope).
60 * path_name - Pointer to an asciiz string containing the 60 * Pathname - Pointer to an asciiz string containing the
61 * name 61 * name
62 * ret_handle - Where the return handle is placed 62 * ret_handle - Where the return handle is returned
63 * 63 *
64 * RETURN: Status 64 * RETURN: Status
65 * 65 *
@@ -220,7 +220,7 @@ EXPORT_SYMBOL(acpi_get_name);
220 * FUNCTION: acpi_get_object_info 220 * FUNCTION: acpi_get_object_info
221 * 221 *
222 * PARAMETERS: Handle - Object Handle 222 * PARAMETERS: Handle - Object Handle
223 * Info - Where the info is returned 223 * Buffer - Where the info is returned
224 * 224 *
225 * RETURN: Status 225 * RETURN: Status
226 * 226 *
diff --git a/drivers/acpi/namespace/nsxfobj.c b/drivers/acpi/namespace/nsxfobj.c
index 19acf32674b9..363e1f6cfb18 100644
--- a/drivers/acpi/namespace/nsxfobj.c
+++ b/drivers/acpi/namespace/nsxfobj.c
@@ -56,7 +56,7 @@
56 * FUNCTION: acpi_get_type 56 * FUNCTION: acpi_get_type
57 * 57 *
58 * PARAMETERS: Handle - Handle of object whose type is desired 58 * PARAMETERS: Handle - Handle of object whose type is desired
59 * *ret_type - Where the type will be placed 59 * ret_type - Where the type will be placed
60 * 60 *
61 * RETURN: Status 61 * RETURN: Status
62 * 62 *
@@ -258,5 +258,5 @@ unlock_and_exit:
258 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); 258 (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
259 return (status); 259 return (status);
260} 260}
261EXPORT_SYMBOL(acpi_get_next_object);
262 261
262EXPORT_SYMBOL(acpi_get_next_object);