Lines Matching refs:be
138 struct blockif_elem *be, *tbe; in blockif_enqueue() local
142 be = TAILQ_FIRST(&bc->bc_freeq); in blockif_enqueue()
143 assert(be != NULL); in blockif_enqueue()
144 assert(be->be_status == BST_FREE); in blockif_enqueue()
145 TAILQ_REMOVE(&bc->bc_freeq, be, be_link); in blockif_enqueue()
146 be->be_req = breq; in blockif_enqueue()
147 be->be_op = op; in blockif_enqueue()
159 be->be_block = off; in blockif_enqueue()
171 be->be_status = BST_PEND; in blockif_enqueue()
173 be->be_status = BST_BLOCK; in blockif_enqueue()
174 TAILQ_INSERT_TAIL(&bc->bc_pendq, be, be_link); in blockif_enqueue()
175 return (be->be_status == BST_PEND); in blockif_enqueue()
181 struct blockif_elem *be; in blockif_dequeue() local
183 TAILQ_FOREACH(be, &bc->bc_pendq, be_link) { in blockif_dequeue()
184 if (be->be_status == BST_PEND) in blockif_dequeue()
186 assert(be->be_status == BST_BLOCK); in blockif_dequeue()
188 if (be == NULL) in blockif_dequeue()
190 TAILQ_REMOVE(&bc->bc_pendq, be, be_link); in blockif_dequeue()
191 be->be_status = BST_BUSY; in blockif_dequeue()
192 be->be_tid = t; in blockif_dequeue()
193 TAILQ_INSERT_TAIL(&bc->bc_busyq, be, be_link); in blockif_dequeue()
194 *bep = be; in blockif_dequeue()
199 blockif_complete(struct blockif_ctxt *bc, struct blockif_elem *be) in blockif_complete() argument
203 if (be->be_status == BST_DONE || be->be_status == BST_BUSY) in blockif_complete()
204 TAILQ_REMOVE(&bc->bc_busyq, be, be_link); in blockif_complete()
206 TAILQ_REMOVE(&bc->bc_pendq, be, be_link); in blockif_complete()
208 if (tbe->be_req->br_offset == be->be_block) in blockif_complete()
211 be->be_tid = 0; in blockif_complete()
212 be->be_status = BST_FREE; in blockif_complete()
213 be->be_req = NULL; in blockif_complete()
214 TAILQ_INSERT_TAIL(&bc->bc_freeq, be, be_link); in blockif_complete()
230 blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) in blockif_proc() argument
239 br = be->be_req; in blockif_proc()
245 switch (be->be_op) { in blockif_proc()
360 be->be_status = BST_DONE; in blockif_proc()
375 struct blockif_elem *be; in blockif_thr() local
388 while (blockif_dequeue(bc, t, &be)) { in blockif_thr()
390 blockif_proc(bc, be, buf); in blockif_thr()
392 blockif_complete(bc, be); in blockif_thr()
809 struct blockif_elem *be; in blockif_cancel() local
819 TAILQ_FOREACH(be, &bc->bc_pendq, be_link) { in blockif_cancel()
820 if (be->be_req == breq) in blockif_cancel()
823 if (be != NULL) { in blockif_cancel()
827 blockif_complete(bc, be); in blockif_cancel()
836 TAILQ_FOREACH(be, &bc->bc_busyq, be_link) { in blockif_cancel()
837 if (be->be_req == breq) in blockif_cancel()
840 if (be == NULL) { in blockif_cancel()
852 while (be->be_status == BST_BUSY) { in blockif_cancel()
867 pthread_kill(be->be_tid, SIGCONT); in blockif_cancel()