Lines Matching refs:iocb

2222 	IOCB		*iocb;
2231 iocb = (IOCB *) & sbp->iocbq;
2344 iocb->un.genreq64.bdl.bdeFlags = BUFF_TYPE_BDL;
2345 iocb->un.genreq64.bdl.addrHigh = PADDR_HI(bp);
2346 iocb->un.genreq64.bdl.addrLow = PADDR_LO(bp);
2347 iocb->un.genreq64.bdl.bdeSize = cookie_cnt * sizeof (ULP_BDE64);
2349 iocb->ULPBDECOUNT = 1;
2350 iocb->ULPLE = 1;
2367 IOCB *iocb;
2372 iocb = (IOCB *) & sbp->iocbq;
2397 iocb->unsli3.ext_iocb.ebde_count = 0;
2407 iocb->un.fcpi64.bdl.addrHigh =
2409 iocb->un.fcpi64.bdl.addrLow =
2411 iocb->un.fcpi64.bdl.bdeSize = pkt->pkt_cmdlen;
2412 iocb->un.fcpi64.bdl.bdeFlags = 0;
2416 iocb->unsli3.ext_iocb.ebde1.addrHigh =
2418 iocb->unsli3.ext_iocb.ebde1.addrLow =
2420 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeSize =
2422 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeFlags = 0;
2423 iocb->unsli3.ext_iocb.ebde_count = 1;
2428 (ULP_BDE64 *)&iocb->unsli3.ext_iocb.
2443 iocb->unsli3.ext_iocb.ebde_count +=
2459 iocb->un.xseq64.bdl.addrHigh =
2461 iocb->un.xseq64.bdl.addrLow =
2463 iocb->un.xseq64.bdl.bdeSize = pkt->pkt_cmdlen;
2464 iocb->un.xseq64.bdl.bdeFlags = 0;
2471 iocb->un.elsreq64.bdl.addrHigh =
2473 iocb->un.elsreq64.bdl.addrLow =
2475 iocb->un.elsreq64.bdl.bdeSize = pkt->pkt_cmdlen;
2476 iocb->un.elsreq64.bdl.bdeFlags = 0;
2480 iocb->unsli3.ext_iocb.ebde1.addrHigh =
2482 iocb->unsli3.ext_iocb.ebde1.addrLow =
2484 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeSize =
2486 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeFlags =
2488 iocb->unsli3.ext_iocb.ebde_count = 1;
2496 iocb->un.genreq64.bdl.addrHigh =
2498 iocb->un.genreq64.bdl.addrLow =
2500 iocb->un.genreq64.bdl.bdeSize = pkt->pkt_cmdlen;
2501 iocb->un.genreq64.bdl.bdeFlags = 0;
2506 iocb->unsli3.ext_iocb.ebde1.addrHigh =
2508 iocb->unsli3.ext_iocb.ebde1.addrLow =
2510 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeSize =
2512 iocb->unsli3.ext_iocb.ebde1.tus.f.bdeFlags =
2514 iocb->unsli3.ext_iocb.ebde_count = 1;
2520 iocb->ULPBDECOUNT = 0;
2521 iocb->ULPLE = 0;
2540 IOCB *iocb;
2549 iocb = (IOCB *)&sbp->iocbq;
2553 iocb->un.fcpt64.bdl.addrHigh = 0;
2554 iocb->un.fcpt64.bdl.addrLow = 0;
2555 iocb->un.fcpt64.bdl.bdeSize = 0;
2556 iocb->un.fcpt64.bdl.bdeFlags = 0;
2557 iocb->un.fcpt64.fcpt_Offset = 0;
2558 iocb->un.fcpt64.fcpt_Length = 0;
2559 iocb->ULPBDECOUNT = 0;
2560 iocb->ULPLE = 1;
2576 iocb->un.fcpt64.bdl.addrHigh = 0;
2577 iocb->un.fcpt64.bdl.addrLow = 0;
2578 iocb->un.fcpt64.bdl.bdeSize = 0;
2579 iocb->un.fcpt64.bdl.bdeFlags = 0;
2580 iocb->un.fcpt64.fcpt_Offset = 0;
2581 iocb->un.fcpt64.fcpt_Length = 0;
2582 iocb->ULPBDECOUNT = 0;
2583 iocb->ULPLE = 1;
2617 iocb->un.fcpt64.bdl.addrHigh = PADDR_HI(bp);
2618 iocb->un.fcpt64.bdl.addrLow = PADDR_LO(bp);
2619 iocb->un.fcpt64.bdl.bdeSize = sgllen * sizeof (ULP_BDE64);
2620 iocb->un.fcpt64.bdl.bdeFlags = BUFF_TYPE_BDL;
2622 iocb->un.fcpt64.fcpt_Length =
2624 iocb->un.fcpt64.fcpt_Offset = 0;
2626 iocb->ULPBDECOUNT = 1;
2627 iocb->ULPLE = 1;
2643 IOCB *iocb;
2652 iocb = (IOCB *)&sbp->iocbq;
2655 iocb->un.fcpt64.bdl.addrHigh = 0;
2656 iocb->un.fcpt64.bdl.addrLow = 0;
2657 iocb->un.fcpt64.bdl.bdeSize = 0;
2658 iocb->un.fcpt64.bdl.bdeFlags = 0;
2659 iocb->un.fcpt64.fcpt_Offset = 0;
2660 iocb->un.fcpt64.fcpt_Length = 0;
2661 iocb->ULPBDECOUNT = 0;
2662 iocb->ULPLE = 0;
2663 iocb->unsli3.ext_iocb.ebde_count = 0;
2678 iocb->un.fcpt64.bdl.addrHigh = PADDR_HI(bctl->bctl_dev_addr);
2679 iocb->un.fcpt64.bdl.addrLow = PADDR_LO(bctl->bctl_dev_addr);
2680 iocb->un.fcpt64.bdl.bdeSize = MIN(resid, sgl->seg_length);
2681 iocb->un.fcpt64.bdl.bdeFlags = bdeFlags;
2686 bde = (ULP_BDE64 *)&iocb->unsli3.ext_iocb.ebde1;
2698 iocb->unsli3.ext_iocb.ebde_count = sgllen - 1;
2699 iocb->un.fcpt64.fcpt_Length =
2701 iocb->un.fcpt64.fcpt_Offset = 0;
2703 iocb->ULPBDECOUNT = 0;
2704 iocb->ULPLE = 0;
2774 /* Throttle check only applies to non special iocb */
2822 * Make sure we have an iocb to send
2827 /* Check if the ring already has iocb's waiting */
2841 /* Try to get the next iocb on the tx queue */
2902 * and an iocb to send
2906 /* Send the iocb */
2909 * After this, the sbp / iocb should not be
2939 /* Get the next iocb from the tx queue if there is one */
3509 IOCB *iocb;
3525 iocb = &iocbq->iocb;
3575 /* Initalize iocb */
3576 iocb->ULPCONTEXT = (uint16_t)fct_cmd->cmd_rxid;
3577 iocb->ULPIOTAG = iotag;
3578 iocb->ULPRSVDBYTE = ((timeout > 0xff) ? 0 : timeout);
3579 iocb->ULPOWNER = OWN_CHIP;
3580 iocb->ULPCLASS = cmd_sbp->class;
3582 iocb->ULPPU = 1; /* Wd4 is relative offset */
3583 iocb->un.fcpt64.fcpt_Offset = dbuf->db_relative_offset;
3586 iocb->ULPCOMMAND = CMD_FCP_TRECEIVE64_CX;
3589 iocb->ULPCOMMAND = CMD_FCP_TSEND64_CX;
3594 iocb->ULPCT = 0x1;
3611 IOCB *iocb;
3621 iocb = &iocbq->iocb;
3657 /* Initalize iocb */
3658 iocb->ULPCONTEXT = ndlp->nlp_Rpi;
3659 iocb->ULPIOTAG = iotag;
3660 iocb->ULPRSVDBYTE =
3662 iocb->ULPOWNER = OWN_CHIP;
3666 iocb->ULPCLASS = CLASS1;
3669 iocb->ULPCLASS = CLASS2;
3670 /* iocb->ULPCLASS = CLASS3; */
3674 iocb->ULPCLASS = CLASS3;
3681 iocb->ULPFCP2RCVY = 1;
3685 iocb->ULPCOMMAND = CMD_FCP_ICMND64_CR;
3687 iocb->ULPCOMMAND = CMD_FCP_IREAD64_CR;
3688 iocb->ULPPU = PARM_READ_CHECK;
3689 iocb->un.fcpi64.fcpi_parm = pkt->pkt_datalen;
3691 iocb->ULPCOMMAND = CMD_FCP_IWRITE64_CR;
3705 IOCB *iocb;
3716 iocb = &iocbq->iocb;
3747 /* Initalize iocb */
3748 iocb->un.xseq64.w5.hcsw.Fctl = 0;
3751 iocb->un.xseq64.w5.hcsw.Fctl |= FSEQ;
3754 iocb->un.xseq64.w5.hcsw.Fctl |= SI;
3758 iocb->un.xseq64.w5.hcsw.Dfctl = pkt->pkt_cmd_fhdr.df_ctl;
3759 iocb->un.xseq64.w5.hcsw.Rctl = pkt->pkt_cmd_fhdr.r_ctl;
3760 iocb->un.xseq64.w5.hcsw.Type = pkt->pkt_cmd_fhdr.type;
3762 iocb->ULPIOTAG = iotag;
3763 iocb->ULPRSVDBYTE =
3765 iocb->ULPOWNER = OWN_CHIP;
3770 iocb->ULPCOMMAND = CMD_XMIT_BCAST64_CN;
3771 iocb->ULPCONTEXT = 0;
3775 iocb->ULPCT = 0x1;
3777 iocb->ULPCONTEXT = port->vpi;
3783 iocb->ULPCOMMAND = CMD_XMIT_SEQUENCE64_CX;
3784 iocb->ULPCONTEXT = ndlp->nlp_Xri;
3789 iocb->ULPCLASS = CLASS1;
3792 iocb->ULPCLASS = CLASS2;
3796 iocb->ULPCLASS = CLASS3;
3811 IOCB *iocb;
3822 iocb = &iocbq->iocb;
3852 /* Initalize iocb */
3855 iocb->ULPCONTEXT = (volatile uint16_t) pkt->pkt_cmd_fhdr.rx_id;
3856 iocb->ULPCOMMAND = CMD_XMIT_ELS_RSP64_CX;
3859 iocb->un.elsreq64.remoteID = (did == BCAST_DID) ? 0 : did;
3860 iocb->ULPCONTEXT =
3862 iocb->ULPCOMMAND = CMD_ELS_REQUEST64_CR;
3869 iocb->ULPCT = 0x2;
3871 iocb->ULPCT = 0x1;
3874 iocb->ULPCONTEXT = port->vpi;
3876 iocb->ULPIOTAG = iotag;
3877 iocb->ULPRSVDBYTE =
3879 iocb->ULPOWNER = OWN_CHIP;
3883 iocb->ULPCLASS = CLASS1;
3886 iocb->ULPCLASS = CLASS2;
3890 iocb->ULPCLASS = CLASS3;
3893 sbp->class = iocb->ULPCLASS;
3906 IOCB *iocb;
3917 iocb = &iocbq->iocb;
3949 /* Fill in rest of iocb */
3950 iocb->un.genreq64.w5.hcsw.Fctl = LA;
3953 iocb->un.genreq64.w5.hcsw.Fctl |= LSEQ;
3956 iocb->un.genreq64.w5.hcsw.Fctl |= SI;
3959 /* Initalize iocb */
3962 iocb->ULPCOMMAND = CMD_XMIT_SEQUENCE64_CX;
3963 iocb->un.genreq64.w5.hcsw.Dfctl = pkt->pkt_cmd_fhdr.df_ctl;
3964 iocb->ULPCONTEXT = pkt->pkt_cmd_fhdr.rx_id;
3967 iocb->ULPCOMMAND = CMD_GEN_REQUEST64_CR;
3968 iocb->un.genreq64.w5.hcsw.Dfctl = 0;
3969 iocb->ULPCONTEXT = ndlp->nlp_Rpi;
3972 iocb->un.genreq64.w5.hcsw.Rctl = pkt->pkt_cmd_fhdr.r_ctl;
3973 iocb->un.genreq64.w5.hcsw.Type = pkt->pkt_cmd_fhdr.type;
3975 iocb->ULPIOTAG = iotag;
3976 iocb->ULPRSVDBYTE =
3978 iocb->ULPOWNER = OWN_CHIP;
3982 iocb->ULPCLASS = CLASS1;
3985 iocb->ULPCLASS = CLASS2;
3989 iocb->ULPCLASS = CLASS3;
4619 * Gather iocb entries off response ring.
4634 /* Get the next response ring iocb */
4639 /* DMA sync the response ring iocb for the adapter */
4647 /* Copy word6 and word7 to local iocb for now */
4655 if (!iocbq->iocb.ULPLE) {
4660 channel_no, iocbq->iocb.ULPIOTAG,
4661 iocbq->iocb.ULPCOMMAND, iocbq->iocb.ULPSTATUS);
4666 switch (iocbq->iocb.ULPCOMMAND) {
4677 emlxs_unregister_pkt(cp, iocbq->iocb.ULPIOTAG, 0);
4728 emlxs_unregister_pkt(cp, iocbq->iocb.ULPIOTAG, 0);
4743 "channelno=%d iocb=%p cmd=%x status=%x "
4745 channel_no, iocbq, (uint8_t)iocbq->iocb.ULPCOMMAND,
4746 iocbq->iocb.ULPSTATUS,
4747 (uint8_t)iocbq->iocb.un.grsp.perr.statLocalError,
4748 (uint16_t)iocbq->iocb.ULPIOTAG,
4749 (uint16_t)iocbq->iocb.ULPCONTEXT,
4750 (uint8_t)iocbq->iocb.ULPRSVDBYTE);
4757 * iocb for deferred processing
4907 IOCB *iocb;
4926 iocb = &iocbq->iocb;
4927 word = (uint32_t *)iocb;
4971 channelno, iocb->ULPCOMMAND,
4972 emlxs_state_xlate(iocb->ULPSTATUS), word[4], word[5],
4977 if (iocb->ULPSTATUS) {
4978 if ((iocb->ULPSTATUS == IOSTAT_LOCAL_REJECT) &&
4979 (iocb->un.grsp.perr.statLocalError ==
4982 } else if ((iocb->ULPSTATUS == IOSTAT_LOCAL_REJECT) &&
4983 (iocb->un.grsp.perr.statLocalError ==
4987 } else if (iocb->ULPSTATUS == IOSTAT_NEED_BUFF_ENTRY) {
5004 hbqE = (HBQE_t *)iocb;
5018 size = iocb->unsli3.ext_rcv.seq_len;
5021 PADDR(iocb->un.cont64[0].addrHigh,
5022 iocb->un.cont64[0].addrLow);
5025 if (iocb->un.cont64[0].tus.f.bdeFlags & BUFF_TYPE_INVALID) {
5032 size = iocb->un.rcvseq64.rcvBde.tus.f.bdeSize;
5062 vpi = iocb->unsli3.ext_rcv.vpi;
5111 error_str, iocb->ULPCOMMAND, emlxs_state_xlate(iocb->ULPSTATUS),
5119 ndlp = emlxs_node_find_rpi(port, iocb->ULPIOTAG);
5122 sid = iocb->un.ulpWord[4] & 0xFFFFFF;
5135 error_str, iocb->ULPCOMMAND, emlxs_state_xlate(iocb->ULPSTATUS),
5160 IOCB *iocb;
5167 icmd = &iocbq->iocb;
5204 /* get the next available command ring iocb */
5205 iocb =
5209 /* Copy the local iocb to the command ring iocb */
5210 BE_SWAP32_BCOPY((uint8_t *)icmd, (uint8_t *)iocb,
5213 /* DMA sync the command ring iocb for the adapter */
5214 offset = (off_t)((uint64_t)((unsigned long)iocb)
5220 * After this, the sbp / iocb should not be
5224 /* Free the local iocb if there is no sbp tracking it */