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) {
309 pCmd->type = CMD_TYPE_FLUSH;
310 pCmd->flags.hard_flush = 1;
311 pCmd->target = vd;
312 pCmd->done = hpt_flush_done;
314 pCmd->priv = &done;
316 ldm_queue_cmd(pCmd);
319 while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) {
324 KdPrint(("flush result %d", pCmd->Result));
326 if (pCmd->Result!=RETURN_SUCCESS)
329 ldm_free_cmds(pCmd);
425 PCOMMAND pCmd = (PCOMMAND)arg;
426 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
428 KdPrint(("pCmd %p timeout", pCmd));
433 static void os_cmddone(PCOMMAND pCmd)
435 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
438 KdPrint(("<8>os_cmddone(%p, %d)", pCmd, pCmd->Result));
440 switch(pCmd->Result) {
464 if (pCmd->flags.data_in) {
467 else if (pCmd->flags.data_out) {
474 ldm_free_cmds(pCmd);
478 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
480 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
496 PCOMMAND pCmd = (PCOMMAND)arg;
497 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
498 PSG psg = pCmd->psg;
501 HPT_ASSERT(pCmd->flags.physical_sg);
516 if (pCmd->flags.data_in) {
520 else if (pCmd->flags.data_out) {
525 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
526 ldm_queue_cmd(pCmd);
533 PCOMMAND pCmd;
703 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
704 if(!pCmd){
714 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
715 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
730 pCmd->uCmd.Ide.Lba = block;
731 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
736 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
737 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
758 pCmd->uCmd.Ide.Lba <<= sector_size_shift;
759 pCmd->uCmd.Ide.nSectors <<= sector_size_shift;
766 pCmd->flags.data_in = 1;
771 pCmd->flags.data_out = 1;
774 pCmd->priv = ext = cmdext_get(vbus_ext);
777 pCmd->target = vd;
778 pCmd->done = os_cmddone;
779 pCmd->buildsgl = os_buildsgl;
781 pCmd->psg = ext->psg;
782 pCmd->flags.physical_sg = 1;
785 hpt_io_dmamap_callback, pCmd,
792 ldm_free_cmds(pCmd);