📄 utglobal.c
字号:
* * FUNCTION: AcpiUtGetEventName * * PARAMETERS: None. * * RETURN: Status * * DESCRIPTION: Translate a Event ID into a name string (Debug only) * ******************************************************************************//* Event type decoding */static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] ={ "PM_Timer", "GlobalLock", "PowerButton", "SleepButton", "RealTimeClock",};char *AcpiUtGetEventName ( UINT32 EventId){ if (EventId > ACPI_EVENT_MAX) { return ("InvalidEventID"); } return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId]));}/******************************************************************************* * * FUNCTION: AcpiUtGetTypeName * * PARAMETERS: None. * * RETURN: Status * * DESCRIPTION: Translate a Type ID into a name string (Debug only) * ******************************************************************************//* * Elements of AcpiGbl_NsTypeNames 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 AcpiGbl_BadType[] = "UNDEFINED";/* Printable names of the ACPI object types */static const char *AcpiGbl_NsTypeNames[] ={ /* 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 *AcpiUtGetTypeName ( ACPI_OBJECT_TYPE Type){ if (Type > ACPI_TYPE_INVALID) { return (ACPI_CAST_PTR (char, AcpiGbl_BadType)); } return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type]));}char *AcpiUtGetObjectTypeName ( ACPI_OPERAND_OBJECT *ObjDesc){ if (!ObjDesc) { return ("[NULL Object Descriptor]"); } return (AcpiUtGetTypeName (ACPI_GET_OBJECT_TYPE (ObjDesc)));}/******************************************************************************* * * FUNCTION: AcpiUtGetNodeName * * PARAMETERS: Object - A namespace node * * RETURN: Pointer to a string * * DESCRIPTION: Validate the node and return the node's ACPI name. * ******************************************************************************/char *AcpiUtGetNodeName ( void *Object){ ACPI_NAMESPACE_NODE *Node = (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 == AcpiGbl_RootNode)) { return ("\"\\\" "); } /* Descriptor must be a namespace node */ if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED) { return ("####"); } /* Name must be a valid ACPI name */ if (!AcpiUtValidAcpiName (Node->Name.Integer)) { Node->Name.Integer = AcpiUtRepairName (Node->Name.Ascii); } /* Return the name */ return (Node->Name.Ascii);}/******************************************************************************* * * FUNCTION: AcpiUtGetDescriptorName * * 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 *AcpiGbl_DescTypeNames[] ={ /* 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 *AcpiUtGetDescriptorName ( void *Object){ if (!Object) { return ("NULL OBJECT"); } if (ACPI_GET_DESCRIPTOR_TYPE (Object) > ACPI_DESC_TYPE_MAX) { return (ACPI_CAST_PTR (char, AcpiGbl_BadType)); } return (ACPI_CAST_PTR (char, AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]));}#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)/* * Strings and procedures used for debug only *//******************************************************************************* * * FUNCTION: AcpiUtGetMutexName * * PARAMETERS: MutexId - 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 *AcpiUtGetMutexName ( UINT32 MutexId){ if (MutexId > ACPI_MAX_MUTEX) { return ("Invalid Mutex ID"); } return (AcpiGbl_MutexNames[MutexId]);}#endif/******************************************************************************* * * FUNCTION: AcpiUtValidObjectType * * PARAMETERS: Type - Object type to be validated * * RETURN: TRUE if valid object type, FALSE otherwise * * DESCRIPTION: Validate an object type * ******************************************************************************/BOOLEANAcpiUtValidObjectType ( ACPI_OBJECT_TYPE Type){ if (Type > ACPI_TYPE_LOCAL_MAX) { /* Note: Assumes all TYPEs are contiguous (external/local) */ return (FALSE); } return (TRUE);}/******************************************************************************* * * FUNCTION: AcpiUtInitGlobals * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Init library globals. All globals that require specific * initialization should be initialized here! * ******************************************************************************/voidAcpiUtInitGlobals ( void){ ACPI_STATUS Status; UINT32 i; ACPI_FUNCTION_TRACE (UtInitGlobals); /* Create all memory caches */ Status = AcpiUtCreateCaches (); if (ACPI_FAILURE (Status)) { return; } /* Mutex locked flags */ for (i = 0; i < ACPI_NUM_MUTEX; i++) { AcpiGbl_MutexInfo[i].Mutex = NULL; AcpiGbl_MutexInfo[i].ThreadId = ACPI_MUTEX_NOT_ACQUIRED; AcpiGbl_MutexInfo[i].UseCount = 0; } for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++) { AcpiGbl_OwnerIdMask[i] = 0; } AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000; /* Last ID is never valid */ /* Event counters */ AcpiMethodCount = 0; AcpiSciCount = 0; AcpiGpeCount = 0; for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) { AcpiFixedEventCount[i] = 0; } /* GPE support */ AcpiGbl_GpeXruptListHead = NULL; AcpiGbl_GpeFadtBlocks[0] = NULL; AcpiGbl_GpeFadtBlocks[1] = NULL; /* Global handlers */ AcpiGbl_SystemNotify.Handler = NULL; AcpiGbl_DeviceNotify.Handler = NULL; AcpiGbl_ExceptionHandler = NULL; AcpiGbl_InitHandler = NULL; AcpiGbl_TableHandler = NULL; /* Global Lock support */ AcpiGbl_GlobalLockSemaphore = NULL; AcpiGbl_GlobalLockMutex = NULL; AcpiGbl_GlobalLockAcquired = FALSE; AcpiGbl_GlobalLockHandle = 0; /* Miscellaneous variables */ AcpiGbl_CmSingleStep = FALSE; AcpiGbl_DbTerminateThreads = FALSE; AcpiGbl_Shutdown = FALSE; AcpiGbl_NsLookupCount = 0; AcpiGbl_PsFindCount = 0; AcpiGbl_AcpiHardwarePresent = TRUE; AcpiGbl_LastOwnerIdIndex = 0; AcpiGbl_NextOwnerIdOffset = 0; AcpiGbl_TraceMethodName = 0; AcpiGbl_TraceDbgLevel = 0; AcpiGbl_TraceDbgLayer = 0; AcpiGbl_DebuggerConfiguration = DEBUGGER_THREADING; AcpiGbl_DbOutputFlags = ACPI_DB_CONSOLE_OUTPUT; /* Hardware oriented */ AcpiGbl_EventsInitialized = FALSE; AcpiGbl_SystemAwakeAndRunning = TRUE; /* Namespace */ AcpiGbl_RootNode = NULL; AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME; AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED; AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE; AcpiGbl_RootNodeStruct.Child = NULL; AcpiGbl_RootNodeStruct.Peer = NULL; AcpiGbl_RootNodeStruct.Object = NULL; AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;#ifdef ACPI_DEBUG_OUTPUT AcpiGbl_LowestStackPointer = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);#endif#ifdef ACPI_DBG_TRACK_ALLOCATIONS AcpiGbl_DisplayFinalMemStats = FALSE;#endif return_VOID;}/* Public globals */ACPI_EXPORT_SYMBOL (AcpiDbgLevel)ACPI_EXPORT_SYMBOL (AcpiDbgLayer)ACPI_EXPORT_SYMBOL (AcpiGpeCount)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -