Lines Matching defs:pCmd

272 static void hpt_flush_done(PCOMMAND pCmd)
274 PVDEV vd = pCmd->target;
279 pCmd->target = vd;
280 pCmd->Result = RETURN_PENDING;
281 vdev_queue_cmd(pCmd);
285 *(int *)pCmd->priv = 1;
286 wakeup(pCmd);
294 PCOMMAND pCmd;
308 pCmd = ldm_alloc_cmds(vd->vbus, count);
310 if (!pCmd) {
314 pCmd->type = CMD_TYPE_FLUSH;
315 pCmd->flags.hard_flush = 1;
316 pCmd->target = vd;
317 pCmd->done = hpt_flush_done;
319 pCmd->priv = &done;
321 ldm_queue_cmd(pCmd);
324 while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) {
329 KdPrint(("flush result %d", pCmd->Result));
331 if (pCmd->Result!=RETURN_SUCCESS)
334 ldm_free_cmds(pCmd);
429 PCOMMAND pCmd = (PCOMMAND)arg;
430 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
432 KdPrint(("pCmd %p timeout", pCmd));
437 static void os_cmddone(PCOMMAND pCmd)
439 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
442 KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result));
446 switch(pCmd->Result) {
470 if (pCmd->flags.data_in) {
473 else if (pCmd->flags.data_out) {
480 ldm_free_cmds(pCmd);
484 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
486 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
503 PCOMMAND pCmd = (PCOMMAND)arg;
504 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
505 PSG psg = pCmd->psg;
508 HPT_ASSERT(pCmd->flags.physical_sg);
523 if (pCmd->flags.data_in) {
527 else if (pCmd->flags.data_out) {
532 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
533 ldm_queue_cmd(pCmd);
540 PCOMMAND pCmd;
660 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
661 if(!pCmd){
671 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
672 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
686 pCmd->uCmd.Ide.Lba = block;
687 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
692 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
693 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
701 pCmd->flags.data_in = 1;
706 pCmd->flags.data_out = 1;
709 pCmd->priv = ext = cmdext_get(vbus_ext);
712 pCmd->target = vd;
713 pCmd->done = os_cmddone;
714 pCmd->buildsgl = os_buildsgl;
715 pCmd->psg = ext->psg;
716 pCmd->flags.physical_sg = 1;
720 hpt_io_dmamap_callback, pCmd,
727 ldm_free_cmds(pCmd);