Lines Matching defs:pCmd
270 static void hpt_flush_done(PCOMMAND pCmd)
272 PVDEV vd = pCmd->target;
277 pCmd->target = vd;
278 pCmd->Result = RETURN_PENDING;
279 vdev_queue_cmd(pCmd);
283 *(int *)pCmd->priv = 1;
284 wakeup(pCmd);
292 PCOMMAND pCmd;
306 pCmd = ldm_alloc_cmds(vd->vbus, count);
308 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);
427 PCOMMAND pCmd = (PCOMMAND)arg;
428 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
430 KdPrint(("pCmd %p timeout", pCmd));
435 static void os_cmddone(PCOMMAND pCmd)
437 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
446 KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result));
453 PassthroughCmd *passthru = &pCmd->uCmd.Passthrough;
488 pCmd->Result,passthru->bFeaturesReg,passthru->bSectorCountReg,
495 switch(pCmd->Result) {
519 if (pCmd->flags.data_in) {
522 else if (pCmd->flags.data_out) {
529 ldm_free_cmds(pCmd);
533 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
542 PCOMMAND pCmd = (PCOMMAND)arg;
543 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
544 PSG psg = pCmd->psg;
547 HPT_ASSERT(pCmd->flags.physical_sg);
562 if (pCmd->flags.data_in) {
566 else if (pCmd->flags.data_out) {
572 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
573 ldm_queue_cmd(pCmd);
580 PCOMMAND pCmd;
643 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
644 if (!pCmd) {
650 passthru = &pCmd->uCmd.Passthrough;
720 pCmd->flags.data_in = 1;
730 pCmd->flags.data_out = 1;
733 pCmd->type = CMD_TYPE_PASSTHROUGH;
734 pCmd->priv = ext = cmdext_get(vbus_ext);
737 pCmd->target = vd;
738 pCmd->done = os_cmddone;
739 pCmd->buildsgl = os_buildsgl;
740 pCmd->psg = ext->psg;
744 ldm_queue_cmd(pCmd);
747 pCmd->flags.physical_sg = 1;
750 hpt_io_dmamap_callback, pCmd,
757 ldm_free_cmds(pCmd);
763 ldm_free_cmds(pCmd);
992 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
993 if(!pCmd){
1003 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
1004 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
1019 pCmd->uCmd.Ide.Lba = block;
1020 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
1025 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
1026 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
1047 pCmd->uCmd.Ide.Lba <<= sector_size_shift;
1048 pCmd->uCmd.Ide.nSectors <<= sector_size_shift;
1055 pCmd->flags.data_in = 1;
1060 pCmd->flags.data_out = 1;
1063 pCmd->priv = ext = cmdext_get(vbus_ext);
1066 pCmd->target = vd;
1067 pCmd->done = os_cmddone;
1068 pCmd->buildsgl = os_buildsgl;
1069 pCmd->psg = ext->psg;
1070 pCmd->flags.physical_sg = 1;
1073 hpt_io_dmamap_callback, pCmd,
1080 ldm_free_cmds(pCmd);