• Home
  • Raw
  • Download

Lines Matching refs:as

1167 static int queue_empty(struct apm_user *as)  in queue_empty()  argument
1169 return as->event_head == as->event_tail; in queue_empty()
1172 static apm_event_t get_queued_event(struct apm_user *as) in get_queued_event() argument
1174 if (++as->event_tail >= APM_MAX_EVENTS) in get_queued_event()
1175 as->event_tail = 0; in get_queued_event()
1176 return as->events[as->event_tail]; in get_queued_event()
1181 struct apm_user *as; in queue_event() local
1186 for (as = user_list; as != NULL; as = as->next) { in queue_event()
1187 if ((as == sender) || (!as->reader)) in queue_event()
1189 if (++as->event_head >= APM_MAX_EVENTS) in queue_event()
1190 as->event_head = 0; in queue_event()
1192 if (as->event_head == as->event_tail) { in queue_event()
1197 if (++as->event_tail >= APM_MAX_EVENTS) in queue_event()
1198 as->event_tail = 0; in queue_event()
1200 as->events[as->event_head] = event; in queue_event()
1201 if (!as->suser || !as->writer) in queue_event()
1206 as->suspends_pending++; in queue_event()
1212 as->standbys_pending++; in queue_event()
1242 struct apm_user *as; in suspend() local
1274 for (as = user_list; as != NULL; as = as->next) { in suspend()
1275 as->suspend_wait = 0; in suspend()
1276 as->suspend_result = err; in suspend()
1456 static int check_apm_user(struct apm_user *as, const char *func) in check_apm_user() argument
1458 if (as == NULL || as->magic != APM_BIOS_MAGIC) { in check_apm_user()
1467 struct apm_user *as; in do_read() local
1471 as = fp->private_data; in do_read()
1472 if (check_apm_user(as, "read")) in do_read()
1476 if ((queue_empty(as)) && (fp->f_flags & O_NONBLOCK)) in do_read()
1478 wait_event_interruptible(apm_waitqueue, !queue_empty(as)); in do_read()
1480 while ((i >= sizeof(event)) && !queue_empty(as)) { in do_read()
1481 event = get_queued_event(as); in do_read()
1490 as->suspends_read++; in do_read()
1495 as->standbys_read++; in do_read()
1510 struct apm_user *as; in do_poll() local
1512 as = fp->private_data; in do_poll()
1513 if (check_apm_user(as, "poll")) in do_poll()
1516 if (!queue_empty(as)) in do_poll()
1523 struct apm_user *as; in do_ioctl() local
1526 as = filp->private_data; in do_ioctl()
1527 if (check_apm_user(as, "ioctl")) in do_ioctl()
1529 if (!as->suser || !as->writer) in do_ioctl()
1534 if (as->standbys_read > 0) { in do_ioctl()
1535 as->standbys_read--; in do_ioctl()
1536 as->standbys_pending--; in do_ioctl()
1539 queue_event(APM_USER_STANDBY, as); in do_ioctl()
1546 if (as->suspends_read > 0) { in do_ioctl()
1547 as->suspends_read--; in do_ioctl()
1548 as->suspends_pending--; in do_ioctl()
1551 queue_event(APM_USER_SUSPEND, as); in do_ioctl()
1556 as->suspend_wait = 1; in do_ioctl()
1559 as->suspend_wait == 0); in do_ioctl()
1560 ret = as->suspend_result; in do_ioctl()
1571 struct apm_user *as; in do_release() local
1573 as = filp->private_data; in do_release()
1574 if (check_apm_user(as, "release")) in do_release()
1577 if (as->standbys_pending > 0) { in do_release()
1578 standbys_pending -= as->standbys_pending; in do_release()
1582 if (as->suspends_pending > 0) { in do_release()
1583 suspends_pending -= as->suspends_pending; in do_release()
1588 if (user_list == as) in do_release()
1589 user_list = as->next; in do_release()
1594 (as1 != NULL) && (as1->next != as); in do_release()
1600 as1->next = as->next; in do_release()
1603 kfree(as); in do_release()
1609 struct apm_user *as; in do_open() local
1611 as = kmalloc(sizeof(*as), GFP_KERNEL); in do_open()
1612 if (as == NULL) in do_open()
1615 as->magic = APM_BIOS_MAGIC; in do_open()
1616 as->event_tail = as->event_head = 0; in do_open()
1617 as->suspends_pending = as->standbys_pending = 0; in do_open()
1618 as->suspends_read = as->standbys_read = 0; in do_open()
1626 as->suser = capable(CAP_SYS_ADMIN); in do_open()
1627 as->writer = (filp->f_mode & FMODE_WRITE) == FMODE_WRITE; in do_open()
1628 as->reader = (filp->f_mode & FMODE_READ) == FMODE_READ; in do_open()
1630 as->next = user_list; in do_open()
1631 user_list = as; in do_open()
1633 filp->private_data = as; in do_open()