Lines Matching defs:obj_desc

20 acpi_ex_link_mutex(union acpi_operand_object *obj_desc,
27 * PARAMETERS: obj_desc - The mutex to be unlinked
35 void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc)
37 struct acpi_thread_state *thread = obj_desc->mutex.owner_thread;
45 if (obj_desc->mutex.next) {
46 (obj_desc->mutex.next)->mutex.prev = obj_desc->mutex.prev;
49 if (obj_desc->mutex.prev) {
50 (obj_desc->mutex.prev)->mutex.next = obj_desc->mutex.next;
58 (obj_desc->mutex.prev)->mutex.original_sync_level =
59 obj_desc->mutex.original_sync_level;
61 thread->acquired_mutex_list = obj_desc->mutex.next;
69 * PARAMETERS: obj_desc - The mutex to be linked
79 acpi_ex_link_mutex(union acpi_operand_object *obj_desc,
88 obj_desc->mutex.prev = NULL;
89 obj_desc->mutex.next = list_head;
94 list_head->mutex.prev = obj_desc;
99 thread->acquired_mutex_list = obj_desc;
107 * obj_desc - Mutex object
127 union acpi_operand_object *obj_desc,
132 ACPI_FUNCTION_TRACE_PTR(ex_acquire_mutex_object, obj_desc);
134 if (!obj_desc) {
140 if (obj_desc->mutex.thread_id == thread_id) {
145 obj_desc->mutex.acquisition_depth++;
151 if (obj_desc == acpi_gbl_global_lock_mutex) {
155 acpi_ex_system_wait_mutex(obj_desc->mutex.os_mutex,
168 obj_desc->mutex.thread_id = thread_id;
169 obj_desc->mutex.acquisition_depth = 1;
170 obj_desc->mutex.original_sync_level = 0;
171 obj_desc->mutex.owner_thread = NULL; /* Used only for AML Acquire() */
181 * obj_desc - Mutex object
192 union acpi_operand_object *obj_desc,
197 ACPI_FUNCTION_TRACE_PTR(ex_acquire_mutex, obj_desc);
199 if (!obj_desc) {
208 acpi_ut_get_node_name(obj_desc->mutex.node)));
216 if (walk_state->thread->current_sync_level > obj_desc->mutex.sync_level) {
220 acpi_ut_get_node_name(obj_desc->mutex.node),
228 obj_desc->mutex.sync_level,
230 obj_desc->mutex.acquisition_depth,
234 obj_desc,
237 if (ACPI_SUCCESS(status) && obj_desc->mutex.acquisition_depth == 1) {
241 obj_desc->mutex.owner_thread = walk_state->thread;
242 obj_desc->mutex.original_sync_level =
245 obj_desc->mutex.sync_level;
249 acpi_ex_link_mutex(obj_desc, walk_state->thread);
254 obj_desc->mutex.sync_level,
256 obj_desc->mutex.acquisition_depth));
265 * PARAMETERS: obj_desc - The object descriptor for this op
283 acpi_status acpi_ex_release_mutex_object(union acpi_operand_object *obj_desc)
289 if (obj_desc->mutex.acquisition_depth == 0) {
295 obj_desc->mutex.acquisition_depth--;
296 if (obj_desc->mutex.acquisition_depth != 0) {
303 if (obj_desc->mutex.owner_thread) {
307 acpi_ex_unlink_mutex(obj_desc);
308 obj_desc->mutex.owner_thread = NULL;
313 if (obj_desc == acpi_gbl_global_lock_mutex) {
316 acpi_os_release_mutex(obj_desc->mutex.os_mutex);
321 obj_desc->mutex.thread_id = 0;
329 * PARAMETERS: obj_desc - The object descriptor for this op
339 acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
348 if (!obj_desc) {
352 owner_thread = obj_desc->mutex.owner_thread;
359 acpi_ut_get_node_name(obj_desc->mutex.node)));
368 acpi_ut_get_node_name(obj_desc->mutex.node)));
377 (obj_desc != acpi_gbl_global_lock_mutex)) {
381 acpi_ut_get_node_name(obj_desc->mutex.node),
393 if (obj_desc->mutex.sync_level != owner_thread->current_sync_level) {
397 acpi_ut_get_node_name(obj_desc->mutex.node),
398 obj_desc->mutex.sync_level,
414 obj_desc->mutex.sync_level,
417 obj_desc->mutex.acquisition_depth,
420 status = acpi_ex_release_mutex_object(obj_desc);
425 if (obj_desc->mutex.acquisition_depth == 0) {
435 obj_desc->mutex.sync_level,
438 obj_desc->mutex.acquisition_depth));
464 union acpi_operand_object *obj_desc;
471 obj_desc = next;
474 obj_desc->mutex.node->name.ascii,
475 obj_desc->mutex.sync_level,
476 obj_desc->mutex.acquisition_depth));
480 if (obj_desc == acpi_gbl_global_lock_mutex) {
486 acpi_os_release_mutex(obj_desc->mutex.os_mutex);
492 obj_desc->mutex.original_sync_level;
496 next = obj_desc->mutex.next;
498 obj_desc->mutex.prev = NULL;
499 obj_desc->mutex.next = NULL;
500 obj_desc->mutex.acquisition_depth = 0;
501 obj_desc->mutex.owner_thread = NULL;
502 obj_desc->mutex.thread_id = 0;