Lines Matching full:thread
21 struct acpi_thread_state *thread);
37 struct acpi_thread_state *thread = obj_desc->mutex.owner_thread; in acpi_ex_unlink_mutex() local
39 if (!thread) { in acpi_ex_unlink_mutex()
61 thread->acquired_mutex_list = obj_desc->mutex.next; in acpi_ex_unlink_mutex()
70 * thread - Current executing thread object
80 struct acpi_thread_state *thread) in acpi_ex_link_mutex() argument
84 list_head = thread->acquired_mutex_list; in acpi_ex_link_mutex()
99 thread->acquired_mutex_list = obj_desc; in acpi_ex_link_mutex()
108 * thread_id - Current thread state
113 * path that supports multiple acquires by the same thread.
138 /* Support for multiple acquires by the owning thread */ in acpi_ex_acquire_mutex_object()
142 * The mutex is already owned by this thread, just increment the in acpi_ex_acquire_mutex_object()
203 /* Must have a valid thread state struct */ in acpi_ex_acquire_mutex()
205 if (!walk_state->thread) { in acpi_ex_acquire_mutex()
207 "Cannot acquire Mutex [%4.4s], null thread info", in acpi_ex_acquire_mutex()
216 if (walk_state->thread->current_sync_level > obj_desc->mutex.sync_level) { in acpi_ex_acquire_mutex()
221 walk_state->thread->current_sync_level)); in acpi_ex_acquire_mutex()
226 "Acquiring: Mutex SyncLevel %u, Thread SyncLevel %u, " in acpi_ex_acquire_mutex()
229 walk_state->thread->current_sync_level, in acpi_ex_acquire_mutex()
231 walk_state->thread)); in acpi_ex_acquire_mutex()
235 walk_state->thread->thread_id); in acpi_ex_acquire_mutex()
239 /* Save Thread object, original/current sync levels */ in acpi_ex_acquire_mutex()
241 obj_desc->mutex.owner_thread = walk_state->thread; in acpi_ex_acquire_mutex()
243 walk_state->thread->current_sync_level; in acpi_ex_acquire_mutex()
244 walk_state->thread->current_sync_level = in acpi_ex_acquire_mutex()
247 /* Link the mutex to the current thread for force-unlock at method exit */ in acpi_ex_acquire_mutex()
249 acpi_ex_link_mutex(obj_desc, walk_state->thread); in acpi_ex_acquire_mutex()
253 "Acquired: Mutex SyncLevel %u, Thread SyncLevel %u, Depth %u\n", in acpi_ex_acquire_mutex()
255 walk_state->thread->current_sync_level, in acpi_ex_acquire_mutex()
271 * previous multiple acquires) by the same thread.
363 /* Must have a valid thread ID */ in acpi_ex_release_mutex()
365 if (!walk_state->thread) { in acpi_ex_release_mutex()
367 "Cannot release Mutex [%4.4s], null thread info", in acpi_ex_release_mutex()
373 * The Mutex is owned, but this thread must be the owner. in acpi_ex_release_mutex()
374 * Special case for Global Lock, any thread can release in acpi_ex_release_mutex()
376 if ((owner_thread->thread_id != walk_state->thread->thread_id) && in acpi_ex_release_mutex()
379 "Thread %u cannot release Mutex [%4.4s] acquired by thread %u", in acpi_ex_release_mutex()
380 (u32)walk_state->thread->thread_id, in acpi_ex_release_mutex()
399 walk_state->thread->current_sync_level)); in acpi_ex_release_mutex()
412 "Releasing: Object SyncLevel %u, Thread SyncLevel %u, " in acpi_ex_release_mutex()
415 walk_state->thread->current_sync_level, in acpi_ex_release_mutex()
418 walk_state->thread)); in acpi_ex_release_mutex()
433 "Released: Object SyncLevel %u, Thread SyncLevel, %u, " in acpi_ex_release_mutex()
436 walk_state->thread->current_sync_level, in acpi_ex_release_mutex()
447 * PARAMETERS: thread - Current executing thread object
451 * DESCRIPTION: Release all mutexes held by this thread
453 * NOTE: This function is called as the thread is exiting the interpreter.
455 * only when the parent thread actually exits the interpreter. This allows one
461 void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread) in acpi_ex_release_all_mutexes() argument
463 union acpi_operand_object *next = thread->acquired_mutex_list; in acpi_ex_release_all_mutexes()
489 /* Update Thread sync_level (Last mutex is the important one) */ in acpi_ex_release_all_mutexes()
491 thread->current_sync_level = in acpi_ex_release_all_mutexes()