Lines Matching defs:pCmd

266 static void hpt_flush_done(PCOMMAND pCmd)
268 PVDEV vd = pCmd->target;
273 pCmd->target = vd;
274 pCmd->Result = RETURN_PENDING;
275 vdev_queue_cmd(pCmd);
279 *(int *)pCmd->priv = 1;
280 wakeup(pCmd);
288 PCOMMAND pCmd;
302 pCmd = ldm_alloc_cmds(vd->vbus, count);
304 if (!pCmd) {
308 pCmd->type = CMD_TYPE_FLUSH;
309 pCmd->flags.hard_flush = 1;
310 pCmd->target = vd;
311 pCmd->done = hpt_flush_done;
313 pCmd->priv = &done;
315 ldm_queue_cmd(pCmd);
318 while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) {
323 KdPrint(("flush result %d", pCmd->Result));
325 if (pCmd->Result!=RETURN_SUCCESS)
328 ldm_free_cmds(pCmd);
423 PCOMMAND pCmd = (PCOMMAND)arg;
424 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
426 KdPrint(("pCmd %p timeout", pCmd));
431 static void os_cmddone(PCOMMAND pCmd)
433 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
442 KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result));
449 PassthroughCmd *passthru = &pCmd->uCmd.Passthrough;
484 pCmd->Result,passthru->bFeaturesReg,passthru->bSectorCountReg,
491 switch(pCmd->Result) {
515 if (pCmd->flags.data_in) {
518 else if (pCmd->flags.data_out) {
525 ldm_free_cmds(pCmd);
529 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
538 PCOMMAND pCmd = (PCOMMAND)arg;
539 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
540 PSG psg = pCmd->psg;
543 HPT_ASSERT(pCmd->flags.physical_sg);
558 if (pCmd->flags.data_in) {
562 else if (pCmd->flags.data_out) {
568 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
569 ldm_queue_cmd(pCmd);
576 PCOMMAND pCmd;
639 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
640 if (!pCmd) {
646 passthru = &pCmd->uCmd.Passthrough;
716 pCmd->flags.data_in = 1;
726 pCmd->flags.data_out = 1;
729 pCmd->type = CMD_TYPE_PASSTHROUGH;
730 pCmd->priv = ext = cmdext_get(vbus_ext);
733 pCmd->target = vd;
734 pCmd->done = os_cmddone;
735 pCmd->buildsgl = os_buildsgl;
736 pCmd->psg = ext->psg;
740 ldm_queue_cmd(pCmd);
743 pCmd->flags.physical_sg = 1;
746 hpt_io_dmamap_callback, pCmd,
753 ldm_free_cmds(pCmd);
759 ldm_free_cmds(pCmd);
988 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
989 if(!pCmd){
999 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
1000 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
1015 pCmd->uCmd.Ide.Lba = block;
1016 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
1021 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
1022 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
1043 pCmd->uCmd.Ide.Lba <<= sector_size_shift;
1044 pCmd->uCmd.Ide.nSectors <<= sector_size_shift;
1051 pCmd->flags.data_in = 1;
1056 pCmd->flags.data_out = 1;
1059 pCmd->priv = ext = cmdext_get(vbus_ext);
1062 pCmd->target = vd;
1063 pCmd->done = os_cmddone;
1064 pCmd->buildsgl = os_buildsgl;
1065 pCmd->psg = ext->psg;
1066 pCmd->flags.physical_sg = 1;
1069 hpt_io_dmamap_callback, pCmd,
1076 ldm_free_cmds(pCmd);