Lines Matching defs:dbq
491 struct doorbell_queue *dbq;
497 list_for_each_entry(dbq, &db_list, list) {
498 if (dbq->head != nextp(dbq->tail)) {
499 dbq->q[dbq->tail] = doorbell;
502 * the spinlock for dbq.
505 dbq->tail = nextp(dbq->tail);
506 wake_up_interruptible(&dbq->wait);
572 struct doorbell_queue *dbq = filp->private_data;
576 spin_lock_irqsave(&dbq->lock, flags);
578 poll_wait(filp, &dbq->wait, p);
579 mask = (dbq->head == dbq->tail) ? 0 : (EPOLLIN | EPOLLRDNORM);
581 spin_unlock_irqrestore(&dbq->lock, flags);
596 struct doorbell_queue *dbq = filp->private_data;
605 spin_lock_irqsave(&dbq->lock, flags);
612 if (dbq->head == dbq->tail) {
613 spin_unlock_irqrestore(&dbq->lock, flags);
618 if (wait_event_interruptible(dbq->wait,
619 dbq->head != dbq->tail))
637 dbell = dbq->q[dbq->head];
638 dbq->head = nextp(dbq->head);
640 spin_unlock_irqrestore(&dbq->lock, flags);
660 struct doorbell_queue *dbq;
664 dbq = kzalloc(sizeof(struct doorbell_queue), GFP_KERNEL);
665 if (!dbq) {
670 spin_lock_init(&dbq->lock);
671 init_waitqueue_head(&dbq->wait);
674 list_add(&dbq->list, &db_list);
677 filp->private_data = dbq;
687 struct doorbell_queue *dbq = filp->private_data;
693 list_del(&dbq->list);
696 kfree(dbq);