⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utglobal.c

📁 h内核
💻 C
📖 第 1 页 / 共 2 页
字号:
		return ("invalid_event_iD");	}	return ((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";#define TYPE_NAME_LENGTH    12                           /* Maximum length of each string */static const char                   *acpi_gbl_ns_type_names[] = /* printable names of ACPI types */{	/* 00 */ "Untyped",	/* 01 */ "Integer",	/* 02 */ "String",	/* 03 */ "Buffer",	/* 04 */ "Package",	/* 05 */ "field_unit",	/* 06 */ "Device",	/* 07 */ "Event",	/* 08 */ "Method",	/* 09 */ "Mutex",	/* 10 */ "Region",	/* 11 */ "Power",	/* 12 */ "Processor",	/* 13 */ "Thermal",	/* 14 */ "buffer_field",	/* 15 */ "ddb_handle",	/* 16 */ "debug_object",	/* 17 */ "region_field",	/* 18 */ "bank_field",	/* 19 */ "index_field",	/* 20 */ "Reference",	/* 21 */ "Alias",	/* 22 */ "method_alias",	/* 23 */ "Notify",	/* 24 */ "addr_handler",	/* 25 */ "resource_desc",	/* 26 */ "resource_fld",	/* 27 */ "Scope",	/* 28 */ "Extra",	/* 29 */ "Data",	/* 30 */ "Invalid"};char *acpi_ut_get_type_name (	acpi_object_type                type){	if (type > ACPI_TYPE_INVALID)	{		return ((char *) acpi_gbl_bad_type);	}	return ((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_node_name * * PARAMETERS:  Object               - A namespace node * * RETURN:      Pointer to a string * * DESCRIPTION: Validate the node and return the node's ACPI name. * ****************************************************************************/char *acpi_ut_get_node_name (	void                            *object){	struct acpi_namespace_node      *node = (struct acpi_namespace_node *) object;	/* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */	if (!object)	{		return ("NULL");	}	/* Check for Root node */	if ((object == ACPI_ROOT_OBJECT) ||		(object == acpi_gbl_root_node))	{		return ("\"\\\" ");	}	/* Descriptor must be a namespace node */	if (node->descriptor != ACPI_DESC_TYPE_NAMED)	{		return ("####");	}	/* Name must be a valid ACPI name */	if (!acpi_ut_valid_acpi_name (* (u32 *) node->name.ascii))	{		return ("????");	}	/* Return the name */	return (node->name.ascii);}/***************************************************************************** * * FUNCTION:    acpi_ut_get_descriptor_name * * PARAMETERS:  Object               - An ACPI object * * RETURN:      Pointer to a string * * DESCRIPTION: Validate object and return the descriptor type * ****************************************************************************/static const char                   *acpi_gbl_desc_type_names[] = /* printable names of descriptor types */{	/* 00 */ "Invalid",	/* 01 */ "Cached",	/* 02 */ "State-Generic",	/* 03 */ "State-Update",	/* 04 */ "State-Package",	/* 05 */ "State-Control",	/* 06 */ "State-root_parse_scope",	/* 07 */ "State-parse_scope",	/* 08 */ "State-walk_scope",	/* 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 ((char *) acpi_gbl_bad_type);	}	return ((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:  None. * * RETURN:      Status * * DESCRIPTION: Translate a mutex ID into a name string (Debug only) * ****************************************************************************/char *acpi_ut_get_mutex_name (	u32                             mutex_id){	if (mutex_id > MAX_MUTEX)	{		return ("Invalid Mutex ID");	}	return (acpi_gbl_mutex_names[mutex_id]);}#endif/***************************************************************************** * * FUNCTION:    acpi_ut_valid_object_type * * PARAMETERS:  Type            - Object type to be validated * * RETURN:      TRUE if valid object type * * DESCRIPTION: Validate an object type * ****************************************************************************/u8acpi_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_allocate_owner_id * * PARAMETERS:  id_type         - Type of ID (method or table) * * DESCRIPTION: Allocate a table or method owner id * ***************************************************************************/acpi_owner_idacpi_ut_allocate_owner_id (	u32                             id_type){	acpi_owner_id                   owner_id = 0xFFFF;	ACPI_FUNCTION_TRACE ("ut_allocate_owner_id");	if (ACPI_FAILURE (acpi_ut_acquire_mutex (ACPI_MTX_CACHES)))	{		return (0);	}	switch (id_type)	{	case ACPI_OWNER_TYPE_TABLE:		owner_id = acpi_gbl_next_table_owner_id;		acpi_gbl_next_table_owner_id++;		/* Check for wraparound */		if (acpi_gbl_next_table_owner_id == ACPI_FIRST_METHOD_ID)		{			acpi_gbl_next_table_owner_id = ACPI_FIRST_TABLE_ID;			ACPI_REPORT_WARNING (("Table owner ID wraparound\n"));		}		break;	case ACPI_OWNER_TYPE_METHOD:		owner_id = acpi_gbl_next_method_owner_id;		acpi_gbl_next_method_owner_id++;		if (acpi_gbl_next_method_owner_id == ACPI_FIRST_TABLE_ID)		{			/* Check for wraparound */			acpi_gbl_next_method_owner_id = ACPI_FIRST_METHOD_ID;		}		break;	default:		break;	}	(void) acpi_ut_release_mutex (ACPI_MTX_CACHES);	return_VALUE (owner_id);}/**************************************************************************** * * FUNCTION:    acpi_ut_init_globals * * PARAMETERS:  none * * DESCRIPTION: Init library globals.  All globals that require specific *              initialization should be initialized here! * ***************************************************************************/voidacpi_ut_init_globals (	void){	u32                             i;	ACPI_FUNCTION_TRACE ("ut_init_globals");	/* Memory allocation and cache lists */	ACPI_MEMSET (acpi_gbl_memory_lists, 0, sizeof (struct acpi_memory_list) * ACPI_NUM_MEM_LISTS);	acpi_gbl_memory_lists[ACPI_MEM_LIST_STATE].link_offset      = (u16) ACPI_PTR_DIFF (&(((union acpi_generic_state *) NULL)->common.next), NULL);	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE].link_offset     = (u16) ACPI_PTR_DIFF (&(((union acpi_parse_object *) NULL)->common.next), NULL);	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE_EXT].link_offset = (u16) ACPI_PTR_DIFF (&(((union acpi_parse_object *) NULL)->common.next), NULL);	acpi_gbl_memory_lists[ACPI_MEM_LIST_OPERAND].link_offset    = (u16) ACPI_PTR_DIFF (&(((union acpi_operand_object *) NULL)->cache.next), NULL);	acpi_gbl_memory_lists[ACPI_MEM_LIST_WALK].link_offset       = (u16) ACPI_PTR_DIFF (&(((struct acpi_walk_state *) NULL)->next), NULL);	acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].object_size     = sizeof (struct acpi_namespace_node);	acpi_gbl_memory_lists[ACPI_MEM_LIST_STATE].object_size      = sizeof (union acpi_generic_state);	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE].object_size     = sizeof (struct acpi_parse_obj_common);	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE_EXT].object_size = sizeof (struct acpi_parse_obj_named);	acpi_gbl_memory_lists[ACPI_MEM_LIST_OPERAND].object_size    = sizeof (union acpi_operand_object);	acpi_gbl_memory_lists[ACPI_MEM_LIST_WALK].object_size       = sizeof (struct acpi_walk_state);	acpi_gbl_memory_lists[ACPI_MEM_LIST_STATE].max_cache_depth  = ACPI_MAX_STATE_CACHE_DEPTH;	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE].max_cache_depth = ACPI_MAX_PARSE_CACHE_DEPTH;	acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE_EXT].max_cache_depth = ACPI_MAX_EXTPARSE_CACHE_DEPTH;	acpi_gbl_memory_lists[ACPI_MEM_LIST_OPERAND].max_cache_depth = ACPI_MAX_OBJECT_CACHE_DEPTH;	acpi_gbl_memory_lists[ACPI_MEM_LIST_WALK].max_cache_depth   = ACPI_MAX_WALK_CACHE_DEPTH;	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_GLOBAL].list_name    = "Global Memory Allocation");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].list_name    = "Namespace Nodes");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_STATE].list_name     = "State Object Cache");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE].list_name    = "Parse Node Cache");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_PSNODE_EXT].list_name = "Extended Parse Node Cache");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_OPERAND].list_name   = "Operand Object Cache");	ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_WALK].list_name      = "Tree Walk Node Cache");	/* ACPI table structure */	for (i = 0; i < NUM_ACPI_TABLE_TYPES; i++)	{		acpi_gbl_table_lists[i].next        = NULL;		acpi_gbl_table_lists[i].count       = 0;	}	/* Mutex locked flags */	for (i = 0; i < NUM_MUTEX; i++)	{		acpi_gbl_mutex_info[i].mutex        = NULL;		acpi_gbl_mutex_info[i].owner_id     = ACPI_MUTEX_NOT_ACQUIRED;		acpi_gbl_mutex_info[i].use_count    = 0;	}	/* GPE support */	acpi_gbl_gpe_xrupt_list_head        = NULL;	acpi_gbl_gpe_fadt_blocks[0]         = NULL;	acpi_gbl_gpe_fadt_blocks[1]         = NULL;	/* Global notify handlers */	acpi_gbl_system_notify.handler      = NULL;	acpi_gbl_device_notify.handler      = NULL;	acpi_gbl_exception_handler          = NULL;	acpi_gbl_init_handler               = NULL;	/* Global "typed" ACPI table pointers */	acpi_gbl_RSDP                       = NULL;	acpi_gbl_XSDT                       = NULL;	acpi_gbl_FACS                       = NULL;	acpi_gbl_FADT                       = NULL;	acpi_gbl_DSDT                       = NULL;	/* Global Lock support */	acpi_gbl_global_lock_acquired       = FALSE;	acpi_gbl_global_lock_thread_count   = 0;	acpi_gbl_global_lock_handle         = 0;	/* Miscellaneous variables */	acpi_gbl_table_flags                = ACPI_PHYSICAL_POINTER;	acpi_gbl_rsdp_original_location     = 0;	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_next_table_owner_id        = ACPI_FIRST_TABLE_ID;	acpi_gbl_next_method_owner_id       = ACPI_FIRST_METHOD_ID;	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 = 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_SIZE_MAX;#endif	return_VOID;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -