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>
This commit is contained in:
@@ -67,7 +67,8 @@
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
acpi_ns_root_initialize (void)
|
||||
acpi_ns_root_initialize (
|
||||
void)
|
||||
{
|
||||
acpi_status status;
|
||||
const struct acpi_predefined_names *init_val = NULL;
|
||||
@@ -265,7 +266,7 @@ unlock_and_exit:
|
||||
*
|
||||
* FUNCTION: acpi_ns_lookup
|
||||
*
|
||||
* PARAMETERS: prefix_node - Search scope if name is not fully qualified
|
||||
* PARAMETERS: scope_info - Current scope info block
|
||||
* Pathname - Search pathname, in internal format
|
||||
* (as represented in the AML stream)
|
||||
* Type - Type associated with name
|
||||
|
@@ -49,14 +49,20 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsalloc")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static void
|
||||
acpi_ns_remove_reference (
|
||||
struct acpi_namespace_node *node);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_create_node
|
||||
*
|
||||
* PARAMETERS: acpi_name - Name of the new node
|
||||
* PARAMETERS: Name - Name of the new node (4 char ACPI name)
|
||||
*
|
||||
* RETURN: None
|
||||
* RETURN: New namespace node (Null on failure)
|
||||
*
|
||||
* DESCRIPTION: Create a namespace node
|
||||
*
|
||||
@@ -145,7 +151,6 @@ acpi_ns_delete_node (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].total_freed++);
|
||||
|
||||
/*
|
||||
@@ -157,57 +162,6 @@ acpi_ns_delete_node (
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_ALPHABETIC_NAMESPACE
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_compare_names
|
||||
*
|
||||
* PARAMETERS: Name1 - First name to compare
|
||||
* Name2 - Second name to compare
|
||||
*
|
||||
* RETURN: value from strncmp
|
||||
*
|
||||
* DESCRIPTION: Compare two ACPI names. Names that are prefixed with an
|
||||
* underscore are forced to be alphabetically first.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
acpi_ns_compare_names (
|
||||
char *name1,
|
||||
char *name2)
|
||||
{
|
||||
char reversed_name1[ACPI_NAME_SIZE];
|
||||
char reversed_name2[ACPI_NAME_SIZE];
|
||||
u32 i;
|
||||
u32 j;
|
||||
|
||||
|
||||
/*
|
||||
* Replace all instances of "underscore" with a value that is smaller so
|
||||
* that all names that are prefixed with underscore(s) are alphabetically
|
||||
* first.
|
||||
*
|
||||
* Reverse the name bytewise so we can just do a 32-bit compare instead
|
||||
* of a strncmp.
|
||||
*/
|
||||
for (i = 0, j= (ACPI_NAME_SIZE - 1); i < ACPI_NAME_SIZE; i++, j--) {
|
||||
reversed_name1[j] = name1[i];
|
||||
if (name1[i] == '_') {
|
||||
reversed_name1[j] = '*';
|
||||
}
|
||||
|
||||
reversed_name2[j] = name2[i];
|
||||
if (name2[i] == '_') {
|
||||
reversed_name2[j] = '*';
|
||||
}
|
||||
}
|
||||
|
||||
return (*(int *) reversed_name1 - *(int *) reversed_name2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_install_node
|
||||
@@ -271,7 +225,8 @@ acpi_ns_install_node (
|
||||
* alphabetic placement.
|
||||
*/
|
||||
previous_child_node = NULL;
|
||||
while (acpi_ns_compare_names (acpi_ut_get_node_name (child_node), acpi_ut_get_node_name (node)) < 0) {
|
||||
while (acpi_ns_compare_names (acpi_ut_get_node_name (child_node),
|
||||
acpi_ut_get_node_name (node)) < 0) {
|
||||
if (child_node->flags & ANOBJ_END_OF_PEER_LIST) {
|
||||
/* Last peer; Clear end-of-list flag */
|
||||
|
||||
@@ -429,7 +384,8 @@ acpi_ns_delete_children (
|
||||
/* There should be only one reference remaining on this node */
|
||||
|
||||
if (child_node->reference_count != 1) {
|
||||
ACPI_REPORT_WARNING (("Existing references (%d) on node being deleted (%p)\n",
|
||||
ACPI_REPORT_WARNING ((
|
||||
"Existing references (%d) on node being deleted (%p)\n",
|
||||
child_node->reference_count, child_node));
|
||||
}
|
||||
|
||||
@@ -548,7 +504,7 @@ acpi_ns_delete_namespace_subtree (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
static void
|
||||
acpi_ns_remove_reference (
|
||||
struct acpi_namespace_node *node)
|
||||
{
|
||||
@@ -683,3 +639,54 @@ acpi_ns_delete_namespace_by_owner (
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_ALPHABETIC_NAMESPACE
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_compare_names
|
||||
*
|
||||
* PARAMETERS: Name1 - First name to compare
|
||||
* Name2 - Second name to compare
|
||||
*
|
||||
* RETURN: value from strncmp
|
||||
*
|
||||
* DESCRIPTION: Compare two ACPI names. Names that are prefixed with an
|
||||
* underscore are forced to be alphabetically first.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
acpi_ns_compare_names (
|
||||
char *name1,
|
||||
char *name2)
|
||||
{
|
||||
char reversed_name1[ACPI_NAME_SIZE];
|
||||
char reversed_name2[ACPI_NAME_SIZE];
|
||||
u32 i;
|
||||
u32 j;
|
||||
|
||||
|
||||
/*
|
||||
* Replace all instances of "underscore" with a value that is smaller so
|
||||
* that all names that are prefixed with underscore(s) are alphabetically
|
||||
* first.
|
||||
*
|
||||
* Reverse the name bytewise so we can just do a 32-bit compare instead
|
||||
* of a strncmp.
|
||||
*/
|
||||
for (i = 0, j= (ACPI_NAME_SIZE - 1); i < ACPI_NAME_SIZE; i++, j--) {
|
||||
reversed_name1[j] = name1[i];
|
||||
if (name1[i] == '_') {
|
||||
reversed_name1[j] = '*';
|
||||
}
|
||||
|
||||
reversed_name2[j] = name2[i];
|
||||
if (name2[i] == '_') {
|
||||
reversed_name2[j] = '*';
|
||||
}
|
||||
}
|
||||
|
||||
return (*(int *) reversed_name1 - *(int *) reversed_name2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -50,16 +50,32 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsdump")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
void
|
||||
acpi_ns_dump_root_devices (
|
||||
void);
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_dump_one_device (
|
||||
acpi_handle obj_handle,
|
||||
u32 level,
|
||||
void *context,
|
||||
void **return_value);
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_print_pathname
|
||||
*
|
||||
* PARAMETERS: num_segment - Number of ACPI name segments
|
||||
* PARAMETERS: num_segments - Number of ACPI name segments
|
||||
* Pathname - The compressed (internal) path
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print an object's full namespace pathname
|
||||
*
|
||||
******************************************************************************/
|
||||
@@ -103,6 +119,8 @@ acpi_ns_print_pathname (
|
||||
* Level - Desired debug level
|
||||
* Component - Caller's component ID
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print an object's full namespace pathname
|
||||
* Manages allocation/freeing of a pathname buffer
|
||||
*
|
||||
@@ -137,9 +155,12 @@ acpi_ns_dump_pathname (
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_one_object
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* PARAMETERS: obj_handle - Node to be dumped
|
||||
* Level - Nesting level of the handle
|
||||
* Context - Passed into walk_namespace
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Dump a single Node
|
||||
* This procedure is a user_function called by acpi_ns_walk_namespace.
|
||||
@@ -394,8 +415,7 @@ acpi_ns_dump_one_object (
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
acpi_os_printf ("(R%d)",
|
||||
obj_desc->common.reference_count);
|
||||
acpi_os_printf ("(R%d)", obj_desc->common.reference_count);
|
||||
|
||||
switch (type) {
|
||||
case ACPI_TYPE_METHOD:
|
||||
@@ -551,18 +571,20 @@ cleanup:
|
||||
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_objects
|
||||
*
|
||||
* PARAMETERS: Type - Object type to be dumped
|
||||
* display_type - 0 or ACPI_DISPLAY_SUMMARY
|
||||
* max_depth - Maximum depth of dump. Use ACPI_UINT32_MAX
|
||||
* for an effectively unlimited depth.
|
||||
* owner_id - Dump only objects owned by this ID. Use
|
||||
* ACPI_UINT32_MAX to match all owners.
|
||||
* start_handle - Where in namespace to start/end search
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump typed objects within the loaded namespace.
|
||||
* Uses acpi_ns_walk_namespace in conjunction with acpi_ns_dump_one_object.
|
||||
*
|
||||
@@ -592,6 +614,39 @@ acpi_ns_dump_objects (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_entry
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* debug_level - Output level
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump a single Node
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ns_dump_entry (
|
||||
acpi_handle handle,
|
||||
u32 debug_level)
|
||||
{
|
||||
struct acpi_walk_info info;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
info.debug_level = debug_level;
|
||||
info.owner_id = ACPI_UINT32_MAX;
|
||||
info.display_type = ACPI_DISPLAY_SUMMARY;
|
||||
|
||||
(void) acpi_ns_dump_one_object (handle, 1, &info, NULL);
|
||||
}
|
||||
|
||||
|
||||
#ifdef _ACPI_ASL_COMPILER
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_tables
|
||||
@@ -601,6 +656,8 @@ acpi_ns_dump_objects (
|
||||
* max_depth - Maximum depth of dump. Use INT_MAX
|
||||
* for an effectively unlimited depth.
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump the name space, or a portion of it.
|
||||
*
|
||||
******************************************************************************/
|
||||
@@ -626,7 +683,7 @@ acpi_ns_dump_tables (
|
||||
}
|
||||
|
||||
if (ACPI_NS_ALL == search_base) {
|
||||
/* entire namespace */
|
||||
/* Entire namespace */
|
||||
|
||||
search_handle = acpi_gbl_root_node;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));
|
||||
@@ -636,38 +693,6 @@ acpi_ns_dump_tables (
|
||||
ACPI_UINT32_MAX, search_handle);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_entry
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* debug_level - Output level
|
||||
*
|
||||
* DESCRIPTION: Dump a single Node
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ns_dump_entry (
|
||||
acpi_handle handle,
|
||||
u32 debug_level)
|
||||
{
|
||||
struct acpi_walk_info info;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
info.debug_level = debug_level;
|
||||
info.owner_id = ACPI_UINT32_MAX;
|
||||
info.display_type = ACPI_DISPLAY_SUMMARY;
|
||||
|
||||
(void) acpi_ns_dump_one_object (handle, 1, &info, NULL);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _ACPI_ASL_COMPILER */
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
#endif /* defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) */
|
||||
|
@@ -43,15 +43,18 @@
|
||||
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include <acpi/acnamesp.h>
|
||||
|
||||
|
||||
/* TBD: This entire module is apparently obsolete and should be removed */
|
||||
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsdumpdv")
|
||||
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
#include <acpi/acnamesp.h>
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_dump_one_device
|
||||
@@ -59,13 +62,16 @@
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* Level - Nesting level of the handle
|
||||
* Context - Passed into walk_namespace
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Dump a single Node that represents a device
|
||||
* This procedure is a user_function called by acpi_ns_walk_namespace.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_dump_one_device (
|
||||
acpi_handle obj_handle,
|
||||
u32 level,
|
||||
@@ -108,12 +114,15 @@ acpi_ns_dump_one_device (
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump all objects of type "device"
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ns_dump_root_devices (void)
|
||||
acpi_ns_dump_root_devices (
|
||||
void)
|
||||
{
|
||||
acpi_handle sys_bus_handle;
|
||||
acpi_status status;
|
||||
@@ -142,5 +151,6 @@ acpi_ns_dump_root_devices (void)
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -52,19 +52,33 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nseval")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_execute_control_method (
|
||||
struct acpi_parameter_info *info);
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_get_object_value (
|
||||
struct acpi_parameter_info *info);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_evaluate_relative
|
||||
*
|
||||
* PARAMETERS: Pathname - Name of method to execute, If NULL, the
|
||||
* handle is the object to execute
|
||||
* Info - Method info block
|
||||
* PARAMETERS: Pathname - Name of method to execute, If NULL, the
|
||||
* handle is the object to execute
|
||||
* Info - Method info block, contains:
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Find and execute the requested method using the handle as a
|
||||
* scope
|
||||
* DESCRIPTION: Evaluate the object or find and execute the requested method
|
||||
*
|
||||
* MUTEX: Locks Namespace
|
||||
*
|
||||
@@ -157,8 +171,8 @@ cleanup1:
|
||||
*
|
||||
* FUNCTION: acpi_ns_evaluate_by_name
|
||||
*
|
||||
* PARAMETERS: Pathname - Fully qualified pathname to the object
|
||||
* Info - Contains:
|
||||
* PARAMETERS: Pathname - Fully qualified pathname to the object
|
||||
* Info - Method info block, contains:
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* Params - List of parameters to pass to the method,
|
||||
@@ -167,8 +181,8 @@ cleanup1:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Find and execute the requested method passing the given
|
||||
* parameters
|
||||
* DESCRIPTION: Evaluate the object or rind and execute the requested method
|
||||
* passing the given parameters
|
||||
*
|
||||
* MUTEX: Locks Namespace
|
||||
*
|
||||
@@ -241,17 +255,21 @@ cleanup:
|
||||
*
|
||||
* FUNCTION: acpi_ns_evaluate_by_handle
|
||||
*
|
||||
* PARAMETERS: Handle - Method Node to execute
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* PARAMETERS: Info - Method info block, contains:
|
||||
* Node - Method/Object Node to execute
|
||||
* Parameters - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* param_type - Type of Parameter list
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* parameter_type - Type of Parameter list
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Execute the requested method passing the given parameters
|
||||
* DESCRIPTION: Evaluate object or execute the requested method passing the
|
||||
* given parameters
|
||||
*
|
||||
* MUTEX: Locks Namespace
|
||||
*
|
||||
@@ -345,7 +363,16 @@ acpi_ns_evaluate_by_handle (
|
||||
*
|
||||
* FUNCTION: acpi_ns_execute_control_method
|
||||
*
|
||||
* PARAMETERS: Info - Method info block (w/params)
|
||||
* PARAMETERS: Info - Method info block, contains:
|
||||
* Node - Method Node to execute
|
||||
* Parameters - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* parameter_type - Type of Parameter list
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -355,7 +382,7 @@ acpi_ns_evaluate_by_handle (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_execute_control_method (
|
||||
struct acpi_parameter_info *info)
|
||||
{
|
||||
@@ -414,7 +441,10 @@ acpi_ns_execute_control_method (
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_object_value
|
||||
*
|
||||
* PARAMETERS: Info - Method info block (w/params)
|
||||
* PARAMETERS: Info - Method info block, contains:
|
||||
* Node - Object's NS node
|
||||
* return_object - Where to put object value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -424,7 +454,7 @@ acpi_ns_execute_control_method (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_get_object_value (
|
||||
struct acpi_parameter_info *info)
|
||||
{
|
||||
|
@@ -50,6 +50,22 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsinit")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_init_one_object (
|
||||
acpi_handle obj_handle,
|
||||
u32 level,
|
||||
void *context,
|
||||
void **return_value);
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_init_one_device (
|
||||
acpi_handle obj_handle,
|
||||
u32 nesting_level,
|
||||
void *context,
|
||||
void **return_value);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -191,7 +207,7 @@ acpi_ns_initialize_devices (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_init_one_object (
|
||||
acpi_handle obj_handle,
|
||||
u32 level,
|
||||
@@ -331,7 +347,7 @@ acpi_ns_init_one_object (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_init_one_device (
|
||||
acpi_handle obj_handle,
|
||||
u32 nesting_level,
|
||||
@@ -374,7 +390,8 @@ acpi_ns_init_one_device (
|
||||
/*
|
||||
* Run _STA to determine if we can run _INI on the device.
|
||||
*/
|
||||
ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD, pinfo.node, "_STA"));
|
||||
ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD,
|
||||
pinfo.node, METHOD_NAME__STA));
|
||||
status = acpi_ut_execute_STA (pinfo.node, &flags);
|
||||
|
||||
if (ACPI_FAILURE (status)) {
|
||||
@@ -399,8 +416,9 @@ acpi_ns_init_one_device (
|
||||
/*
|
||||
* The device is present. Run _INI.
|
||||
*/
|
||||
ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD, pinfo.node, "_INI"));
|
||||
status = acpi_ns_evaluate_relative ("_INI", &pinfo);
|
||||
ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD,
|
||||
pinfo.node, METHOD_NAME__INI));
|
||||
status = acpi_ns_evaluate_relative (METHOD_NAME__INI, &pinfo);
|
||||
if (ACPI_FAILURE (status)) {
|
||||
/* No _INI (AE_NOT_FOUND) means device requires no initialization */
|
||||
|
||||
|
@@ -50,9 +50,24 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsload")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_load_table_by_type (
|
||||
acpi_table_type table_type);
|
||||
|
||||
#ifdef ACPI_FUTURE_IMPLEMENTATION
|
||||
acpi_status
|
||||
acpi_ns_unload_namespace (
|
||||
acpi_handle handle);
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_delete_subtree (
|
||||
acpi_handle start_handle);
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef ACPI_NO_METHOD_EXECUTION
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_load_table
|
||||
@@ -159,7 +174,7 @@ acpi_ns_load_table (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_load_table_by_type (
|
||||
acpi_table_type table_type)
|
||||
{
|
||||
@@ -321,8 +336,7 @@ acpi_ns_load_namespace (
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
|
||||
#ifdef ACPI_FUTURE_IMPLEMENTATION
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_delete_subtree
|
||||
@@ -339,7 +353,7 @@ acpi_ns_load_namespace (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status
|
||||
static acpi_status
|
||||
acpi_ns_delete_subtree (
|
||||
acpi_handle start_handle)
|
||||
{
|
||||
@@ -453,8 +467,6 @@ acpi_ns_unload_namespace (
|
||||
|
||||
return_ACPI_STATUS (status);
|
||||
}
|
||||
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@@ -50,6 +50,14 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsnames")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static void
|
||||
acpi_ns_build_external_path (
|
||||
struct acpi_namespace_node *node,
|
||||
acpi_size size,
|
||||
char *name_buffer);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -66,7 +74,7 @@
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
static void
|
||||
acpi_ns_build_external_path (
|
||||
struct acpi_namespace_node *node,
|
||||
acpi_size size,
|
||||
@@ -126,7 +134,7 @@ acpi_ns_build_external_path (
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_external_pathname
|
||||
*
|
||||
* PARAMETERS: Node - NS node whose pathname is needed
|
||||
* PARAMETERS: Node - Namespace node whose pathname is needed
|
||||
*
|
||||
* RETURN: Pointer to storage containing the fully qualified name of
|
||||
* the node, In external format (name segments separated by path
|
||||
|
@@ -60,6 +60,8 @@
|
||||
* Type - Type of object, or ACPI_TYPE_ANY if not
|
||||
* known
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Record the given object as the value associated with the
|
||||
* name whose acpi_handle is passed. If Object is NULL
|
||||
* and Type is ACPI_TYPE_ANY, set the name as having no value.
|
||||
@@ -97,7 +99,8 @@ acpi_ns_attach_object (
|
||||
if (!object && (ACPI_TYPE_ANY != type)) {
|
||||
/* Null object */
|
||||
|
||||
ACPI_REPORT_ERROR (("ns_attach_object: Null object, but type not ACPI_TYPE_ANY\n"));
|
||||
ACPI_REPORT_ERROR ((
|
||||
"ns_attach_object: Null object, but type not ACPI_TYPE_ANY\n"));
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
@@ -112,7 +115,8 @@ acpi_ns_attach_object (
|
||||
/* Check if this object is already attached */
|
||||
|
||||
if (node->object == object) {
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj %p already installed in name_obj %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"Obj %p already installed in name_obj %p\n",
|
||||
object, node));
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@@ -192,7 +196,7 @@ acpi_ns_attach_object (
|
||||
*
|
||||
* FUNCTION: acpi_ns_detach_object
|
||||
*
|
||||
* PARAMETERS: Node - An node whose object will be detached
|
||||
* PARAMETERS: Node - A Namespace node whose object will be detached
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
@@ -248,7 +252,7 @@ acpi_ns_detach_object (
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_attached_object
|
||||
*
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
* PARAMETERS: Node - Namespace node
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
@@ -284,7 +288,7 @@ acpi_ns_get_attached_object (
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_secondary_object
|
||||
*
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
* PARAMETERS: Node - Namespace node
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed.
|
||||
|
@@ -49,15 +49,24 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nssearch")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static acpi_status
|
||||
acpi_ns_search_parent_tree (
|
||||
u32 target_name,
|
||||
struct acpi_namespace_node *node,
|
||||
acpi_object_type type,
|
||||
struct acpi_namespace_node **return_node);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_search_node
|
||||
*
|
||||
* PARAMETERS: *target_name - Ascii ACPI name to search for
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **return_node - Where the matched Named obj is returned
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for
|
||||
* Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* return_node - Where the matched Named obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -163,10 +172,10 @@ acpi_ns_search_node (
|
||||
*
|
||||
* FUNCTION: acpi_ns_search_parent_tree
|
||||
*
|
||||
* PARAMETERS: *target_name - Ascii ACPI name to search for
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **return_node - Where the matched Node is returned
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for
|
||||
* Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* return_node - Where the matched Node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -257,12 +266,12 @@ acpi_ns_search_parent_tree (
|
||||
*
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for (4 chars)
|
||||
* walk_state - Current state of the walk
|
||||
* *Node - Starting node where search will begin
|
||||
* Node - Starting node where search will begin
|
||||
* interpreter_mode - Add names only in ACPI_MODE_LOAD_PASS_x.
|
||||
* Otherwise,search only.
|
||||
* Type - Object type to match
|
||||
* Flags - Flags describing the search restrictions
|
||||
* **return_node - Where the Node is returned
|
||||
* return_node - Where the Node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
@@ -51,6 +51,18 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsutils")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static u8
|
||||
acpi_ns_valid_path_separator (
|
||||
char sep);
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
acpi_name
|
||||
acpi_ns_find_parent_name (
|
||||
struct acpi_namespace_node *node_to_search);
|
||||
#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -59,7 +71,8 @@
|
||||
* PARAMETERS: module_name - Caller's module name (for error output)
|
||||
* line_number - Caller's line number (for error output)
|
||||
* component_id - Caller's component ID (for error output)
|
||||
* Message - Error message to use on failure
|
||||
* internal_name - Name or path of the namespace node
|
||||
* lookup_status - Exception code from NS lookup
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
@@ -121,6 +134,9 @@ acpi_ns_report_error (
|
||||
* line_number - Caller's line number (for error output)
|
||||
* component_id - Caller's component ID (for error output)
|
||||
* Message - Error message to use on failure
|
||||
* prefix_node - Prefix relative to the path
|
||||
* Path - Path to the node
|
||||
* method_status - Execution status
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
@@ -161,8 +177,8 @@ acpi_ns_report_method_error (
|
||||
*
|
||||
* FUNCTION: acpi_ns_print_node_pathname
|
||||
*
|
||||
* PARAMETERS: Node - Object
|
||||
* Msg - Prefix message
|
||||
* PARAMETERS: Node - Object
|
||||
* Message - Prefix message
|
||||
*
|
||||
* DESCRIPTION: Print an object's full namespace pathname
|
||||
* Manages allocation/freeing of a pathname buffer
|
||||
@@ -172,7 +188,7 @@ acpi_ns_report_method_error (
|
||||
void
|
||||
acpi_ns_print_node_pathname (
|
||||
struct acpi_namespace_node *node,
|
||||
char *msg)
|
||||
char *message)
|
||||
{
|
||||
struct acpi_buffer buffer;
|
||||
acpi_status status;
|
||||
@@ -189,8 +205,8 @@ acpi_ns_print_node_pathname (
|
||||
|
||||
status = acpi_ns_handle_to_pathname (node, &buffer);
|
||||
if (ACPI_SUCCESS (status)) {
|
||||
if (msg) {
|
||||
acpi_os_printf ("%s ", msg);
|
||||
if (message) {
|
||||
acpi_os_printf ("%s ", message);
|
||||
}
|
||||
|
||||
acpi_os_printf ("[%s] (Node %p)", (char *) buffer.pointer, node);
|
||||
@@ -224,7 +240,7 @@ acpi_ns_valid_root_prefix (
|
||||
*
|
||||
* FUNCTION: acpi_ns_valid_path_separator
|
||||
*
|
||||
* PARAMETERS: Sep - Character to be checked
|
||||
* PARAMETERS: Sep - Character to be checked
|
||||
*
|
||||
* RETURN: TRUE if a valid path separator
|
||||
*
|
||||
@@ -232,7 +248,7 @@ acpi_ns_valid_root_prefix (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
u8
|
||||
static u8
|
||||
acpi_ns_valid_path_separator (
|
||||
char sep)
|
||||
{
|
||||
@@ -245,10 +261,12 @@ acpi_ns_valid_path_separator (
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_type
|
||||
*
|
||||
* PARAMETERS: Handle - Parent Node to be examined
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
*
|
||||
* RETURN: Type field from Node whose handle is passed
|
||||
*
|
||||
* DESCRIPTION: Return the type of a Namespace node
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_object_type
|
||||
@@ -271,11 +289,13 @@ acpi_ns_get_type (
|
||||
*
|
||||
* FUNCTION: acpi_ns_local
|
||||
*
|
||||
* PARAMETERS: Type - A namespace object type
|
||||
* PARAMETERS: Type - A namespace object type
|
||||
*
|
||||
* RETURN: LOCAL if names must be found locally in objects of the
|
||||
* passed type, 0 if enclosing scopes should be searched
|
||||
*
|
||||
* DESCRIPTION: Returns scope rule for the given object type.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
u32
|
||||
@@ -303,7 +323,7 @@ acpi_ns_local (
|
||||
* PARAMETERS: Info - Info struct initialized with the
|
||||
* external name pointer.
|
||||
*
|
||||
* RETURN: Status
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Calculate the length of the internal (AML) namestring
|
||||
* corresponding to the external (ASL) namestring.
|
||||
@@ -551,14 +571,16 @@ acpi_ns_internalize_name (
|
||||
*
|
||||
* FUNCTION: acpi_ns_externalize_name
|
||||
*
|
||||
* PARAMETERS: *internal_name - Internal representation of name
|
||||
* **converted_name - Where to return the resulting
|
||||
* external representation of name
|
||||
* PARAMETERS: internal_name_length - Lenth of the internal name below
|
||||
* internal_name - Internal representation of name
|
||||
* converted_name_length - Where the length is returned
|
||||
* converted_name - Where the resulting external name
|
||||
* is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Convert internal name (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
|
||||
* to its external form (e.g. "\_PR_.CPU0")
|
||||
* to its external (printable) form (e.g. "\_PR_.CPU0")
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@@ -717,8 +739,9 @@ acpi_ns_externalize_name (
|
||||
*
|
||||
* DESCRIPTION: Convert a namespace handle to a real Node
|
||||
*
|
||||
* Note: Real integer handles allow for more verification
|
||||
* and keep all pointers within this subsystem.
|
||||
* Note: Real integer handles would allow for more verification
|
||||
* and keep all pointers within this subsystem - however this introduces
|
||||
* more (and perhaps unnecessary) overhead.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@@ -775,7 +798,7 @@ acpi_ns_convert_entry_to_handle (
|
||||
return ((acpi_handle) node);
|
||||
|
||||
|
||||
/* ---------------------------------------------------
|
||||
/* Example future implementation ---------------------
|
||||
|
||||
if (!Node)
|
||||
{
|
||||
@@ -801,12 +824,13 @@ acpi_ns_convert_entry_to_handle (
|
||||
*
|
||||
* RETURN: none
|
||||
*
|
||||
* DESCRIPTION: free memory allocated for table storage.
|
||||
* DESCRIPTION: free memory allocated for namespace and ACPI table storage.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ns_terminate (void)
|
||||
acpi_ns_terminate (
|
||||
void)
|
||||
{
|
||||
union acpi_operand_object *obj_desc;
|
||||
|
||||
@@ -940,7 +964,6 @@ acpi_ns_get_node_by_path (
|
||||
(void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
|
||||
|
||||
cleanup:
|
||||
/* Cleanup */
|
||||
if (internal_path) {
|
||||
ACPI_MEM_FREE (internal_path);
|
||||
}
|
||||
@@ -948,6 +971,74 @@ cleanup:
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_parent_node
|
||||
*
|
||||
* PARAMETERS: Node - Current table entry
|
||||
*
|
||||
* RETURN: Parent entry of the given entry
|
||||
*
|
||||
* DESCRIPTION: Obtain the parent entry for a given entry in the namespace.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_namespace_node *
|
||||
acpi_ns_get_parent_node (
|
||||
struct acpi_namespace_node *node)
|
||||
{
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
if (!node) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk to the end of this peer list. The last entry is marked with a flag
|
||||
* and the peer pointer is really a pointer back to the parent. This saves
|
||||
* putting a parent back pointer in each and every named object!
|
||||
*/
|
||||
while (!(node->flags & ANOBJ_END_OF_PEER_LIST)) {
|
||||
node = node->peer;
|
||||
}
|
||||
|
||||
return (node->peer);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_next_valid_node
|
||||
*
|
||||
* PARAMETERS: Node - Current table entry
|
||||
*
|
||||
* RETURN: Next valid Node in the linked node list. NULL if no more valid
|
||||
* nodes.
|
||||
*
|
||||
* DESCRIPTION: Find the next valid node within a name table.
|
||||
* Useful for implementing NULL-end-of-list loops.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_namespace_node *
|
||||
acpi_ns_get_next_valid_node (
|
||||
struct acpi_namespace_node *node)
|
||||
{
|
||||
|
||||
/* If we are at the end of this peer list, return NULL */
|
||||
|
||||
if (node->flags & ANOBJ_END_OF_PEER_LIST) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Otherwise just return the next peer */
|
||||
|
||||
return (node->peer);
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_find_parent_name
|
||||
@@ -961,7 +1052,7 @@ cleanup:
|
||||
* (which "should not happen").
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
|
||||
acpi_name
|
||||
acpi_ns_find_parent_name (
|
||||
struct acpi_namespace_node *child_node)
|
||||
@@ -997,73 +1088,3 @@ acpi_ns_find_parent_name (
|
||||
#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_parent_node
|
||||
*
|
||||
* PARAMETERS: Node - Current table entry
|
||||
*
|
||||
* RETURN: Parent entry of the given entry
|
||||
*
|
||||
* DESCRIPTION: Obtain the parent entry for a given entry in the namespace.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
struct acpi_namespace_node *
|
||||
acpi_ns_get_parent_node (
|
||||
struct acpi_namespace_node *node)
|
||||
{
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
if (!node) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk to the end of this peer list. The last entry is marked with a flag
|
||||
* and the peer pointer is really a pointer back to the parent. This saves
|
||||
* putting a parent back pointer in each and every named object!
|
||||
*/
|
||||
while (!(node->flags & ANOBJ_END_OF_PEER_LIST)) {
|
||||
node = node->peer;
|
||||
}
|
||||
|
||||
|
||||
return (node->peer);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_next_valid_node
|
||||
*
|
||||
* PARAMETERS: Node - Current table entry
|
||||
*
|
||||
* RETURN: Next valid Node in the linked node list. NULL if no more valid
|
||||
* nodes.
|
||||
*
|
||||
* DESCRIPTION: Find the next valid node within a name table.
|
||||
* Useful for implementing NULL-end-of-list loops.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
struct acpi_namespace_node *
|
||||
acpi_ns_get_next_valid_node (
|
||||
struct acpi_namespace_node *node)
|
||||
{
|
||||
|
||||
/* If we are at the end of this peer list, return NULL */
|
||||
|
||||
if (node->flags & ANOBJ_END_OF_PEER_LIST) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Otherwise just return the next peer */
|
||||
|
||||
return (node->peer);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -56,7 +56,7 @@
|
||||
*
|
||||
* PARAMETERS: Type - Type of node to be searched for
|
||||
* parent_node - Parent node whose children we are
|
||||
* getting
|
||||
* getting
|
||||
* child_node - Previous child that was found.
|
||||
* The NEXT child will be returned
|
||||
*
|
||||
|
@@ -58,11 +58,11 @@
|
||||
* FUNCTION: acpi_evaluate_object_typed
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* *Pathname - Object pathname (optional)
|
||||
* **external_params - List of parameters to pass to method,
|
||||
* Pathname - Object pathname (optional)
|
||||
* external_params - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
* *return_buffer - Where to put method's return value (if
|
||||
* return_buffer - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* return_type - Expected type of return object
|
||||
*
|
||||
@@ -73,6 +73,7 @@
|
||||
* be valid (non-null)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status
|
||||
acpi_evaluate_object_typed (
|
||||
@@ -307,7 +308,8 @@ acpi_evaluate_object (
|
||||
if (ACPI_SUCCESS (status)) {
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
|
||||
status = acpi_ut_initialize_buffer (return_buffer, buffer_space_needed);
|
||||
status = acpi_ut_initialize_buffer (return_buffer,
|
||||
buffer_space_needed);
|
||||
if (ACPI_FAILURE (status)) {
|
||||
/*
|
||||
* Caller's buffer is too small or a new one can't be allocated
|
||||
@@ -423,7 +425,8 @@ acpi_walk_namespace (
|
||||
return_ACPI_STATUS (status);
|
||||
}
|
||||
|
||||
status = acpi_ns_walk_namespace (type, start_object, max_depth, ACPI_NS_WALK_UNLOCK,
|
||||
status = acpi_ns_walk_namespace (type, start_object, max_depth,
|
||||
ACPI_NS_WALK_UNLOCK,
|
||||
user_function, context, return_value);
|
||||
|
||||
(void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
|
||||
@@ -525,7 +528,8 @@ acpi_ns_get_device_callback (
|
||||
}
|
||||
}
|
||||
|
||||
status = info->user_function (obj_handle, nesting_level, info->context, return_value);
|
||||
status = info->user_function (obj_handle, nesting_level, info->context,
|
||||
return_value);
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
@@ -57,9 +57,9 @@
|
||||
* FUNCTION: acpi_get_handle
|
||||
*
|
||||
* PARAMETERS: Parent - Object to search under (search scope).
|
||||
* path_name - Pointer to an asciiz string containing the
|
||||
* name
|
||||
* ret_handle - Where the return handle is placed
|
||||
* Pathname - Pointer to an asciiz string containing the
|
||||
* name
|
||||
* ret_handle - Where the return handle is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -220,7 +220,7 @@ EXPORT_SYMBOL(acpi_get_name);
|
||||
* FUNCTION: acpi_get_object_info
|
||||
*
|
||||
* PARAMETERS: Handle - Object Handle
|
||||
* Info - Where the info is returned
|
||||
* Buffer - Where the info is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
@@ -56,7 +56,7 @@
|
||||
* FUNCTION: acpi_get_type
|
||||
*
|
||||
* PARAMETERS: Handle - Handle of object whose type is desired
|
||||
* *ret_type - Where the type will be placed
|
||||
* ret_type - Where the type will be placed
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@@ -258,5 +258,5 @@ unlock_and_exit:
|
||||
(void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_get_next_object);
|
||||
|
||||
EXPORT_SYMBOL(acpi_get_next_object);
|
||||
|
Reference in New Issue
Block a user