Lines Matching full:si
83 rr_append(struct rr_queue *q, struct rr_si *si) in rr_append() argument
89 if (si->head == NULL) in rr_append()
90 si->head = q; in rr_append()
92 si->tail->qnext = q; in rr_append()
93 si->tail = q; /* advance the tail pointer */ in rr_append()
94 q->qnext = si->head; /* make it circular */ in rr_append()
99 rr_remove_head(struct rr_si *si) in rr_remove_head() argument
101 if (si->head == NULL) in rr_remove_head()
103 si->head->status = 0; in rr_remove_head()
105 if (si->head == si->tail) { in rr_remove_head()
106 si->head = si->tail = NULL; in rr_remove_head()
110 si->head = si->head->qnext; in rr_remove_head()
111 si->tail->qnext = si->head; in rr_remove_head()
118 remove_queue_q(struct rr_queue *q, struct rr_si *si) in remove_queue_q() argument
124 if (q == si->head) { in remove_queue_q()
125 rr_remove_head(si); in remove_queue_q()
129 for (prev = si->head; prev; prev = prev->qnext) { in remove_queue_q()
133 if (q == si->tail) in remove_queue_q()
134 si->tail = prev; in remove_queue_q()
141 next_pointer(struct rr_si *si) in next_pointer() argument
143 if (si->head == NULL) in next_pointer()
146 si->head = si->head->qnext; in next_pointer()
147 si->tail = si->tail->qnext; in next_pointer()
153 struct rr_si *si; in rr_enqueue() local
164 si = (struct rr_si *)(_si + 1); in rr_enqueue()
171 rr_append(rrq, si); in rr_enqueue()
180 struct rr_si *si = (struct rr_si *)(_si + 1); in rr_dequeue() local
184 while ( (rrq = si->head) ) { in rr_dequeue()
188 rr_remove_head(si); in rr_dequeue()
197 next_pointer(si); in rr_dequeue()
225 struct rr_si *si = (struct rr_si *)(_si + 1); in rr_new_sched() local
228 si->head = si->tail = NULL; in rr_new_sched()
287 struct rr_si *si = (struct rr_si *)(_q->_si + 1); in rr_free_queue() local
288 remove_queue_q(q, si); in rr_free_queue()