49#define _COMPONENT ACPI_EXECUTER
86 if (ObjDesc->Mutex.Next)
88 (ObjDesc->Mutex.Next)->
Mutex.Prev = ObjDesc->
Mutex.Prev;
91 if (ObjDesc->Mutex.Prev)
93 (ObjDesc->Mutex.Prev)->
Mutex.Next = ObjDesc->
Mutex.Next;
101 (ObjDesc->Mutex.Prev)->Mutex.OriginalSyncLevel =
102 ObjDesc->Mutex.OriginalSyncLevel;
106 Thread->AcquiredMutexList = ObjDesc->Mutex.Next;
132 ListHead =
Thread->AcquiredMutexList;
148 Thread->AcquiredMutexList = ObjDesc;
206 if (ObjDesc == AcpiGbl_GlobalLockMutex)
269 "Cannot acquire Mutex [%4.4s], null thread info",
281 "Cannot acquire Mutex [%4.4s], "
282 "current SyncLevel is too large (%u)",
289 "Acquiring: Mutex SyncLevel %u, Thread SyncLevel %u, "
313 "Acquired: Mutex SyncLevel %u, Thread SyncLevel %u, Depth %u\n",
378 if (ObjDesc == AcpiGbl_GlobalLockMutex)
412 UINT8 PreviousSyncLevel;
432 "Cannot release Mutex [%4.4s], not acquired",
442 "Cannot release Mutex [%4.4s], null thread info",
452 (ObjDesc != AcpiGbl_GlobalLockMutex))
455 "Thread %u cannot release Mutex [%4.4s] acquired by thread %u",
472 "Cannot release Mutex [%4.4s], SyncLevel mismatch: "
473 "mutex %u current %u",
488 "Releasing: Object SyncLevel %u, Thread SyncLevel %u, "
489 "Prev SyncLevel %u, Depth %u TID %p\n",
508 "Released: Object SyncLevel %u, Thread SyncLevel, %u, "
509 "Prev SyncLevel %u, Depth %u\n",
552 "Mutex [%4.4s] force-release, SyncLevel %u Depth %u\n",
558 if (ObjDesc == AcpiGbl_GlobalLockMutex)
#define AE_AML_MUTEX_ORDER
#define AE_AML_MUTEX_NOT_ACQUIRED
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_MODULE_NAME(Name)
#define ACPI_FUNCTION_TRACE_PTR(a, b)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_ERROR(plist)
#define AcpiOsReleaseMutex(Handle)
const char * AcpiUtGetNodeName(void *Object)
ACPI_STATUS AcpiEvReleaseGlobalLock(void)
ACPI_STATUS AcpiEvAcquireGlobalLock(UINT16 Timeout)
static void AcpiExLinkMutex(ACPI_OPERAND_OBJECT *ObjDesc, ACPI_THREAD_STATE *Thread)
void AcpiExUnlinkMutex(ACPI_OPERAND_OBJECT *ObjDesc)
ACPI_STATUS AcpiExReleaseMutex(ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState)
ACPI_STATUS AcpiExAcquireMutexObject(UINT16 Timeout, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_THREAD_ID ThreadId)
ACPI_STATUS AcpiExAcquireMutex(ACPI_OPERAND_OBJECT *TimeDesc, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState)
void AcpiExReleaseAllMutexes(ACPI_THREAD_STATE *Thread)
ACPI_STATUS AcpiExReleaseMutexObject(ACPI_OPERAND_OBJECT *ObjDesc)
ACPI_STATUS AcpiExSystemWaitMutex(ACPI_MUTEX Mutex, UINT16 Timeout)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
union acpi_operand_object * Next
ACPI_OBJECT_COMMON_HEADER UINT8 SyncLevel
struct acpi_thread_state * OwnerThread
union acpi_operand_object * Prev
ACPI_NAMESPACE_NODE * Node
ACPI_STATE_COMMON UINT8 CurrentSyncLevel
union acpi_operand_object * AcquiredMutexList
ACPI_THREAD_STATE * Thread
ACPI_OBJECT_INTEGER Integer