Loading drivers/acpi/namespace/nsxfobj.c +44 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,50 @@ #define _COMPONENT ACPI_NAMESPACE ACPI_MODULE_NAME("nsxfobj") /******************************************************************************* * * FUNCTION: acpi_get_id * * PARAMETERS: Handle - Handle of object whose id is desired * ret_id - Where the id will be placed * * RETURN: Status * * DESCRIPTION: This routine returns the owner id associated with a handle * ******************************************************************************/ acpi_status acpi_get_id(acpi_handle handle, acpi_owner_id * ret_id) { struct acpi_namespace_node *node; acpi_status status; /* Parameter Validation */ if (!ret_id) { return (AE_BAD_PARAMETER); } status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { return (status); } /* Convert and validate the handle */ node = acpi_ns_map_handle_to_node(handle); if (!node) { (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); return (AE_BAD_PARAMETER); } *ret_id = node->owner_id; status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); return (status); } ACPI_EXPORT_SYMBOL(acpi_get_id) /******************************************************************************* * * FUNCTION: acpi_get_type Loading drivers/acpi/tables/tbxface.c +53 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ acpi_status acpi_load_tables(void) ACPI_EXPORT_SYMBOL(acpi_load_tables) #ifdef ACPI_FUTURE_USAGE /******************************************************************************* * * FUNCTION: acpi_load_table Loading Loading @@ -219,6 +218,59 @@ acpi_status acpi_load_table(struct acpi_table_header *table_ptr) ACPI_EXPORT_SYMBOL(acpi_load_table) /******************************************************************************* * * FUNCTION: acpi_unload_table_id * * PARAMETERS: table_type - Type of table to be unloaded * id - Owner ID of the table to be removed. * * RETURN: Status * * DESCRIPTION: This routine is used to force the unload of a table (by id) * ******************************************************************************/ acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id) { struct acpi_table_desc *table_desc; acpi_status status; ACPI_FUNCTION_TRACE(acpi_unload_table); /* Parameter validation */ if (table_type > ACPI_TABLE_ID_MAX) return_ACPI_STATUS(AE_BAD_PARAMETER); /* Find table from the requested type list */ table_desc = acpi_gbl_table_lists[table_type].next; while (table_desc && table_desc->owner_id != id) table_desc = table_desc->next; if (!table_desc) return_ACPI_STATUS(AE_NOT_EXIST); /* * Delete all namespace objects owned by this table. Note that these * objects can appear anywhere in the namespace by virtue of the AML * "Scope" operator. Thus, we need to track ownership by an ID, not * simply a position within the hierarchy */ acpi_ns_delete_namespace_by_owner(table_desc->owner_id); status = acpi_ut_acquire_mutex(ACPI_MTX_TABLES); if (ACPI_FAILURE(status)) return_ACPI_STATUS(status); (void)acpi_tb_uninstall_table(table_desc); (void)acpi_ut_release_mutex(ACPI_MTX_TABLES); return_ACPI_STATUS(AE_OK); } ACPI_EXPORT_SYMBOL(acpi_unload_table_id) #ifdef ACPI_FUTURE_USAGE /******************************************************************************* * * FUNCTION: acpi_unload_table Loading include/acpi/acpixf.h +5 −2 Original line number Diff line number Diff line Loading @@ -97,11 +97,12 @@ acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address); acpi_status acpi_load_tables(void); #ifdef ACPI_FUTURE_USAGE acpi_status acpi_load_table(struct acpi_table_header *table_ptr); acpi_status acpi_unload_table(acpi_table_type table_type); acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id); #ifdef ACPI_FUTURE_USAGE acpi_status acpi_unload_table(acpi_table_type table_type); acpi_status acpi_get_table_header(acpi_table_type table_type, u32 instance, struct acpi_table_header *out_table_header); Loading Loading @@ -180,6 +181,8 @@ acpi_get_next_object(acpi_object_type type, acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type); acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type); acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); /* Loading Loading
drivers/acpi/namespace/nsxfobj.c +44 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,50 @@ #define _COMPONENT ACPI_NAMESPACE ACPI_MODULE_NAME("nsxfobj") /******************************************************************************* * * FUNCTION: acpi_get_id * * PARAMETERS: Handle - Handle of object whose id is desired * ret_id - Where the id will be placed * * RETURN: Status * * DESCRIPTION: This routine returns the owner id associated with a handle * ******************************************************************************/ acpi_status acpi_get_id(acpi_handle handle, acpi_owner_id * ret_id) { struct acpi_namespace_node *node; acpi_status status; /* Parameter Validation */ if (!ret_id) { return (AE_BAD_PARAMETER); } status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { return (status); } /* Convert and validate the handle */ node = acpi_ns_map_handle_to_node(handle); if (!node) { (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); return (AE_BAD_PARAMETER); } *ret_id = node->owner_id; status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); return (status); } ACPI_EXPORT_SYMBOL(acpi_get_id) /******************************************************************************* * * FUNCTION: acpi_get_type Loading
drivers/acpi/tables/tbxface.c +53 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ acpi_status acpi_load_tables(void) ACPI_EXPORT_SYMBOL(acpi_load_tables) #ifdef ACPI_FUTURE_USAGE /******************************************************************************* * * FUNCTION: acpi_load_table Loading Loading @@ -219,6 +218,59 @@ acpi_status acpi_load_table(struct acpi_table_header *table_ptr) ACPI_EXPORT_SYMBOL(acpi_load_table) /******************************************************************************* * * FUNCTION: acpi_unload_table_id * * PARAMETERS: table_type - Type of table to be unloaded * id - Owner ID of the table to be removed. * * RETURN: Status * * DESCRIPTION: This routine is used to force the unload of a table (by id) * ******************************************************************************/ acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id) { struct acpi_table_desc *table_desc; acpi_status status; ACPI_FUNCTION_TRACE(acpi_unload_table); /* Parameter validation */ if (table_type > ACPI_TABLE_ID_MAX) return_ACPI_STATUS(AE_BAD_PARAMETER); /* Find table from the requested type list */ table_desc = acpi_gbl_table_lists[table_type].next; while (table_desc && table_desc->owner_id != id) table_desc = table_desc->next; if (!table_desc) return_ACPI_STATUS(AE_NOT_EXIST); /* * Delete all namespace objects owned by this table. Note that these * objects can appear anywhere in the namespace by virtue of the AML * "Scope" operator. Thus, we need to track ownership by an ID, not * simply a position within the hierarchy */ acpi_ns_delete_namespace_by_owner(table_desc->owner_id); status = acpi_ut_acquire_mutex(ACPI_MTX_TABLES); if (ACPI_FAILURE(status)) return_ACPI_STATUS(status); (void)acpi_tb_uninstall_table(table_desc); (void)acpi_ut_release_mutex(ACPI_MTX_TABLES); return_ACPI_STATUS(AE_OK); } ACPI_EXPORT_SYMBOL(acpi_unload_table_id) #ifdef ACPI_FUTURE_USAGE /******************************************************************************* * * FUNCTION: acpi_unload_table Loading
include/acpi/acpixf.h +5 −2 Original line number Diff line number Diff line Loading @@ -97,11 +97,12 @@ acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address); acpi_status acpi_load_tables(void); #ifdef ACPI_FUTURE_USAGE acpi_status acpi_load_table(struct acpi_table_header *table_ptr); acpi_status acpi_unload_table(acpi_table_type table_type); acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id); #ifdef ACPI_FUTURE_USAGE acpi_status acpi_unload_table(acpi_table_type table_type); acpi_status acpi_get_table_header(acpi_table_type table_type, u32 instance, struct acpi_table_header *out_table_header); Loading Loading @@ -180,6 +181,8 @@ acpi_get_next_object(acpi_object_type type, acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type); acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type); acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); /* Loading