162306a36Sopenharmony_ci/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 262306a36Sopenharmony_ci/****************************************************************************** 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Name: acnamesp.h - Namespace subcomponent prototypes and defines 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2000 - 2023, Intel Corp. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci *****************************************************************************/ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __ACNAMESP_H__ 1162306a36Sopenharmony_ci#define __ACNAMESP_H__ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* To search the entire name space, pass this as search_base */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#define ACPI_NS_ALL ((acpi_handle)0) 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* 1862306a36Sopenharmony_ci * Elements of acpi_ns_properties are bit significant 1962306a36Sopenharmony_ci * and should be one-to-one with values of acpi_object_type 2062306a36Sopenharmony_ci */ 2162306a36Sopenharmony_ci#define ACPI_NS_NORMAL 0 2262306a36Sopenharmony_ci#define ACPI_NS_NEWSCOPE 1 /* a definition of this type opens a name scope */ 2362306a36Sopenharmony_ci#define ACPI_NS_LOCAL 2 /* suppress search of enclosing scopes */ 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci/* Flags for acpi_ns_lookup, acpi_ns_search_and_enter */ 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#define ACPI_NS_NO_UPSEARCH 0 2862306a36Sopenharmony_ci#define ACPI_NS_SEARCH_PARENT 0x0001 2962306a36Sopenharmony_ci#define ACPI_NS_DONT_OPEN_SCOPE 0x0002 3062306a36Sopenharmony_ci#define ACPI_NS_NO_PEER_SEARCH 0x0004 3162306a36Sopenharmony_ci#define ACPI_NS_ERROR_IF_FOUND 0x0008 3262306a36Sopenharmony_ci#define ACPI_NS_PREFIX_IS_SCOPE 0x0010 3362306a36Sopenharmony_ci#define ACPI_NS_EXTERNAL 0x0020 3462306a36Sopenharmony_ci#define ACPI_NS_TEMPORARY 0x0040 3562306a36Sopenharmony_ci#define ACPI_NS_OVERRIDE_IF_FOUND 0x0080 3662306a36Sopenharmony_ci#define ACPI_NS_EARLY_INIT 0x0100 3762306a36Sopenharmony_ci#define ACPI_NS_PREFIX_MUST_EXIST 0x0200 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/* Flags for acpi_ns_walk_namespace */ 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#define ACPI_NS_WALK_NO_UNLOCK 0 4262306a36Sopenharmony_ci#define ACPI_NS_WALK_UNLOCK 0x01 4362306a36Sopenharmony_ci#define ACPI_NS_WALK_TEMP_NODES 0x02 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* Object is not a package element */ 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#define ACPI_NOT_PACKAGE_ELEMENT ACPI_UINT32_MAX 4862306a36Sopenharmony_ci#define ACPI_ALL_PACKAGE_ELEMENTS (ACPI_UINT32_MAX-1) 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/* Always emit warning message, not dependent on node flags */ 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci#define ACPI_WARN_ALWAYS 0 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci/* 5562306a36Sopenharmony_ci * nsinit - Namespace initialization 5662306a36Sopenharmony_ci */ 5762306a36Sopenharmony_ciacpi_status acpi_ns_initialize_objects(void); 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciacpi_status acpi_ns_initialize_devices(u32 flags); 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciacpi_status 6262306a36Sopenharmony_ciacpi_ns_init_one_package(acpi_handle obj_handle, 6362306a36Sopenharmony_ci u32 level, void *context, void **return_value); 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci/* 6662306a36Sopenharmony_ci * nsload - Namespace loading 6762306a36Sopenharmony_ci */ 6862306a36Sopenharmony_ciacpi_status acpi_ns_load_namespace(void); 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciacpi_status 7162306a36Sopenharmony_ciacpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node); 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci/* 7462306a36Sopenharmony_ci * nswalk - walk the namespace 7562306a36Sopenharmony_ci */ 7662306a36Sopenharmony_ciacpi_status 7762306a36Sopenharmony_ciacpi_ns_walk_namespace(acpi_object_type type, 7862306a36Sopenharmony_ci acpi_handle start_object, 7962306a36Sopenharmony_ci u32 max_depth, 8062306a36Sopenharmony_ci u32 flags, 8162306a36Sopenharmony_ci acpi_walk_callback descending_callback, 8262306a36Sopenharmony_ci acpi_walk_callback ascending_callback, 8362306a36Sopenharmony_ci void *context, void **return_value); 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_cistruct acpi_namespace_node *acpi_ns_get_next_node(struct acpi_namespace_node 8662306a36Sopenharmony_ci *parent, 8762306a36Sopenharmony_ci struct acpi_namespace_node 8862306a36Sopenharmony_ci *child); 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_cistruct acpi_namespace_node *acpi_ns_get_next_node_typed(acpi_object_type type, 9162306a36Sopenharmony_ci struct 9262306a36Sopenharmony_ci acpi_namespace_node 9362306a36Sopenharmony_ci *parent, 9462306a36Sopenharmony_ci struct 9562306a36Sopenharmony_ci acpi_namespace_node 9662306a36Sopenharmony_ci *child); 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci/* 9962306a36Sopenharmony_ci * nsparse - table parsing 10062306a36Sopenharmony_ci */ 10162306a36Sopenharmony_ciacpi_status 10262306a36Sopenharmony_ciacpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node); 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciacpi_status 10562306a36Sopenharmony_ciacpi_ns_execute_table(u32 table_index, struct acpi_namespace_node *start_node); 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ciacpi_status 10862306a36Sopenharmony_ciacpi_ns_one_complete_parse(u32 pass_number, 10962306a36Sopenharmony_ci u32 table_index, 11062306a36Sopenharmony_ci struct acpi_namespace_node *start_node); 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci/* 11362306a36Sopenharmony_ci * nsaccess - Top-level namespace access 11462306a36Sopenharmony_ci */ 11562306a36Sopenharmony_ciacpi_status acpi_ns_root_initialize(void); 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ciacpi_status 11862306a36Sopenharmony_ciacpi_ns_lookup(union acpi_generic_state *scope_info, 11962306a36Sopenharmony_ci char *name, 12062306a36Sopenharmony_ci acpi_object_type type, 12162306a36Sopenharmony_ci acpi_interpreter_mode interpreter_mode, 12262306a36Sopenharmony_ci u32 flags, 12362306a36Sopenharmony_ci struct acpi_walk_state *walk_state, 12462306a36Sopenharmony_ci struct acpi_namespace_node **ret_node); 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci/* 12762306a36Sopenharmony_ci * nsalloc - Named object allocation/deallocation 12862306a36Sopenharmony_ci */ 12962306a36Sopenharmony_cistruct acpi_namespace_node *acpi_ns_create_node(u32 name); 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_civoid acpi_ns_delete_node(struct acpi_namespace_node *node); 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_civoid acpi_ns_remove_node(struct acpi_namespace_node *node); 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_civoid 13662306a36Sopenharmony_ciacpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_handle); 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_civoid acpi_ns_delete_namespace_by_owner(acpi_owner_id owner_id); 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_civoid acpi_ns_detach_object(struct acpi_namespace_node *node); 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_civoid acpi_ns_delete_children(struct acpi_namespace_node *parent); 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciint acpi_ns_compare_names(char *name1, char *name2); 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci/* 14762306a36Sopenharmony_ci * nsconvert - Dynamic object conversion routines 14862306a36Sopenharmony_ci */ 14962306a36Sopenharmony_ciacpi_status 15062306a36Sopenharmony_ciacpi_ns_convert_to_integer(union acpi_operand_object *original_object, 15162306a36Sopenharmony_ci union acpi_operand_object **return_object); 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ciacpi_status 15462306a36Sopenharmony_ciacpi_ns_convert_to_string(union acpi_operand_object *original_object, 15562306a36Sopenharmony_ci union acpi_operand_object **return_object); 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ciacpi_status 15862306a36Sopenharmony_ciacpi_ns_convert_to_buffer(union acpi_operand_object *original_object, 15962306a36Sopenharmony_ci union acpi_operand_object **return_object); 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ciacpi_status 16262306a36Sopenharmony_ciacpi_ns_convert_to_unicode(struct acpi_namespace_node *scope, 16362306a36Sopenharmony_ci union acpi_operand_object *original_object, 16462306a36Sopenharmony_ci union acpi_operand_object **return_object); 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciacpi_status 16762306a36Sopenharmony_ciacpi_ns_convert_to_resource(struct acpi_namespace_node *scope, 16862306a36Sopenharmony_ci union acpi_operand_object *original_object, 16962306a36Sopenharmony_ci union acpi_operand_object **return_object); 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ciacpi_status 17262306a36Sopenharmony_ciacpi_ns_convert_to_reference(struct acpi_namespace_node *scope, 17362306a36Sopenharmony_ci union acpi_operand_object *original_object, 17462306a36Sopenharmony_ci union acpi_operand_object **return_object); 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci/* 17762306a36Sopenharmony_ci * nsdump - Namespace dump/print utilities 17862306a36Sopenharmony_ci */ 17962306a36Sopenharmony_civoid acpi_ns_dump_tables(acpi_handle search_base, u32 max_depth); 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_civoid acpi_ns_dump_entry(acpi_handle handle, u32 debug_level); 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_civoid 18462306a36Sopenharmony_ciacpi_ns_dump_pathname(acpi_handle handle, 18562306a36Sopenharmony_ci const char *msg, u32 level, u32 component); 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_civoid acpi_ns_print_pathname(u32 num_segments, const char *pathname); 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ciacpi_status 19062306a36Sopenharmony_ciacpi_ns_dump_one_object(acpi_handle obj_handle, 19162306a36Sopenharmony_ci u32 level, void *context, void **return_value); 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_civoid 19462306a36Sopenharmony_ciacpi_ns_dump_objects(acpi_object_type type, 19562306a36Sopenharmony_ci u8 display_type, 19662306a36Sopenharmony_ci u32 max_depth, 19762306a36Sopenharmony_ci acpi_owner_id owner_id, acpi_handle start_handle); 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_civoid 20062306a36Sopenharmony_ciacpi_ns_dump_object_paths(acpi_object_type type, 20162306a36Sopenharmony_ci u8 display_type, 20262306a36Sopenharmony_ci u32 max_depth, 20362306a36Sopenharmony_ci acpi_owner_id owner_id, acpi_handle start_handle); 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci/* 20662306a36Sopenharmony_ci * nseval - Namespace evaluation functions 20762306a36Sopenharmony_ci */ 20862306a36Sopenharmony_ciacpi_status acpi_ns_evaluate(struct acpi_evaluate_info *info); 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci/* 21162306a36Sopenharmony_ci * nsarguments - Argument count/type checking for predefined/reserved names 21262306a36Sopenharmony_ci */ 21362306a36Sopenharmony_civoid 21462306a36Sopenharmony_ciacpi_ns_check_argument_count(char *pathname, 21562306a36Sopenharmony_ci struct acpi_namespace_node *node, 21662306a36Sopenharmony_ci u32 user_param_count, 21762306a36Sopenharmony_ci const union acpi_predefined_info *info); 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_civoid 22062306a36Sopenharmony_ciacpi_ns_check_acpi_compliance(char *pathname, 22162306a36Sopenharmony_ci struct acpi_namespace_node *node, 22262306a36Sopenharmony_ci const union acpi_predefined_info *predefined); 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_civoid acpi_ns_check_argument_types(struct acpi_evaluate_info *info); 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci/* 22762306a36Sopenharmony_ci * nspredef - Return value checking for predefined/reserved names 22862306a36Sopenharmony_ci */ 22962306a36Sopenharmony_ciacpi_status 23062306a36Sopenharmony_ciacpi_ns_check_return_value(struct acpi_namespace_node *node, 23162306a36Sopenharmony_ci struct acpi_evaluate_info *info, 23262306a36Sopenharmony_ci u32 user_param_count, 23362306a36Sopenharmony_ci acpi_status return_status, 23462306a36Sopenharmony_ci union acpi_operand_object **return_object); 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciacpi_status 23762306a36Sopenharmony_ciacpi_ns_check_object_type(struct acpi_evaluate_info *info, 23862306a36Sopenharmony_ci union acpi_operand_object **return_object_ptr, 23962306a36Sopenharmony_ci u32 expected_btypes, u32 package_index); 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci/* 24262306a36Sopenharmony_ci * nsprepkg - Validation of predefined name packages 24362306a36Sopenharmony_ci */ 24462306a36Sopenharmony_ciacpi_status 24562306a36Sopenharmony_ciacpi_ns_check_package(struct acpi_evaluate_info *info, 24662306a36Sopenharmony_ci union acpi_operand_object **return_object_ptr); 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci/* 24962306a36Sopenharmony_ci * nsnames - Name and Scope manipulation 25062306a36Sopenharmony_ci */ 25162306a36Sopenharmony_ciu32 acpi_ns_opens_scope(acpi_object_type type); 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_cichar *acpi_ns_get_external_pathname(struct acpi_namespace_node *node); 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ciu32 25662306a36Sopenharmony_ciacpi_ns_build_normalized_path(struct acpi_namespace_node *node, 25762306a36Sopenharmony_ci char *full_path, u32 path_size, u8 no_trailing); 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_civoid acpi_ns_normalize_pathname(char *original_path); 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_cichar *acpi_ns_get_normalized_pathname(struct acpi_namespace_node *node, 26262306a36Sopenharmony_ci u8 no_trailing); 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_cichar *acpi_ns_build_prefixed_pathname(union acpi_generic_state *prefix_scope, 26562306a36Sopenharmony_ci const char *internal_path); 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_cichar *acpi_ns_name_of_current_scope(struct acpi_walk_state *walk_state); 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ciacpi_status 27062306a36Sopenharmony_ciacpi_ns_handle_to_name(acpi_handle target_handle, struct acpi_buffer *buffer); 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ciacpi_status 27362306a36Sopenharmony_ciacpi_ns_handle_to_pathname(acpi_handle target_handle, 27462306a36Sopenharmony_ci struct acpi_buffer *buffer, u8 no_trailing); 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ciu8 27762306a36Sopenharmony_ciacpi_ns_pattern_match(struct acpi_namespace_node *obj_node, char *search_for); 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciacpi_status 28062306a36Sopenharmony_ciacpi_ns_get_node_unlocked(struct acpi_namespace_node *prefix_node, 28162306a36Sopenharmony_ci const char *external_pathname, 28262306a36Sopenharmony_ci u32 flags, struct acpi_namespace_node **out_node); 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ciacpi_status 28562306a36Sopenharmony_ciacpi_ns_get_node(struct acpi_namespace_node *prefix_node, 28662306a36Sopenharmony_ci const char *external_pathname, 28762306a36Sopenharmony_ci u32 flags, struct acpi_namespace_node **out_node); 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ciacpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node); 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci/* 29262306a36Sopenharmony_ci * nsobject - Object management for namespace nodes 29362306a36Sopenharmony_ci */ 29462306a36Sopenharmony_ciacpi_status 29562306a36Sopenharmony_ciacpi_ns_attach_object(struct acpi_namespace_node *node, 29662306a36Sopenharmony_ci union acpi_operand_object *object, acpi_object_type type); 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ciunion acpi_operand_object *acpi_ns_get_attached_object(struct 29962306a36Sopenharmony_ci acpi_namespace_node 30062306a36Sopenharmony_ci *node); 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ciunion acpi_operand_object *acpi_ns_get_secondary_object(union 30362306a36Sopenharmony_ci acpi_operand_object 30462306a36Sopenharmony_ci *obj_desc); 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ciacpi_status 30762306a36Sopenharmony_ciacpi_ns_attach_data(struct acpi_namespace_node *node, 30862306a36Sopenharmony_ci acpi_object_handler handler, void *data); 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ciacpi_status 31162306a36Sopenharmony_ciacpi_ns_detach_data(struct acpi_namespace_node *node, 31262306a36Sopenharmony_ci acpi_object_handler handler); 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ciacpi_status 31562306a36Sopenharmony_ciacpi_ns_get_attached_data(struct acpi_namespace_node *node, 31662306a36Sopenharmony_ci acpi_object_handler handler, void **data); 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ci/* 31962306a36Sopenharmony_ci * nsrepair - General return object repair for all 32062306a36Sopenharmony_ci * predefined methods/objects 32162306a36Sopenharmony_ci */ 32262306a36Sopenharmony_ciacpi_status 32362306a36Sopenharmony_ciacpi_ns_simple_repair(struct acpi_evaluate_info *info, 32462306a36Sopenharmony_ci u32 expected_btypes, 32562306a36Sopenharmony_ci u32 package_index, 32662306a36Sopenharmony_ci union acpi_operand_object **return_object_ptr); 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ciacpi_status 32962306a36Sopenharmony_ciacpi_ns_wrap_with_package(struct acpi_evaluate_info *info, 33062306a36Sopenharmony_ci union acpi_operand_object *original_object, 33162306a36Sopenharmony_ci union acpi_operand_object **obj_desc_ptr); 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ciacpi_status 33462306a36Sopenharmony_ciacpi_ns_repair_null_element(struct acpi_evaluate_info *info, 33562306a36Sopenharmony_ci u32 expected_btypes, 33662306a36Sopenharmony_ci u32 package_index, 33762306a36Sopenharmony_ci union acpi_operand_object **return_object_ptr); 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_civoid 34062306a36Sopenharmony_ciacpi_ns_remove_null_elements(struct acpi_evaluate_info *info, 34162306a36Sopenharmony_ci u8 package_type, 34262306a36Sopenharmony_ci union acpi_operand_object *obj_desc); 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci/* 34562306a36Sopenharmony_ci * nsrepair2 - Return object repair for specific 34662306a36Sopenharmony_ci * predefined methods/objects 34762306a36Sopenharmony_ci */ 34862306a36Sopenharmony_ciacpi_status 34962306a36Sopenharmony_ciacpi_ns_complex_repairs(struct acpi_evaluate_info *info, 35062306a36Sopenharmony_ci struct acpi_namespace_node *node, 35162306a36Sopenharmony_ci acpi_status validate_status, 35262306a36Sopenharmony_ci union acpi_operand_object **return_object_ptr); 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci/* 35562306a36Sopenharmony_ci * nssearch - Namespace searching and entry 35662306a36Sopenharmony_ci */ 35762306a36Sopenharmony_ciacpi_status 35862306a36Sopenharmony_ciacpi_ns_search_and_enter(u32 entry_name, 35962306a36Sopenharmony_ci struct acpi_walk_state *walk_state, 36062306a36Sopenharmony_ci struct acpi_namespace_node *node, 36162306a36Sopenharmony_ci acpi_interpreter_mode interpreter_mode, 36262306a36Sopenharmony_ci acpi_object_type type, 36362306a36Sopenharmony_ci u32 flags, struct acpi_namespace_node **ret_node); 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ciacpi_status 36662306a36Sopenharmony_ciacpi_ns_search_one_scope(u32 entry_name, 36762306a36Sopenharmony_ci struct acpi_namespace_node *node, 36862306a36Sopenharmony_ci acpi_object_type type, 36962306a36Sopenharmony_ci struct acpi_namespace_node **ret_node); 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_civoid 37262306a36Sopenharmony_ciacpi_ns_install_node(struct acpi_walk_state *walk_state, 37362306a36Sopenharmony_ci struct acpi_namespace_node *parent_node, 37462306a36Sopenharmony_ci struct acpi_namespace_node *node, acpi_object_type type); 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ci/* 37762306a36Sopenharmony_ci * nsutils - Utility functions 37862306a36Sopenharmony_ci */ 37962306a36Sopenharmony_ciacpi_object_type acpi_ns_get_type(struct acpi_namespace_node *node); 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ciu32 acpi_ns_local(acpi_object_type type); 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_civoid 38462306a36Sopenharmony_ciacpi_ns_print_node_pathname(struct acpi_namespace_node *node, const char *msg); 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ciacpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info); 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_civoid acpi_ns_get_internal_name_length(struct acpi_namestring_info *info); 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ciacpi_status 39162306a36Sopenharmony_ciacpi_ns_internalize_name(const char *dotted_name, char **converted_name); 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ciacpi_status 39462306a36Sopenharmony_ciacpi_ns_externalize_name(u32 internal_name_length, 39562306a36Sopenharmony_ci const char *internal_name, 39662306a36Sopenharmony_ci u32 * converted_name_length, char **converted_name); 39762306a36Sopenharmony_ci 39862306a36Sopenharmony_cistruct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle); 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_civoid acpi_ns_terminate(void); 40162306a36Sopenharmony_ci 40262306a36Sopenharmony_ci#endif /* __ACNAMESP_H__ */ 403