Lines Matching defs:acpi_aml_io

47 struct acpi_aml_io {
62 static struct acpi_aml_io acpi_aml_io;
69 return acpi_aml_io.thread ? true : false;
81 if (!(acpi_aml_io.flags & ACPI_AML_OPENED) ||
82 (acpi_aml_io.flags & ACPI_AML_CLOSED) ||
86 current != acpi_aml_io.thread)
97 if (!(acpi_aml_io.flags & flag) && circ_count(circ))
108 if (!(acpi_aml_io.flags & flag) && circ_space(circ))
115 if (acpi_aml_io.flags & ACPI_AML_BUSY)
122 return acpi_aml_io.usages ? true : false;
129 mutex_lock(&acpi_aml_io.lock);
131 mutex_unlock(&acpi_aml_io.lock);
139 mutex_lock(&acpi_aml_io.lock);
141 mutex_unlock(&acpi_aml_io.lock);
153 mutex_lock(&acpi_aml_io.lock);
155 mutex_unlock(&acpi_aml_io.lock);
163 mutex_lock(&acpi_aml_io.lock);
165 __acpi_aml_readable(&acpi_aml_io.in_crc, ACPI_AML_IN_KERN);
166 mutex_unlock(&acpi_aml_io.lock);
174 mutex_lock(&acpi_aml_io.lock);
176 __acpi_aml_writable(&acpi_aml_io.out_crc, ACPI_AML_OUT_KERN);
177 mutex_unlock(&acpi_aml_io.lock);
185 mutex_lock(&acpi_aml_io.lock);
187 __acpi_aml_readable(&acpi_aml_io.out_crc, ACPI_AML_OUT_USER);
188 mutex_unlock(&acpi_aml_io.lock);
196 mutex_lock(&acpi_aml_io.lock);
198 __acpi_aml_writable(&acpi_aml_io.in_crc, ACPI_AML_IN_USER);
199 mutex_unlock(&acpi_aml_io.lock);
207 mutex_lock(&acpi_aml_io.lock);
216 acpi_aml_io.flags |= flag;
218 mutex_unlock(&acpi_aml_io.lock);
226 mutex_lock(&acpi_aml_io.lock);
235 acpi_aml_io.flags |= flag;
237 mutex_unlock(&acpi_aml_io.lock);
243 mutex_lock(&acpi_aml_io.lock);
244 acpi_aml_io.flags &= ~flag;
246 wake_up_interruptible(&acpi_aml_io.wait);
247 mutex_unlock(&acpi_aml_io.lock);
253 struct circ_buf *crc = &acpi_aml_io.out_crc;
275 struct circ_buf *crc = &acpi_aml_io.in_crc;
313 ret = wait_event_interruptible(acpi_aml_io.wait,
357 ret = wait_event_interruptible(acpi_aml_io.wait,
388 mutex_lock(&acpi_aml_io.lock);
389 if (acpi_aml_io.function) {
390 acpi_aml_io.usages++;
391 function = acpi_aml_io.function;
392 context = acpi_aml_io.context;
394 mutex_unlock(&acpi_aml_io.lock);
399 mutex_lock(&acpi_aml_io.lock);
400 acpi_aml_io.usages--;
402 acpi_aml_io.thread = NULL;
403 wake_up(&acpi_aml_io.wait);
405 mutex_unlock(&acpi_aml_io.lock);
422 mutex_lock(&acpi_aml_io.lock);
423 acpi_aml_io.function = function;
424 acpi_aml_io.context = context;
425 mutex_unlock(&acpi_aml_io.lock);
433 mutex_lock(&acpi_aml_io.lock);
434 acpi_aml_io.thread = t;
437 mutex_unlock(&acpi_aml_io.lock);
467 mutex_lock(&acpi_aml_io.lock);
472 if (acpi_aml_io.flags & ACPI_AML_CLOSED) {
493 if (!(acpi_aml_io.flags & ACPI_AML_OPENED)) {
500 mutex_unlock(&acpi_aml_io.lock);
511 mutex_lock(&acpi_aml_io.lock);
512 acpi_aml_io.flags |= ACPI_AML_OPENED;
513 acpi_aml_io.out_crc.head = acpi_aml_io.out_crc.tail = 0;
514 acpi_aml_io.in_crc.head = acpi_aml_io.in_crc.tail = 0;
517 acpi_aml_io.users++;
523 mutex_unlock(&acpi_aml_io.lock);
530 mutex_lock(&acpi_aml_io.lock);
531 acpi_aml_io.users--;
537 acpi_aml_io.flags |= ACPI_AML_CLOSED;
543 wake_up_interruptible(&acpi_aml_io.wait);
544 mutex_unlock(&acpi_aml_io.lock);
550 wait_event(acpi_aml_io.wait, !acpi_aml_busy());
558 wait_event(acpi_aml_io.wait, !acpi_aml_used());
561 mutex_lock(&acpi_aml_io.lock);
562 acpi_aml_io.flags &= ~ACPI_AML_OPENED;
564 if (acpi_aml_io.users == 0) {
566 acpi_aml_io.flags &= ~ACPI_AML_CLOSED;
568 mutex_unlock(&acpi_aml_io.lock);
575 struct circ_buf *crc = &acpi_aml_io.out_crc;
617 ret = wait_event_interruptible(acpi_aml_io.wait,
645 struct circ_buf *crc = &acpi_aml_io.in_crc;
687 ret = wait_event_interruptible(acpi_aml_io.wait,
715 poll_wait(file, &acpi_aml_io.wait, wait);
749 mutex_init(&acpi_aml_io.lock);
750 init_waitqueue_head(&acpi_aml_io.wait);
751 acpi_aml_io.out_crc.buf = acpi_aml_io.out_buf;
752 acpi_aml_io.in_crc.buf = acpi_aml_io.in_buf;