• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/hpt27xx/

Lines Matching refs:pCmd

271 static void hpt_flush_done(PCOMMAND pCmd)
273 PVDEV vd = pCmd->target;
278 pCmd->target = vd;
279 pCmd->Result = RETURN_PENDING;
280 vdev_queue_cmd(pCmd);
284 *(int *)pCmd->priv = 1;
285 wakeup(pCmd);
293 PCOMMAND pCmd;
307 pCmd = ldm_alloc_cmds(vd->vbus, count);
309 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);
432 PCOMMAND pCmd = (PCOMMAND)arg;
433 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
435 KdPrint(("pCmd %p timeout", pCmd));
440 static void os_cmddone(PCOMMAND pCmd)
442 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
445 KdPrint(("<8>os_cmddone(%p, %d)", pCmd, pCmd->Result));
449 untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch);
451 switch(pCmd->Result) {
475 if (pCmd->flags.data_in) {
478 else if (pCmd->flags.data_out) {
485 ldm_free_cmds(pCmd);
489 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
491 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
533 PCOMMAND pCmd = (PCOMMAND)arg;
534 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
535 PSG psg = pCmd->psg;
538 HPT_ASSERT(pCmd->flags.physical_sg);
553 if (pCmd->flags.data_in) {
557 else if (pCmd->flags.data_out) {
563 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
565 ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT);
567 ldm_queue_cmd(pCmd);
574 PCOMMAND pCmd;
743 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
744 if(!pCmd){
754 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
755 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
770 pCmd->uCmd.Ide.Lba = block;
771 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
776 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
777 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
798 pCmd->uCmd.Ide.Lba <<= sector_size_shift;
799 pCmd->uCmd.Ide.nSectors <<= sector_size_shift;
806 pCmd->flags.data_in = 1;
811 pCmd->flags.data_out = 1;
814 pCmd->priv = ext = cmdext_get(vbus_ext);
817 pCmd->target = vd;
818 pCmd->done = os_cmddone;
819 pCmd->buildsgl = os_buildsgl;
821 pCmd->psg = ext->psg;
828 pCmd->flags.physical_sg = 1;
831 pCmd->psg[idx].addr.bus = sgList[idx].ds_addr;
832 pCmd->psg[idx].size = sgList[idx].ds_len;
833 pCmd->psg[idx].eot = (idx==ccb->csio.sglist_cnt-1)? 1 : 0;
836 ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT);
837 ldm_queue_cmd(pCmd);
843 pCmd->flags.physical_sg = 1;
847 hpt_io_dmamap_callback, pCmd,
854 hpt_io_dmamap_callback, pCmd,
862 ldm_free_cmds(pCmd);