Lines Matching full:request
187 /* Request polled shutdown. */
219 struct pst_request *request;
228 if (!(request = malloc(sizeof(struct pst_request),
231 biofinish(request->bp, NULL, ENOMEM);
235 callout_init_mtx(&request->timeout, &psc->iop->mtx, 0);
237 request->psc = psc;
238 request->mfa = mfa;
239 request->bp = bp;
240 if ((error = pst_rw(request)) != 0) {
241 biofinish(request->bp, NULL, error);
242 iop_free_mfa(request->psc->iop, request->mfa);
244 free(request, M_PSTRAID);
253 struct pst_request *request =
255 struct pst_softc *psc = request->psc;
257 callout_stop(&request->timeout);
258 request->bp->bio_resid = request->bp->bio_bcount - reply->donecount;
259 biofinish(request->bp, NULL, reply->status ? EIO : 0);
260 free(request, M_PSTRAID);
267 pst_rw(struct pst_request *request)
273 (request->psc->iop->ibase + request->mfa);
278 msg->target_address = request->psc->lct->local_tid;
280 switch (request->bp->bio_cmd) {
294 printf("pst: unknown command type 0x%02x\n", request->bp->bio_cmd);
298 msg->transaction_context = (u_int32_t)request;
300 msg->bytecount = request->bp->bio_bcount;
301 msg->lba = ((u_int64_t)request->bp->bio_pblkno) * (DEV_BSIZE * 1LL);
303 if (!iop_create_sgl((struct i2o_basic_message *)msg, request->bp->bio_data,
304 request->bp->bio_bcount, sgl_flag))
307 request->psc->iop->reg->iqueue = request->mfa;
310 callout_reset(&request->timeout, 10 * hz, pst_timeout, request);
317 struct pst_request *request;
320 request = arg;
322 request->mfa, request->bp->bio_cmd);
323 mtx_assert(&request->psc->iop->mtx, MA_OWNED);
324 iop_free_mfa(request->psc->iop, request->mfa);
325 if ((request->mfa = iop_get_mfa(request->psc->iop)) == 0xffffffff) {
327 biofinish(request->bp, NULL, EIO);
328 request->psc->iop->outstanding--;
331 if ((error = pst_rw(request)) != 0) {
332 iop_free_mfa(request->psc->iop, request->mfa);
333 biofinish(request->bp, NULL, error);
334 request->psc->iop->outstanding--;