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

Lines Matching refs:pCmd

274 static void hpt_flush_done(PCOMMAND pCmd)
276 PVDEV vd = pCmd->target;
281 pCmd->target = vd;
282 pCmd->Result = RETURN_PENDING;
283 vdev_queue_cmd(pCmd);
287 *(int *)pCmd->priv = 1;
288 wakeup(pCmd);
296 PCOMMAND pCmd;
310 pCmd = ldm_alloc_cmds(vd->vbus, count);
312 if (!pCmd) {
316 pCmd->type = CMD_TYPE_FLUSH;
317 pCmd->flags.hard_flush = 1;
318 pCmd->target = vd;
319 pCmd->done = hpt_flush_done;
321 pCmd->priv = &done;
323 ldm_queue_cmd(pCmd);
326 while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) {
331 KdPrint(("flush result %d", pCmd->Result));
333 if (pCmd->Result!=RETURN_SUCCESS)
336 ldm_free_cmds(pCmd);
431 PCOMMAND pCmd = (PCOMMAND)arg;
432 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
434 KdPrint(("pCmd %p timeout", pCmd));
439 static void os_cmddone(PCOMMAND pCmd)
441 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
444 KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result));
448 switch(pCmd->Result) {
472 if (pCmd->flags.data_in) {
475 else if (pCmd->flags.data_out) {
482 ldm_free_cmds(pCmd);
486 static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical)
488 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
505 PCOMMAND pCmd = (PCOMMAND)arg;
506 POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv;
507 PSG psg = pCmd->psg;
510 HPT_ASSERT(pCmd->flags.physical_sg);
525 if (pCmd->flags.data_in) {
529 else if (pCmd->flags.data_out) {
534 callout_reset(&ext->timeout, HPT_OSM_TIMEOUT, hpt_timeout, pCmd);
535 ldm_queue_cmd(pCmd);
542 PCOMMAND pCmd;
662 pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request);
663 if(!pCmd){
673 pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3];
674 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4];
688 pCmd->uCmd.Ide.Lba = block;
689 pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8);
694 pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24);
695 pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8);
703 pCmd->flags.data_in = 1;
708 pCmd->flags.data_out = 1;
711 pCmd->priv = ext = cmdext_get(vbus_ext);
714 pCmd->target = vd;
715 pCmd->done = os_cmddone;
716 pCmd->buildsgl = os_buildsgl;
717 pCmd->psg = ext->psg;
718 pCmd->flags.physical_sg = 1;
722 hpt_io_dmamap_callback, pCmd,
729 ldm_free_cmds(pCmd);