162306a36Sopenharmony_ci/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 262306a36Sopenharmony_ci/****************************************************************************** 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2000 - 2023, Intel Corp. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci *****************************************************************************/ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef _ACUTILS_H 1162306a36Sopenharmony_ci#define _ACUTILS_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciextern const u8 acpi_gbl_resource_aml_sizes[]; 1462306a36Sopenharmony_ciextern const u8 acpi_gbl_resource_aml_serial_bus_sizes[]; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/* Strings used by the disassembler and debugger resource dump routines */ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciextern const char *acpi_gbl_bm_decode[]; 2162306a36Sopenharmony_ciextern const char *acpi_gbl_config_decode[]; 2262306a36Sopenharmony_ciextern const char *acpi_gbl_consume_decode[]; 2362306a36Sopenharmony_ciextern const char *acpi_gbl_dec_decode[]; 2462306a36Sopenharmony_ciextern const char *acpi_gbl_he_decode[]; 2562306a36Sopenharmony_ciextern const char *acpi_gbl_io_decode[]; 2662306a36Sopenharmony_ciextern const char *acpi_gbl_ll_decode[]; 2762306a36Sopenharmony_ciextern const char *acpi_gbl_max_decode[]; 2862306a36Sopenharmony_ciextern const char *acpi_gbl_mem_decode[]; 2962306a36Sopenharmony_ciextern const char *acpi_gbl_min_decode[]; 3062306a36Sopenharmony_ciextern const char *acpi_gbl_mtp_decode[]; 3162306a36Sopenharmony_ciextern const char *acpi_gbl_phy_decode[]; 3262306a36Sopenharmony_ciextern const char *acpi_gbl_rng_decode[]; 3362306a36Sopenharmony_ciextern const char *acpi_gbl_rw_decode[]; 3462306a36Sopenharmony_ciextern const char *acpi_gbl_shr_decode[]; 3562306a36Sopenharmony_ciextern const char *acpi_gbl_siz_decode[]; 3662306a36Sopenharmony_ciextern const char *acpi_gbl_trs_decode[]; 3762306a36Sopenharmony_ciextern const char *acpi_gbl_ttp_decode[]; 3862306a36Sopenharmony_ciextern const char *acpi_gbl_typ_decode[]; 3962306a36Sopenharmony_ciextern const char *acpi_gbl_ppc_decode[]; 4062306a36Sopenharmony_ciextern const char *acpi_gbl_ior_decode[]; 4162306a36Sopenharmony_ciextern const char *acpi_gbl_dts_decode[]; 4262306a36Sopenharmony_ciextern const char *acpi_gbl_ct_decode[]; 4362306a36Sopenharmony_ciextern const char *acpi_gbl_sbt_decode[]; 4462306a36Sopenharmony_ciextern const char *acpi_gbl_am_decode[]; 4562306a36Sopenharmony_ciextern const char *acpi_gbl_sm_decode[]; 4662306a36Sopenharmony_ciextern const char *acpi_gbl_wm_decode[]; 4762306a36Sopenharmony_ciextern const char *acpi_gbl_cph_decode[]; 4862306a36Sopenharmony_ciextern const char *acpi_gbl_cpo_decode[]; 4962306a36Sopenharmony_ciextern const char *acpi_gbl_dp_decode[]; 5062306a36Sopenharmony_ciextern const char *acpi_gbl_ed_decode[]; 5162306a36Sopenharmony_ciextern const char *acpi_gbl_bpb_decode[]; 5262306a36Sopenharmony_ciextern const char *acpi_gbl_sb_decode[]; 5362306a36Sopenharmony_ciextern const char *acpi_gbl_fc_decode[]; 5462306a36Sopenharmony_ciextern const char *acpi_gbl_pt_decode[]; 5562306a36Sopenharmony_ciextern const char *acpi_gbl_ptyp_decode[]; 5662306a36Sopenharmony_ciextern const char *acpi_gbl_clock_input_mode[]; 5762306a36Sopenharmony_ciextern const char *acpi_gbl_clock_input_scale[]; 5862306a36Sopenharmony_ci#endif 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci/* 6162306a36Sopenharmony_ci * For the iASL compiler case, the output is redirected to stderr so that 6262306a36Sopenharmony_ci * any of the various ACPI errors and warnings do not appear in the output 6362306a36Sopenharmony_ci * files, for either the compiler or disassembler portions of the tool. 6462306a36Sopenharmony_ci */ 6562306a36Sopenharmony_ci#ifdef ACPI_ASL_COMPILER 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci#include <stdio.h> 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci#define ACPI_MSG_REDIRECT_BEGIN \ 7062306a36Sopenharmony_ci FILE *output_file = acpi_gbl_output_file; \ 7162306a36Sopenharmony_ci acpi_os_redirect_output (stderr); 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci#define ACPI_MSG_REDIRECT_END \ 7462306a36Sopenharmony_ci acpi_os_redirect_output (output_file); 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci#else 7762306a36Sopenharmony_ci/* 7862306a36Sopenharmony_ci * non-iASL case - no redirection, nothing to do 7962306a36Sopenharmony_ci */ 8062306a36Sopenharmony_ci#define ACPI_MSG_REDIRECT_BEGIN 8162306a36Sopenharmony_ci#define ACPI_MSG_REDIRECT_END 8262306a36Sopenharmony_ci#endif 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci/* 8562306a36Sopenharmony_ci * Common error message prefixes 8662306a36Sopenharmony_ci */ 8762306a36Sopenharmony_ci#ifndef ACPI_MSG_ERROR 8862306a36Sopenharmony_ci#define ACPI_MSG_ERROR "ACPI Error: " 8962306a36Sopenharmony_ci#endif 9062306a36Sopenharmony_ci#ifndef ACPI_MSG_WARNING 9162306a36Sopenharmony_ci#define ACPI_MSG_WARNING "ACPI Warning: " 9262306a36Sopenharmony_ci#endif 9362306a36Sopenharmony_ci#ifndef ACPI_MSG_INFO 9462306a36Sopenharmony_ci#define ACPI_MSG_INFO "ACPI: " 9562306a36Sopenharmony_ci#endif 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci#ifndef ACPI_MSG_BIOS_ERROR 9862306a36Sopenharmony_ci#define ACPI_MSG_BIOS_ERROR "Firmware Error (ACPI): " 9962306a36Sopenharmony_ci#endif 10062306a36Sopenharmony_ci#ifndef ACPI_MSG_BIOS_WARNING 10162306a36Sopenharmony_ci#define ACPI_MSG_BIOS_WARNING "Firmware Warning (ACPI): " 10262306a36Sopenharmony_ci#endif 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci/* 10562306a36Sopenharmony_ci * Common message suffix 10662306a36Sopenharmony_ci */ 10762306a36Sopenharmony_ci#define ACPI_MSG_SUFFIX \ 10862306a36Sopenharmony_ci acpi_os_printf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, module_name, line_number) 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci/* Flags to indicate implicit or explicit string-to-integer conversion */ 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci#define ACPI_IMPLICIT_CONVERSION TRUE 11362306a36Sopenharmony_ci#define ACPI_NO_IMPLICIT_CONVERSION FALSE 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci/* Types for Resource descriptor entries */ 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci#define ACPI_INVALID_RESOURCE 0 11862306a36Sopenharmony_ci#define ACPI_FIXED_LENGTH 1 11962306a36Sopenharmony_ci#define ACPI_VARIABLE_LENGTH 2 12062306a36Sopenharmony_ci#define ACPI_SMALL_VARIABLE_LENGTH 3 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_citypedef 12362306a36Sopenharmony_ciacpi_status (*acpi_walk_aml_callback) (u8 *aml, 12462306a36Sopenharmony_ci u32 length, 12562306a36Sopenharmony_ci u32 offset, 12662306a36Sopenharmony_ci u8 resource_index, void **context); 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_citypedef 12962306a36Sopenharmony_ciacpi_status (*acpi_pkg_callback) (u8 object_type, 13062306a36Sopenharmony_ci union acpi_operand_object * source_object, 13162306a36Sopenharmony_ci union acpi_generic_state * state, 13262306a36Sopenharmony_ci void *context); 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_cistruct acpi_pkg_info { 13562306a36Sopenharmony_ci u8 *free_space; 13662306a36Sopenharmony_ci acpi_size length; 13762306a36Sopenharmony_ci u32 object_space; 13862306a36Sopenharmony_ci u32 num_packages; 13962306a36Sopenharmony_ci}; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci/* Object reference counts */ 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci#define REF_INCREMENT (u16) 0 14462306a36Sopenharmony_ci#define REF_DECREMENT (u16) 1 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci/* acpi_ut_dump_buffer */ 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci#define DB_BYTE_DISPLAY 0x01 14962306a36Sopenharmony_ci#define DB_WORD_DISPLAY 0x02 15062306a36Sopenharmony_ci#define DB_DWORD_DISPLAY 0x04 15162306a36Sopenharmony_ci#define DB_QWORD_DISPLAY 0x08 15262306a36Sopenharmony_ci#define DB_DISPLAY_DATA_ONLY 0x10 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci/* 15562306a36Sopenharmony_ci * utascii - ASCII utilities 15662306a36Sopenharmony_ci */ 15762306a36Sopenharmony_ciu8 acpi_ut_valid_nameseg(char *signature); 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ciu8 acpi_ut_valid_name_char(char character, u32 position); 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_civoid acpi_ut_check_and_repair_ascii(u8 *name, char *repaired_name, u32 count); 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci/* 16462306a36Sopenharmony_ci * utcksum - Checksum utilities 16562306a36Sopenharmony_ci */ 16662306a36Sopenharmony_ciu8 acpi_ut_generate_checksum(void *table, u32 length, u8 original_checksum); 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciu8 acpi_ut_checksum(u8 *buffer, u32 length); 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciacpi_status 17162306a36Sopenharmony_ciacpi_ut_verify_cdat_checksum(struct acpi_table_cdat *cdat_table, u32 length); 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ciacpi_status 17462306a36Sopenharmony_ciacpi_ut_verify_checksum(struct acpi_table_header *table, u32 length); 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci/* 17762306a36Sopenharmony_ci * utnonansi - Non-ANSI C library functions 17862306a36Sopenharmony_ci */ 17962306a36Sopenharmony_civoid acpi_ut_strupr(char *src_string); 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_civoid acpi_ut_strlwr(char *src_string); 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ciint acpi_ut_stricmp(char *string1, char *string2); 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci/* 18662306a36Sopenharmony_ci * utstrsuppt - string-to-integer conversion support functions 18762306a36Sopenharmony_ci */ 18862306a36Sopenharmony_ciacpi_status acpi_ut_convert_octal_string(char *string, u64 *return_value); 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ciacpi_status acpi_ut_convert_decimal_string(char *string, u64 *return_value_ptr); 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciacpi_status acpi_ut_convert_hex_string(char *string, u64 *return_value_ptr); 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_cichar acpi_ut_remove_whitespace(char **string); 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_cichar acpi_ut_remove_leading_zeros(char **string); 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ciu8 acpi_ut_detect_hex_prefix(char **string); 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_civoid acpi_ut_remove_hex_prefix(char **string); 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciu8 acpi_ut_detect_octal_prefix(char **string); 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci/* 20562306a36Sopenharmony_ci * utstrtoul64 - string-to-integer conversion functions 20662306a36Sopenharmony_ci */ 20762306a36Sopenharmony_ciacpi_status acpi_ut_strtoul64(char *string, u64 *ret_integer); 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ciu64 acpi_ut_explicit_strtoul64(char *string); 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ciu64 acpi_ut_implicit_strtoul64(char *string); 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci/* 21462306a36Sopenharmony_ci * utglobal - Global data structures and procedures 21562306a36Sopenharmony_ci */ 21662306a36Sopenharmony_ciacpi_status acpi_ut_init_globals(void); 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciconst char *acpi_ut_get_mutex_name(u32 mutex_id); 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ciconst char *acpi_ut_get_notify_name(u32 notify_value, acpi_object_type type); 22362306a36Sopenharmony_ci#endif 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ciconst char *acpi_ut_get_type_name(acpi_object_type type); 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ciconst char *acpi_ut_get_node_name(void *object); 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ciconst char *acpi_ut_get_descriptor_name(void *object); 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ciconst char *acpi_ut_get_reference_name(union acpi_operand_object *object); 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ciconst char *acpi_ut_get_object_type_name(union acpi_operand_object *obj_desc); 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ciconst char *acpi_ut_get_region_name(u8 space_id); 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ciconst char *acpi_ut_get_event_name(u32 event_id); 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ciconst char *acpi_ut_get_argument_type_name(u32 arg_type); 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_cichar acpi_ut_hex_to_ascii_char(u64 integer, u32 position); 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ciacpi_status acpi_ut_ascii_to_hex_byte(char *two_ascii_chars, u8 *return_byte); 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ciu8 acpi_ut_ascii_char_to_hex(int hex_char); 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ciu8 acpi_ut_valid_object_type(acpi_object_type type); 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci/* 25062306a36Sopenharmony_ci * utinit - miscellaneous initialization and shutdown 25162306a36Sopenharmony_ci */ 25262306a36Sopenharmony_ciacpi_status acpi_ut_hardware_initialize(void); 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_civoid acpi_ut_subsystem_shutdown(void); 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci/* 25762306a36Sopenharmony_ci * utcopy - Object construction and conversion interfaces 25862306a36Sopenharmony_ci */ 25962306a36Sopenharmony_ciacpi_status 26062306a36Sopenharmony_ciacpi_ut_build_simple_object(union acpi_operand_object *obj, 26162306a36Sopenharmony_ci union acpi_object *user_obj, 26262306a36Sopenharmony_ci u8 *data_space, u32 *buffer_space_used); 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ciacpi_status 26562306a36Sopenharmony_ciacpi_ut_build_package_object(union acpi_operand_object *obj, 26662306a36Sopenharmony_ci u8 *buffer, u32 *space_used); 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ciacpi_status 26962306a36Sopenharmony_ciacpi_ut_copy_iobject_to_eobject(union acpi_operand_object *obj, 27062306a36Sopenharmony_ci struct acpi_buffer *ret_buffer); 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ciacpi_status 27362306a36Sopenharmony_ciacpi_ut_copy_eobject_to_iobject(union acpi_object *obj, 27462306a36Sopenharmony_ci union acpi_operand_object **internal_obj); 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ciacpi_status 27762306a36Sopenharmony_ciacpi_ut_copy_isimple_to_isimple(union acpi_operand_object *source_obj, 27862306a36Sopenharmony_ci union acpi_operand_object *dest_obj); 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ciacpi_status 28162306a36Sopenharmony_ciacpi_ut_copy_iobject_to_iobject(union acpi_operand_object *source_desc, 28262306a36Sopenharmony_ci union acpi_operand_object **dest_desc, 28362306a36Sopenharmony_ci struct acpi_walk_state *walk_state); 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci/* 28662306a36Sopenharmony_ci * utcreate - Object creation 28762306a36Sopenharmony_ci */ 28862306a36Sopenharmony_ciacpi_status 28962306a36Sopenharmony_ciacpi_ut_update_object_reference(union acpi_operand_object *object, u16 action); 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci/* 29262306a36Sopenharmony_ci * utdebug - Debug interfaces 29362306a36Sopenharmony_ci */ 29462306a36Sopenharmony_civoid acpi_ut_init_stack_ptr_trace(void); 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_civoid acpi_ut_track_stack_ptr(void); 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_civoid 29962306a36Sopenharmony_ciacpi_ut_trace(u32 line_number, 30062306a36Sopenharmony_ci const char *function_name, 30162306a36Sopenharmony_ci const char *module_name, u32 component_id); 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_civoid 30462306a36Sopenharmony_ciacpi_ut_trace_ptr(u32 line_number, 30562306a36Sopenharmony_ci const char *function_name, 30662306a36Sopenharmony_ci const char *module_name, 30762306a36Sopenharmony_ci u32 component_id, const void *pointer); 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_civoid 31062306a36Sopenharmony_ciacpi_ut_trace_u32(u32 line_number, 31162306a36Sopenharmony_ci const char *function_name, 31262306a36Sopenharmony_ci const char *module_name, u32 component_id, u32 integer); 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_civoid 31562306a36Sopenharmony_ciacpi_ut_trace_str(u32 line_number, 31662306a36Sopenharmony_ci const char *function_name, 31762306a36Sopenharmony_ci const char *module_name, 31862306a36Sopenharmony_ci u32 component_id, const char *string); 31962306a36Sopenharmony_ci 32062306a36Sopenharmony_civoid 32162306a36Sopenharmony_ciacpi_ut_exit(u32 line_number, 32262306a36Sopenharmony_ci const char *function_name, 32362306a36Sopenharmony_ci const char *module_name, u32 component_id); 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_civoid 32662306a36Sopenharmony_ciacpi_ut_status_exit(u32 line_number, 32762306a36Sopenharmony_ci const char *function_name, 32862306a36Sopenharmony_ci const char *module_name, 32962306a36Sopenharmony_ci u32 component_id, acpi_status status); 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_civoid 33262306a36Sopenharmony_ciacpi_ut_value_exit(u32 line_number, 33362306a36Sopenharmony_ci const char *function_name, 33462306a36Sopenharmony_ci const char *module_name, u32 component_id, u64 value); 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_civoid 33762306a36Sopenharmony_ciacpi_ut_ptr_exit(u32 line_number, 33862306a36Sopenharmony_ci const char *function_name, 33962306a36Sopenharmony_ci const char *module_name, u32 component_id, u8 *ptr); 34062306a36Sopenharmony_ci 34162306a36Sopenharmony_civoid 34262306a36Sopenharmony_ciacpi_ut_str_exit(u32 line_number, 34362306a36Sopenharmony_ci const char *function_name, 34462306a36Sopenharmony_ci const char *module_name, u32 component_id, const char *string); 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_civoid 34762306a36Sopenharmony_ciacpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id); 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_civoid acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 offset); 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci#ifdef ACPI_APPLICATION 35262306a36Sopenharmony_civoid 35362306a36Sopenharmony_ciacpi_ut_dump_buffer_to_file(ACPI_FILE file, 35462306a36Sopenharmony_ci u8 *buffer, 35562306a36Sopenharmony_ci u32 count, u32 display, u32 base_offset); 35662306a36Sopenharmony_ci#endif 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_civoid acpi_ut_report_error(char *module_name, u32 line_number); 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_civoid acpi_ut_report_info(char *module_name, u32 line_number); 36162306a36Sopenharmony_ci 36262306a36Sopenharmony_civoid acpi_ut_report_warning(char *module_name, u32 line_number); 36362306a36Sopenharmony_ci 36462306a36Sopenharmony_ci/* 36562306a36Sopenharmony_ci * utdelete - Object deletion and reference counts 36662306a36Sopenharmony_ci */ 36762306a36Sopenharmony_civoid acpi_ut_add_reference(union acpi_operand_object *object); 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_civoid acpi_ut_remove_reference(union acpi_operand_object *object); 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_civoid acpi_ut_delete_internal_package_object(union acpi_operand_object *object); 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_civoid acpi_ut_delete_internal_simple_object(union acpi_operand_object *object); 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_civoid acpi_ut_delete_internal_object_list(union acpi_operand_object **obj_list); 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ci/* 37862306a36Sopenharmony_ci * uteval - object evaluation 37962306a36Sopenharmony_ci */ 38062306a36Sopenharmony_ciacpi_status 38162306a36Sopenharmony_ciacpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node, 38262306a36Sopenharmony_ci const char *path, 38362306a36Sopenharmony_ci u32 expected_return_btypes, 38462306a36Sopenharmony_ci union acpi_operand_object **return_desc); 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ciacpi_status 38762306a36Sopenharmony_ciacpi_ut_evaluate_numeric_object(const char *object_name, 38862306a36Sopenharmony_ci struct acpi_namespace_node *device_node, 38962306a36Sopenharmony_ci u64 *value); 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ciacpi_status 39262306a36Sopenharmony_ciacpi_ut_execute_STA(struct acpi_namespace_node *device_node, u32 *status_flags); 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ciacpi_status 39562306a36Sopenharmony_ciacpi_ut_execute_power_methods(struct acpi_namespace_node *device_node, 39662306a36Sopenharmony_ci const char **method_names, 39762306a36Sopenharmony_ci u8 method_count, u8 *out_values); 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci/* 40062306a36Sopenharmony_ci * utids - device ID support 40162306a36Sopenharmony_ci */ 40262306a36Sopenharmony_ciacpi_status 40362306a36Sopenharmony_ciacpi_ut_execute_HID(struct acpi_namespace_node *device_node, 40462306a36Sopenharmony_ci struct acpi_pnp_device_id ** return_id); 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ciacpi_status 40762306a36Sopenharmony_ciacpi_ut_execute_UID(struct acpi_namespace_node *device_node, 40862306a36Sopenharmony_ci struct acpi_pnp_device_id ** return_id); 40962306a36Sopenharmony_ci 41062306a36Sopenharmony_ciacpi_status 41162306a36Sopenharmony_ciacpi_ut_execute_CID(struct acpi_namespace_node *device_node, 41262306a36Sopenharmony_ci struct acpi_pnp_device_id_list ** return_cid_list); 41362306a36Sopenharmony_ci 41462306a36Sopenharmony_ciacpi_status 41562306a36Sopenharmony_ciacpi_ut_execute_CLS(struct acpi_namespace_node *device_node, 41662306a36Sopenharmony_ci struct acpi_pnp_device_id **return_id); 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci/* 41962306a36Sopenharmony_ci * utlock - reader/writer locks 42062306a36Sopenharmony_ci */ 42162306a36Sopenharmony_ciacpi_status acpi_ut_create_rw_lock(struct acpi_rw_lock *lock); 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_civoid acpi_ut_delete_rw_lock(struct acpi_rw_lock *lock); 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ciacpi_status acpi_ut_acquire_read_lock(struct acpi_rw_lock *lock); 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_ciacpi_status acpi_ut_release_read_lock(struct acpi_rw_lock *lock); 42862306a36Sopenharmony_ci 42962306a36Sopenharmony_ciacpi_status acpi_ut_acquire_write_lock(struct acpi_rw_lock *lock); 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_civoid acpi_ut_release_write_lock(struct acpi_rw_lock *lock); 43262306a36Sopenharmony_ci 43362306a36Sopenharmony_ci/* 43462306a36Sopenharmony_ci * utobject - internal object create/delete/cache routines 43562306a36Sopenharmony_ci */ 43662306a36Sopenharmony_ciunion acpi_operand_object *acpi_ut_create_internal_object_dbg(const char 43762306a36Sopenharmony_ci *module_name, 43862306a36Sopenharmony_ci u32 line_number, 43962306a36Sopenharmony_ci u32 component_id, 44062306a36Sopenharmony_ci acpi_object_type 44162306a36Sopenharmony_ci type); 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_civoid *acpi_ut_allocate_object_desc_dbg(const char *module_name, 44462306a36Sopenharmony_ci u32 line_number, u32 component_id); 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ci#define acpi_ut_create_internal_object(t) acpi_ut_create_internal_object_dbg (_acpi_module_name,__LINE__,_COMPONENT,t) 44762306a36Sopenharmony_ci#define acpi_ut_allocate_object_desc() acpi_ut_allocate_object_desc_dbg (_acpi_module_name,__LINE__,_COMPONENT) 44862306a36Sopenharmony_ci 44962306a36Sopenharmony_civoid acpi_ut_delete_object_desc(union acpi_operand_object *object); 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ciu8 acpi_ut_valid_internal_object(void *object); 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ciunion acpi_operand_object *acpi_ut_create_package_object(u32 count); 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ciunion acpi_operand_object *acpi_ut_create_integer_object(u64 value); 45662306a36Sopenharmony_ci 45762306a36Sopenharmony_ciunion acpi_operand_object *acpi_ut_create_buffer_object(acpi_size buffer_size); 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ciunion acpi_operand_object *acpi_ut_create_string_object(acpi_size string_size); 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ciacpi_status 46262306a36Sopenharmony_ciacpi_ut_get_object_size(union acpi_operand_object *obj, acpi_size *obj_length); 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_ci/* 46562306a36Sopenharmony_ci * utosi - Support for the _OSI predefined control method 46662306a36Sopenharmony_ci */ 46762306a36Sopenharmony_ciacpi_status acpi_ut_initialize_interfaces(void); 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ciacpi_status acpi_ut_interface_terminate(void); 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ciacpi_status acpi_ut_install_interface(acpi_string interface_name); 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ciacpi_status acpi_ut_remove_interface(acpi_string interface_name); 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ciacpi_status acpi_ut_update_interfaces(u8 action); 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_cistruct acpi_interface_info *acpi_ut_get_interface(acpi_string interface_name); 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ciacpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state); 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci/* 48262306a36Sopenharmony_ci * utpredef - support for predefined names 48362306a36Sopenharmony_ci */ 48462306a36Sopenharmony_ciconst union acpi_predefined_info *acpi_ut_get_next_predefined_method(const union 48562306a36Sopenharmony_ci acpi_predefined_info 48662306a36Sopenharmony_ci *this_name); 48762306a36Sopenharmony_ci 48862306a36Sopenharmony_ciconst union acpi_predefined_info *acpi_ut_match_predefined_method(char *name); 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_civoid acpi_ut_get_expected_return_types(char *buffer, u32 expected_btypes); 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ci#if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 49362306a36Sopenharmony_ciconst union acpi_predefined_info *acpi_ut_match_resource_name(char *name); 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_civoid 49662306a36Sopenharmony_ciacpi_ut_display_predefined_method(char *buffer, 49762306a36Sopenharmony_ci const union acpi_predefined_info *this_name, 49862306a36Sopenharmony_ci u8 multi_line); 49962306a36Sopenharmony_ci 50062306a36Sopenharmony_ciu32 acpi_ut_get_resource_bit_width(char *buffer, u16 types); 50162306a36Sopenharmony_ci#endif 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_ci/* 50462306a36Sopenharmony_ci * utstate - Generic state creation/cache routines 50562306a36Sopenharmony_ci */ 50662306a36Sopenharmony_civoid 50762306a36Sopenharmony_ciacpi_ut_push_generic_state(union acpi_generic_state **list_head, 50862306a36Sopenharmony_ci union acpi_generic_state *state); 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ciunion acpi_generic_state *acpi_ut_pop_generic_state(union acpi_generic_state 51162306a36Sopenharmony_ci **list_head); 51262306a36Sopenharmony_ci 51362306a36Sopenharmony_ciunion acpi_generic_state *acpi_ut_create_generic_state(void); 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_cistruct acpi_thread_state *acpi_ut_create_thread_state(void); 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ciunion acpi_generic_state *acpi_ut_create_update_state(union acpi_operand_object 51862306a36Sopenharmony_ci *object, u16 action); 51962306a36Sopenharmony_ci 52062306a36Sopenharmony_ciunion acpi_generic_state *acpi_ut_create_pkg_state(void *internal_object, 52162306a36Sopenharmony_ci void *external_object, 52262306a36Sopenharmony_ci u32 index); 52362306a36Sopenharmony_ci 52462306a36Sopenharmony_ciacpi_status 52562306a36Sopenharmony_ciacpi_ut_create_update_state_and_push(union acpi_operand_object *object, 52662306a36Sopenharmony_ci u16 action, 52762306a36Sopenharmony_ci union acpi_generic_state **state_list); 52862306a36Sopenharmony_ci 52962306a36Sopenharmony_ciunion acpi_generic_state *acpi_ut_create_control_state(void); 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_civoid acpi_ut_delete_generic_state(union acpi_generic_state *state); 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci/* 53462306a36Sopenharmony_ci * utmath 53562306a36Sopenharmony_ci */ 53662306a36Sopenharmony_ciacpi_status 53762306a36Sopenharmony_ciacpi_ut_divide(u64 in_dividend, 53862306a36Sopenharmony_ci u64 in_divisor, u64 *out_quotient, u64 *out_remainder); 53962306a36Sopenharmony_ci 54062306a36Sopenharmony_ciacpi_status 54162306a36Sopenharmony_ciacpi_ut_short_divide(u64 in_dividend, 54262306a36Sopenharmony_ci u32 divisor, u64 *out_quotient, u32 *out_remainder); 54362306a36Sopenharmony_ci 54462306a36Sopenharmony_ciacpi_status 54562306a36Sopenharmony_ciacpi_ut_short_multiply(u64 in_multiplicand, u32 multiplier, u64 *outproduct); 54662306a36Sopenharmony_ci 54762306a36Sopenharmony_ciacpi_status acpi_ut_short_shift_left(u64 operand, u32 count, u64 *out_result); 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ciacpi_status acpi_ut_short_shift_right(u64 operand, u32 count, u64 *out_result); 55062306a36Sopenharmony_ci 55162306a36Sopenharmony_ci/* 55262306a36Sopenharmony_ci * utmisc 55362306a36Sopenharmony_ci */ 55462306a36Sopenharmony_ciconst struct acpi_exception_info *acpi_ut_validate_exception(acpi_status 55562306a36Sopenharmony_ci status); 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ciu8 acpi_ut_is_pci_root_bridge(char *id); 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci#if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP) 56062306a36Sopenharmony_ciu8 acpi_ut_is_aml_table(struct acpi_table_header *table); 56162306a36Sopenharmony_ci#endif 56262306a36Sopenharmony_ci 56362306a36Sopenharmony_ciacpi_status 56462306a36Sopenharmony_ciacpi_ut_walk_package_tree(union acpi_operand_object *source_object, 56562306a36Sopenharmony_ci void *target_object, 56662306a36Sopenharmony_ci acpi_pkg_callback walk_callback, void *context); 56762306a36Sopenharmony_ci 56862306a36Sopenharmony_ci/* Values for Base above (16=Hex, 10=Decimal) */ 56962306a36Sopenharmony_ci 57062306a36Sopenharmony_ci#define ACPI_ANY_BASE 0 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ciu32 acpi_ut_dword_byte_swap(u32 value); 57362306a36Sopenharmony_ci 57462306a36Sopenharmony_civoid acpi_ut_set_integer_width(u8 revision); 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ci#ifdef ACPI_DEBUG_OUTPUT 57762306a36Sopenharmony_civoid 57862306a36Sopenharmony_ciacpi_ut_display_init_pathname(u8 type, 57962306a36Sopenharmony_ci struct acpi_namespace_node *obj_handle, 58062306a36Sopenharmony_ci const char *path); 58162306a36Sopenharmony_ci#endif 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ci/* 58462306a36Sopenharmony_ci * utownerid - Support for Table/Method Owner IDs 58562306a36Sopenharmony_ci */ 58662306a36Sopenharmony_ciacpi_status acpi_ut_allocate_owner_id(acpi_owner_id *owner_id); 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_civoid acpi_ut_release_owner_id(acpi_owner_id *owner_id); 58962306a36Sopenharmony_ci 59062306a36Sopenharmony_ci/* 59162306a36Sopenharmony_ci * utresrc 59262306a36Sopenharmony_ci */ 59362306a36Sopenharmony_ciacpi_status 59462306a36Sopenharmony_ciacpi_ut_walk_aml_resources(struct acpi_walk_state *walk_state, 59562306a36Sopenharmony_ci u8 *aml, 59662306a36Sopenharmony_ci acpi_size aml_length, 59762306a36Sopenharmony_ci acpi_walk_aml_callback user_function, 59862306a36Sopenharmony_ci void **context); 59962306a36Sopenharmony_ci 60062306a36Sopenharmony_ciacpi_status 60162306a36Sopenharmony_ciacpi_ut_validate_resource(struct acpi_walk_state *walk_state, 60262306a36Sopenharmony_ci void *aml, u8 *return_index); 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ciu32 acpi_ut_get_descriptor_length(void *aml); 60562306a36Sopenharmony_ci 60662306a36Sopenharmony_ciu16 acpi_ut_get_resource_length(void *aml); 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ciu8 acpi_ut_get_resource_header_length(void *aml); 60962306a36Sopenharmony_ci 61062306a36Sopenharmony_ciu8 acpi_ut_get_resource_type(void *aml); 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ciacpi_status 61362306a36Sopenharmony_ciacpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc, u8 **end_tag); 61462306a36Sopenharmony_ci 61562306a36Sopenharmony_ci/* 61662306a36Sopenharmony_ci * utstring - String and character utilities 61762306a36Sopenharmony_ci */ 61862306a36Sopenharmony_civoid acpi_ut_print_string(char *string, u16 max_length); 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ci#if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 62162306a36Sopenharmony_civoid ut_convert_backslashes(char *pathname); 62262306a36Sopenharmony_ci#endif 62362306a36Sopenharmony_ci 62462306a36Sopenharmony_civoid acpi_ut_repair_name(char *name); 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) || defined (ACPI_DEBUG_OUTPUT) 62762306a36Sopenharmony_ciu8 acpi_ut_safe_strcpy(char *dest, acpi_size dest_size, char *source); 62862306a36Sopenharmony_ci 62962306a36Sopenharmony_civoid acpi_ut_safe_strncpy(char *dest, char *source, acpi_size dest_size); 63062306a36Sopenharmony_ci 63162306a36Sopenharmony_ciu8 acpi_ut_safe_strcat(char *dest, acpi_size dest_size, char *source); 63262306a36Sopenharmony_ci 63362306a36Sopenharmony_ciu8 63462306a36Sopenharmony_ciacpi_ut_safe_strncat(char *dest, 63562306a36Sopenharmony_ci acpi_size dest_size, 63662306a36Sopenharmony_ci char *source, acpi_size max_transfer_length); 63762306a36Sopenharmony_ci#endif 63862306a36Sopenharmony_ci 63962306a36Sopenharmony_ci/* 64062306a36Sopenharmony_ci * utmutex - mutex support 64162306a36Sopenharmony_ci */ 64262306a36Sopenharmony_ciacpi_status acpi_ut_mutex_initialize(void); 64362306a36Sopenharmony_ci 64462306a36Sopenharmony_civoid acpi_ut_mutex_terminate(void); 64562306a36Sopenharmony_ci 64662306a36Sopenharmony_ciacpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id); 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_ciacpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id); 64962306a36Sopenharmony_ci 65062306a36Sopenharmony_ci/* 65162306a36Sopenharmony_ci * utalloc - memory allocation and object caching 65262306a36Sopenharmony_ci */ 65362306a36Sopenharmony_ciacpi_status acpi_ut_create_caches(void); 65462306a36Sopenharmony_ci 65562306a36Sopenharmony_ciacpi_status acpi_ut_delete_caches(void); 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ciacpi_status acpi_ut_validate_buffer(struct acpi_buffer *buffer); 65862306a36Sopenharmony_ci 65962306a36Sopenharmony_ciacpi_status 66062306a36Sopenharmony_ciacpi_ut_initialize_buffer(struct acpi_buffer *buffer, 66162306a36Sopenharmony_ci acpi_size required_length); 66262306a36Sopenharmony_ci 66362306a36Sopenharmony_ci#ifdef ACPI_DBG_TRACK_ALLOCATIONS 66462306a36Sopenharmony_civoid *acpi_ut_allocate_and_track(acpi_size size, 66562306a36Sopenharmony_ci u32 component, const char *module, u32 line); 66662306a36Sopenharmony_ci 66762306a36Sopenharmony_civoid *acpi_ut_allocate_zeroed_and_track(acpi_size size, 66862306a36Sopenharmony_ci u32 component, 66962306a36Sopenharmony_ci const char *module, u32 line); 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_civoid 67262306a36Sopenharmony_ciacpi_ut_free_and_track(void *address, 67362306a36Sopenharmony_ci u32 component, const char *module, u32 line); 67462306a36Sopenharmony_ci 67562306a36Sopenharmony_civoid acpi_ut_dump_allocation_info(void); 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_civoid acpi_ut_dump_allocations(u32 component, const char *module); 67862306a36Sopenharmony_ci 67962306a36Sopenharmony_ciacpi_status 68062306a36Sopenharmony_ciacpi_ut_create_list(const char *list_name, 68162306a36Sopenharmony_ci u16 object_size, struct acpi_memory_list **return_cache); 68262306a36Sopenharmony_ci 68362306a36Sopenharmony_ci#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 68462306a36Sopenharmony_ci 68562306a36Sopenharmony_ci/* 68662306a36Sopenharmony_ci * utaddress - address range check 68762306a36Sopenharmony_ci */ 68862306a36Sopenharmony_ciacpi_status 68962306a36Sopenharmony_ciacpi_ut_add_address_range(acpi_adr_space_type space_id, 69062306a36Sopenharmony_ci acpi_physical_address address, 69162306a36Sopenharmony_ci u32 length, struct acpi_namespace_node *region_node); 69262306a36Sopenharmony_ci 69362306a36Sopenharmony_civoid 69462306a36Sopenharmony_ciacpi_ut_remove_address_range(acpi_adr_space_type space_id, 69562306a36Sopenharmony_ci struct acpi_namespace_node *region_node); 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ciu32 69862306a36Sopenharmony_ciacpi_ut_check_address_range(acpi_adr_space_type space_id, 69962306a36Sopenharmony_ci acpi_physical_address address, u32 length, u8 warn); 70062306a36Sopenharmony_ci 70162306a36Sopenharmony_civoid acpi_ut_delete_address_lists(void); 70262306a36Sopenharmony_ci 70362306a36Sopenharmony_ci/* 70462306a36Sopenharmony_ci * utxferror - various error/warning output functions 70562306a36Sopenharmony_ci */ 70662306a36Sopenharmony_ciACPI_PRINTF_LIKE(5) 70762306a36Sopenharmony_civoid ACPI_INTERNAL_VAR_XFACE 70862306a36Sopenharmony_ciacpi_ut_predefined_warning(const char *module_name, 70962306a36Sopenharmony_ci u32 line_number, 71062306a36Sopenharmony_ci char *pathname, 71162306a36Sopenharmony_ci u16 node_flags, const char *format, ...); 71262306a36Sopenharmony_ci 71362306a36Sopenharmony_ciACPI_PRINTF_LIKE(5) 71462306a36Sopenharmony_civoid ACPI_INTERNAL_VAR_XFACE 71562306a36Sopenharmony_ciacpi_ut_predefined_info(const char *module_name, 71662306a36Sopenharmony_ci u32 line_number, 71762306a36Sopenharmony_ci char *pathname, 71862306a36Sopenharmony_ci u16 node_flags, const char *format, ...); 71962306a36Sopenharmony_ci 72062306a36Sopenharmony_ciACPI_PRINTF_LIKE(5) 72162306a36Sopenharmony_civoid ACPI_INTERNAL_VAR_XFACE 72262306a36Sopenharmony_ciacpi_ut_predefined_bios_error(const char *module_name, 72362306a36Sopenharmony_ci u32 line_number, 72462306a36Sopenharmony_ci char *pathname, 72562306a36Sopenharmony_ci u16 node_flags, const char *format, ...); 72662306a36Sopenharmony_ci 72762306a36Sopenharmony_civoid 72862306a36Sopenharmony_ciacpi_ut_prefixed_namespace_error(const char *module_name, 72962306a36Sopenharmony_ci u32 line_number, 73062306a36Sopenharmony_ci union acpi_generic_state *prefix_scope, 73162306a36Sopenharmony_ci const char *internal_name, 73262306a36Sopenharmony_ci acpi_status lookup_status); 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_civoid 73562306a36Sopenharmony_ciacpi_ut_method_error(const char *module_name, 73662306a36Sopenharmony_ci u32 line_number, 73762306a36Sopenharmony_ci const char *message, 73862306a36Sopenharmony_ci struct acpi_namespace_node *node, 73962306a36Sopenharmony_ci const char *path, acpi_status lookup_status); 74062306a36Sopenharmony_ci 74162306a36Sopenharmony_ci/* 74262306a36Sopenharmony_ci * Utility functions for ACPI names and IDs 74362306a36Sopenharmony_ci */ 74462306a36Sopenharmony_ciconst struct ah_predefined_name *acpi_ah_match_predefined_name(char *nameseg); 74562306a36Sopenharmony_ci 74662306a36Sopenharmony_ciconst struct ah_device_id *acpi_ah_match_hardware_id(char *hid); 74762306a36Sopenharmony_ci 74862306a36Sopenharmony_ciconst char *acpi_ah_match_uuid(u8 *data); 74962306a36Sopenharmony_ci 75062306a36Sopenharmony_ci/* 75162306a36Sopenharmony_ci * utuuid -- UUID support functions 75262306a36Sopenharmony_ci */ 75362306a36Sopenharmony_ci#if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 75462306a36Sopenharmony_civoid acpi_ut_convert_string_to_uuid(char *in_string, u8 *uuid_buffer); 75562306a36Sopenharmony_ci 75662306a36Sopenharmony_ciacpi_status acpi_ut_convert_uuid_to_string(char *uuid_buffer, char *out_string); 75762306a36Sopenharmony_ci#endif 75862306a36Sopenharmony_ci 75962306a36Sopenharmony_ci#endif /* _ACUTILS_H */ 760