Lines Matching defs:pCmd

269 static void hpt_flush_done(PCOMMAND pCmd)
271 PVDEV vd = pCmd->target;
276 pCmd->target = vd;
277 pCmd->Result = RETURN_PENDING;
278 vdev_queue_cmd(pCmd);
282 *(int *)pCmd->priv = 1;
283 wakeup(pCmd);
291 PCOMMAND pCmd;
305 pCmd = ldm_alloc_cmds(vd->vbus, count);
307 if (!pCmd) {
312 pCmd->type = CMD_TYPE_FLUSH;
313 pCmd->flags.hard_flush = 1;
314 pCmd->target = vd;
315 pCmd->done = hpt_flush_done;
317 pCmd->priv = &done;
319 ldm_queue_cmd(pCmd);
322 while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) {
327 KdPrint(("flush result %d", pCmd->Result));
329 if (pCmd->Result!=RETURN_SUCCESS)
332 ldm_free_cmds(pCmd);
430 PCOMMAND pCmd = (PCOMMAND)arg;
431 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
433 KdPrint(("pCmd %p timeout", pCmd));
438 static void os_cmddone(PCOMMAND pCmd)
440 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
443 KdPrint(("<8>os_cmddone(%p, %d)", pCmd, pCmd->Result));
447 untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch);
449 switch(pCmd->Result) {
473 if (pCmd->flags.data_in) {
476 else if (pCmd->flags.data_out) {
483 ldm_free_cmds(pCmd);
487 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
489 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
531 PCOMMAND pCmd = (PCOMMAND)arg;
532 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
533 PSG psg = pCmd->psg;
536 HPT_ASSERT(pCmd->flags.physical_sg);
551 if (pCmd->flags.data_in) {
555 else if (pCmd->flags.data_out) {
561 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
563 ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT);
565 ldm_queue_cmd(pCmd);
572 PCOMMAND pCmd;
741 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
742 if(!pCmd){
752 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
753 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
768 pCmd->uCmd.Ide.Lba = block;
769 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
774 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
775 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
796 pCmd->uCmd.Ide.Lba <<= sector_size_shift;
797 pCmd->uCmd.Ide.nSectors <<= sector_size_shift;
804 pCmd->flags.data_in = 1;
809 pCmd->flags.data_out = 1;
812 pCmd->priv = ext = cmdext_get(vbus_ext);
815 pCmd->target = vd;
816 pCmd->done = os_cmddone;
817 pCmd->buildsgl = os_buildsgl;
819 pCmd->psg = ext->psg;
826 pCmd->flags.physical_sg = 1;
829 pCmd->psg[idx].addr.bus = sgList[idx].ds_addr;
830 pCmd->psg[idx].size = sgList[idx].ds_len;
831 pCmd->psg[idx].eot = (idx==ccb->csio.sglist_cnt-1)? 1 : 0;
834 ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT);
835 ldm_queue_cmd(pCmd);
841 pCmd->flags.physical_sg = 1;
845 hpt_io_dmamap_callback, pCmd,
852 hpt_io_dmamap_callback, pCmd,
860 ldm_free_cmds(pCmd);