Lines Matching refs:queue

29 void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node)  in rt_wqueue_add()  argument
33 level = rt_spin_lock_irqsave(&(queue->spinlock)); in rt_wqueue_add()
34 node->wqueue = queue; in rt_wqueue_add()
35 rt_list_insert_before(&(queue->waiting_list), &(node->list)); in rt_wqueue_add()
36 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in rt_wqueue_add()
80 void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key) in rt_wqueue_wakeup() argument
89 queue_list = &(queue->waiting_list); in rt_wqueue_wakeup()
91 level = rt_spin_lock_irqsave(&(queue->spinlock)); in rt_wqueue_wakeup()
93 queue->flag = RT_WQ_FLAG_WAKEUP; in rt_wqueue_wakeup()
118 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in rt_wqueue_wakeup()
136 void rt_wqueue_wakeup_all(rt_wqueue_t *queue, void *key) in rt_wqueue_wakeup_all() argument
145 queue_list = &(queue->waiting_list); in rt_wqueue_wakeup_all()
147 level = rt_spin_lock_irqsave(&(queue->spinlock)); in rt_wqueue_wakeup_all()
149 queue->flag = RT_WQ_FLAG_WAKEUP; in rt_wqueue_wakeup_all()
180 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in rt_wqueue_wakeup_all()
199 static int _rt_wqueue_wait(rt_wqueue_t *queue, int condition, int msec, int suspend_flag) in _rt_wqueue_wait() argument
219 __wait.wqueue = queue; in _rt_wqueue_wait()
222 level = rt_spin_lock_irqsave(&(queue->spinlock)); in _rt_wqueue_wait()
227 if (queue->flag == RT_WQ_FLAG_WAKEUP) in _rt_wqueue_wait()
236 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in _rt_wqueue_wait()
241 rt_list_insert_before(&(queue->waiting_list), &(__wait.list)); in _rt_wqueue_wait()
252 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in _rt_wqueue_wait()
256 level = rt_spin_lock_irqsave(&(queue->spinlock)); in _rt_wqueue_wait()
259 queue->flag = RT_WQ_FLAG_CLEAN; in _rt_wqueue_wait()
260 rt_spin_unlock_irqrestore(&(queue->spinlock), level); in _rt_wqueue_wait()
267 int rt_wqueue_wait(rt_wqueue_t *queue, int condition, int msec) in rt_wqueue_wait() argument
269 return _rt_wqueue_wait(queue, condition, msec, RT_UNINTERRUPTIBLE); in rt_wqueue_wait()
272 int rt_wqueue_wait_killable(rt_wqueue_t *queue, int condition, int msec) in rt_wqueue_wait_killable() argument
274 return _rt_wqueue_wait(queue, condition, msec, RT_KILLABLE); in rt_wqueue_wait_killable()
277 int rt_wqueue_wait_interruptible(rt_wqueue_t *queue, int condition, int msec) in rt_wqueue_wait_interruptible() argument
279 return _rt_wqueue_wait(queue, condition, msec, RT_INTERRUPTIBLE); in rt_wqueue_wait_interruptible()