📄 utglobal.c
字号:
return (ACPI_CAST_PTR(char, acpi_gbl_region_types[space_id]));}/******************************************************************************* * * FUNCTION: acpi_ut_get_event_name * * PARAMETERS: None. * * RETURN: Status * * DESCRIPTION: Translate a Event ID into a name string (Debug only) * ******************************************************************************//* Event type decoding */static const char *acpi_gbl_event_types[ACPI_NUM_FIXED_EVENTS] = { "PM_Timer", "GlobalLock", "PowerButton", "SleepButton", "RealTimeClock",};char *acpi_ut_get_event_name(u32 event_id){ if (event_id > ACPI_EVENT_MAX) { return ("InvalidEventID"); } return (ACPI_CAST_PTR(char, acpi_gbl_event_types[event_id]));}/******************************************************************************* * * FUNCTION: acpi_ut_get_type_name * * PARAMETERS: None. * * RETURN: Status * * DESCRIPTION: Translate a Type ID into a name string (Debug only) * ******************************************************************************//* * Elements of acpi_gbl_ns_type_names below must match * one-to-one with values of acpi_object_type * * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching; * when stored in a table it really means that we have thus far seen no * evidence to indicate what type is actually going to be stored for this entry. */static const char acpi_gbl_bad_type[] = "UNDEFINED";/* Printable names of the ACPI object types */static const char *acpi_gbl_ns_type_names[] = { /* 00 */ "Untyped", /* 01 */ "Integer", /* 02 */ "String", /* 03 */ "Buffer", /* 04 */ "Package", /* 05 */ "FieldUnit", /* 06 */ "Device", /* 07 */ "Event", /* 08 */ "Method", /* 09 */ "Mutex", /* 10 */ "Region", /* 11 */ "Power", /* 12 */ "Processor", /* 13 */ "Thermal", /* 14 */ "BufferField", /* 15 */ "DdbHandle", /* 16 */ "DebugObject", /* 17 */ "RegionField", /* 18 */ "BankField", /* 19 */ "IndexField", /* 20 */ "Reference", /* 21 */ "Alias", /* 22 */ "MethodAlias", /* 23 */ "Notify", /* 24 */ "AddrHandler", /* 25 */ "ResourceDesc", /* 26 */ "ResourceFld", /* 27 */ "Scope", /* 28 */ "Extra", /* 29 */ "Data", /* 30 */ "Invalid"};char *acpi_ut_get_type_name(acpi_object_type type){ if (type > ACPI_TYPE_INVALID) { return (ACPI_CAST_PTR(char, acpi_gbl_bad_type)); } return (ACPI_CAST_PTR(char, acpi_gbl_ns_type_names[type]));}char *acpi_ut_get_object_type_name(union acpi_operand_object *obj_desc){ if (!obj_desc) { return ("[NULL Object Descriptor]"); } return (acpi_ut_get_type_name(ACPI_GET_OBJECT_TYPE(obj_desc)));}/******************************************************************************* * * FUNCTION: acpi_ut_get_descriptor_name * * PARAMETERS: Object - An ACPI object * * RETURN: Pointer to a string * * DESCRIPTION: Validate object and return the descriptor type * ******************************************************************************//* Printable names of object descriptor types */static const char *acpi_gbl_desc_type_names[] = { /* 00 */ "Invalid", /* 01 */ "Cached", /* 02 */ "State-Generic", /* 03 */ "State-Update", /* 04 */ "State-Package", /* 05 */ "State-Control", /* 06 */ "State-RootParseScope", /* 07 */ "State-ParseScope", /* 08 */ "State-WalkScope", /* 09 */ "State-Result", /* 10 */ "State-Notify", /* 11 */ "State-Thread", /* 12 */ "Walk", /* 13 */ "Parser", /* 14 */ "Operand", /* 15 */ "Node"};char *acpi_ut_get_descriptor_name(void *object){ if (!object) { return ("NULL OBJECT"); } if (ACPI_GET_DESCRIPTOR_TYPE(object) > ACPI_DESC_TYPE_MAX) { return (ACPI_CAST_PTR(char, acpi_gbl_bad_type)); } return (ACPI_CAST_PTR(char, acpi_gbl_desc_type_names[ACPI_GET_DESCRIPTOR_TYPE (object)]));}#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)/* * Strings and procedures used for debug only *//******************************************************************************* * * FUNCTION: acpi_ut_get_mutex_name * * PARAMETERS: mutex_id - The predefined ID for this mutex. * * RETURN: String containing the name of the mutex. Always returns a valid * pointer. * * DESCRIPTION: Translate a mutex ID into a name string (Debug only) * ******************************************************************************/char *acpi_ut_get_mutex_name(u32 mutex_id){ if (mutex_id > ACPI_MAX_MUTEX) { return ("Invalid Mutex ID"); } return (acpi_gbl_mutex_names[mutex_id]);}/******************************************************************************* * * FUNCTION: acpi_ut_get_notify_name * * PARAMETERS: notify_value - Value from the Notify() request * * RETURN: String corresponding to the Notify Value. * * DESCRIPTION: Translate a Notify Value to a notify namestring. * ******************************************************************************//* Names for Notify() values, used for debug output */static const char *acpi_gbl_notify_value_names[] = { "Bus Check", "Device Check", "Device Wake", "Eject Request", "Device Check Light", "Frequency Mismatch", "Bus Mode Mismatch", "Power Fault", "Capabilities Check", "Device PLD Check", "Reserved", "System Locality Update"};const char *acpi_ut_get_notify_name(u32 notify_value){ if (notify_value <= ACPI_NOTIFY_MAX) { return (acpi_gbl_notify_value_names[notify_value]); } else if (notify_value <= ACPI_MAX_SYS_NOTIFY) { return ("Reserved"); } else { /* Greater or equal to 0x80 */ return ("**Device Specific**"); }}#endif/******************************************************************************* * * FUNCTION: acpi_ut_valid_object_type * * PARAMETERS: Type - Object type to be validated * * RETURN: TRUE if valid object type, FALSE otherwise * * DESCRIPTION: Validate an object type * ******************************************************************************/u8 acpi_ut_valid_object_type(acpi_object_type type){ if (type > ACPI_TYPE_LOCAL_MAX) { /* Note: Assumes all TYPEs are contiguous (external/local) */ return (FALSE); } return (TRUE);}/******************************************************************************* * * FUNCTION: acpi_ut_init_globals * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Init library globals. All globals that require specific * initialization should be initialized here! * ******************************************************************************/void acpi_ut_init_globals(void){#if 0 acpi_status status;#endif u32 i; ACPI_FUNCTION_TRACE(ut_init_globals);#if 0 /* Create all memory caches */ status = acpi_ut_create_caches(); if (ACPI_FAILURE(status)) { return; }#endif /* Mutex locked flags */ for (i = 0; i < ACPI_NUM_MUTEX; i++) { acpi_gbl_mutex_info[i].mutex = NULL; acpi_gbl_mutex_info[i].thread_id = ACPI_MUTEX_NOT_ACQUIRED; acpi_gbl_mutex_info[i].use_count = 0; } for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++) { acpi_gbl_owner_id_mask[i] = 0; } acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000; /* Last ID is never valid */ /* GPE support */ acpi_gbl_gpe_xrupt_list_head = NULL; acpi_gbl_gpe_fadt_blocks[0] = NULL; acpi_gbl_gpe_fadt_blocks[1] = NULL; /* Global handlers */ acpi_gbl_system_notify.handler = NULL; acpi_gbl_device_notify.handler = NULL; acpi_gbl_exception_handler = NULL; acpi_gbl_init_handler = NULL; /*acpi_gbl_table_handler = NULL;*/ /* Global Lock support */ acpi_gbl_global_lock_semaphore = NULL; acpi_gbl_global_lock_mutex = NULL; acpi_gbl_global_lock_acquired = FALSE; acpi_gbl_global_lock_handle = 0; /* Miscellaneous variables */ acpi_gbl_cm_single_step = FALSE; acpi_gbl_db_terminate_threads = FALSE; acpi_gbl_shutdown = FALSE; acpi_gbl_ns_lookup_count = 0; acpi_gbl_ps_find_count = 0; acpi_gbl_acpi_hardware_present = TRUE; acpi_gbl_last_owner_id_index = 0; acpi_gbl_next_owner_id_offset = 0; acpi_gbl_trace_method_name = 0; acpi_gbl_trace_dbg_level = 0; acpi_gbl_trace_dbg_layer = 0; acpi_gbl_debugger_configuration = DEBUGGER_THREADING; acpi_gbl_db_output_flags = ACPI_DB_CONSOLE_OUTPUT; /* Hardware oriented */ acpi_gbl_events_initialized = FALSE; acpi_gbl_system_awake_and_running = TRUE; /* Namespace */ acpi_gbl_root_node = NULL; acpi_gbl_root_node_struct.name.integer = ACPI_ROOT_NAME; acpi_gbl_root_node_struct.descriptor_type = ACPI_DESC_TYPE_NAMED; acpi_gbl_root_node_struct.type = ACPI_TYPE_DEVICE; acpi_gbl_root_node_struct.child = NULL; acpi_gbl_root_node_struct.peer = NULL; acpi_gbl_root_node_struct.object = NULL; acpi_gbl_root_node_struct.flags = ANOBJ_END_OF_PEER_LIST;#ifdef ACPI_DEBUG_OUTPUT acpi_gbl_lowest_stack_pointer = ACPI_CAST_PTR(acpi_size, ACPI_SIZE_MAX);#endif#ifdef ACPI_DBG_TRACK_ALLOCATIONS acpi_gbl_display_final_mem_stats = FALSE;#endif return_VOID;}ACPI_EXPORT_SYMBOL(acpi_dbg_level) ACPI_EXPORT_SYMBOL(acpi_dbg_layer)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -