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 if (acpi_aml_io.flags & ACPI_AML_OPEN)
129 return acpi_aml_io.usages ? true : false;
136 mutex_lock(&acpi_aml_io.lock);
138 mutex_unlock(&acpi_aml_io.lock);
146 mutex_lock(&acpi_aml_io.lock);
148 mutex_unlock(&acpi_aml_io.lock);
160 mutex_lock(&acpi_aml_io.lock);
162 mutex_unlock(&acpi_aml_io.lock);
170 mutex_lock(&acpi_aml_io.lock);
172 __acpi_aml_readable(&acpi_aml_io.in_crc, ACPI_AML_IN_KERN);
173 mutex_unlock(&acpi_aml_io.lock);
181 mutex_lock(&acpi_aml_io.lock);
183 __acpi_aml_writable(&acpi_aml_io.out_crc, ACPI_AML_OUT_KERN);
184 mutex_unlock(&acpi_aml_io.lock);
192 mutex_lock(&acpi_aml_io.lock);
194 __acpi_aml_readable(&acpi_aml_io.out_crc, ACPI_AML_OUT_USER);
195 mutex_unlock(&acpi_aml_io.lock);
203 mutex_lock(&acpi_aml_io.lock);
205 __acpi_aml_writable(&acpi_aml_io.in_crc, ACPI_AML_IN_USER);
206 mutex_unlock(&acpi_aml_io.lock);
214 mutex_lock(&acpi_aml_io.lock);
223 acpi_aml_io.flags |= flag;
225 mutex_unlock(&acpi_aml_io.lock);
233 mutex_lock(&acpi_aml_io.lock);
242 acpi_aml_io.flags |= flag;
244 mutex_unlock(&acpi_aml_io.lock);
250 mutex_lock(&acpi_aml_io.lock);
251 acpi_aml_io.flags &= ~flag;
253 wake_up_interruptible(&acpi_aml_io.wait);
254 mutex_unlock(&acpi_aml_io.lock);
260 struct circ_buf *crc = &acpi_aml_io.out_crc;
282 struct circ_buf *crc = &acpi_aml_io.in_crc;
320 ret = wait_event_interruptible(acpi_aml_io.wait,
364 ret = wait_event_interruptible(acpi_aml_io.wait,
395 mutex_lock(&acpi_aml_io.lock);
396 if (acpi_aml_io.function) {
397 acpi_aml_io.usages++;
398 function = acpi_aml_io.function;
399 context = acpi_aml_io.context;
401 mutex_unlock(&acpi_aml_io.lock);
406 mutex_lock(&acpi_aml_io.lock);
407 acpi_aml_io.usages--;
409 acpi_aml_io.thread = NULL;
410 wake_up(&acpi_aml_io.wait);
412 mutex_unlock(&acpi_aml_io.lock);
429 mutex_lock(&acpi_aml_io.lock);
430 acpi_aml_io.function = function;
431 acpi_aml_io.context = context;
432 mutex_unlock(&acpi_aml_io.lock);
440 mutex_lock(&acpi_aml_io.lock);
441 acpi_aml_io.thread = t;
444 mutex_unlock(&acpi_aml_io.lock);
474 mutex_lock(&acpi_aml_io.lock);
479 if (acpi_aml_io.flags & ACPI_AML_CLOSED) {
500 if (!(acpi_aml_io.flags & ACPI_AML_OPENED)) {
507 mutex_unlock(&acpi_aml_io.lock);
518 mutex_lock(&acpi_aml_io.lock);
519 acpi_aml_io.flags |= ACPI_AML_OPENED;
520 acpi_aml_io.out_crc.head = acpi_aml_io.out_crc.tail = 0;
521 acpi_aml_io.in_crc.head = acpi_aml_io.in_crc.tail = 0;
524 acpi_aml_io.users++;
530 mutex_unlock(&acpi_aml_io.lock);
537 mutex_lock(&acpi_aml_io.lock);
538 acpi_aml_io.users--;
544 acpi_aml_io.flags |= ACPI_AML_CLOSED;
550 wake_up_interruptible(&acpi_aml_io.wait);
551 mutex_unlock(&acpi_aml_io.lock);
557 wait_event(acpi_aml_io.wait, !acpi_aml_busy());
565 wait_event(acpi_aml_io.wait, !acpi_aml_used());
568 mutex_lock(&acpi_aml_io.lock);
569 acpi_aml_io.flags &= ~ACPI_AML_OPENED;
571 if (acpi_aml_io.users == 0) {
573 acpi_aml_io.flags &= ~ACPI_AML_CLOSED;
575 mutex_unlock(&acpi_aml_io.lock);
582 struct circ_buf *crc = &acpi_aml_io.out_crc;
624 ret = wait_event_interruptible(acpi_aml_io.wait,
652 struct circ_buf *crc = &acpi_aml_io.in_crc;
694 ret = wait_event_interruptible(acpi_aml_io.wait,
722 poll_wait(file, &acpi_aml_io.wait, wait);
756 mutex_init(&acpi_aml_io.lock);
757 init_waitqueue_head(&acpi_aml_io.wait);
758 acpi_aml_io.out_crc.buf = acpi_aml_io.out_buf;
759 acpi_aml_io.in_crc.buf = acpi_aml_io.in_buf;