Lines Matching defs:pMBlk

82 static int vbmsSolWPut(queue_t *pWriteQueue, mblk_t *pMBlk);
550 mblk_t *pMBlk = allocb(sizeof(Firm_event), BPRI_HI);
553 if (!pMBlk)
555 pEvent = (Firm_event *)pMBlk->b_wptr;
561 pMBlk->b_wptr += sizeof(Firm_event);
564 putnext(pReadQueue, pMBlk);
566 putq(pReadQueue, pMBlk);
631 static int vbmsSolDispatchIOCtl(PVBMSSTATE pState, mblk_t *pMBlk);
637 int vbmsSolWPut(queue_t *pWriteQueue, mblk_t *pMBlk)
641 switch (pMBlk->b_datap->db_type)
645 *pMBlk->b_rptr & FLUSHW, *pMBlk->b_rptr & FLUSHR));
647 if (*pMBlk->b_rptr & FLUSHW)
651 if (*pMBlk->b_rptr & FLUSHR)
664 LogRelFlow(( pMBlk->b_datap->db_type == M_IOCTL
666 err = vbmsSolDispatchIOCtl(pState, pMBlk);
668 qreply(pWriteQueue, pMBlk);
670 miocnak(pWriteQueue, pMBlk, 0, err);
690 struct msgb *pMBlk)
714 bool (*pfnExtra)(RTTEST hTest, queue_t *pWriteQueue, struct msgb *pMBlk);
775 struct msgb *pMBlk = allocb(sizeof(struct iocblk), BPRI_MED);
777 struct iocblk *pIOCBlk = pMBlk ? (struct iocblk *)pMBlk->b_rptr : NULL;
780 AssertReturnVoid(pMBlk);
781 AssertReturnVoidStmt(pMBlkCont, freemsg(pMBlk));
788 pMBlk->b_datap->db_type = M_IOCTL;
794 pMBlk->b_cont = pMBlkCont;
795 rc = vbmsSolWPut(WR(&aQueues[0]), pMBlk);
807 RTTEST_CHECK_MSG(hTest, pMBlk->b_flag == 1, (hTest, "i=%u\n", i));
809 RTTEST_CHECK_MSG(hTest, RD(&aQueues[0])->q_first == pMBlk,
812 if (!g_asTestWPut[i].pfnExtra(hTest, WR(&aQueues[0]), pMBlk))
816 freemsg(pMBlk);
828 struct msgb *pMBlk = allocb(sizeof(struct iocblk), BPRI_MED);
830 struct iocblk *pIOCBlk = pMBlk ? (struct iocblk *)pMBlk->b_rptr : NULL;
836 AssertReturnVoid(pMBlk);
837 AssertReturnVoidStmt(pMBlkCont, freemsg(pMBlk));
844 pMBlk->b_datap->db_type = M_IOCTL;
848 pMBlk->b_cont = pMBlkCont;
849 rc = vbmsSolWPut(WR(&aQueues[0]), pMBlk);
850 pCopyReq = (struct copyreq *)pMBlk->b_rptr;
852 && (pMBlk->b_datap->db_type == M_COPYIN))
854 && (pMBlk->b_datap->db_type == M_COPYOUT))
856 && pMBlk->b_datap->db_type == M_IOCACK)
857 || (pMBlk->b_datap->db_type == M_IOCNAK)),
859 (unsigned) pMBlk->b_datap->db_type));
862 if (pMBlk->b_datap->db_type == M_IOCNAK)
883 else if ( (pMBlk->b_datap->db_type == M_COPYIN)
884 || (pMBlk->b_datap->db_type == M_COPYOUT))
889 RTTEST_CHECK_MSG(hTest, RD(&aQueues[0])->q_first == pMBlk,
892 if (!g_asTestWPut[i].pfnExtra(hTest, WR(&aQueues[0]), pMBlk))
896 freemsg(pMBlk);
906 struct msgb *pMBlk = allocb(sizeof(struct copyresp), BPRI_MED);
908 struct copyresp *pCopyResp = pMBlk ? (struct copyresp *)pMBlk->b_rptr
914 AssertReturnVoid(pMBlk);
915 AssertReturnVoidStmt(pMBlkCont, freemsg(pMBlk));
918 AssertReturnVoidStmt(g_asTestWPut[i].cbDataIn, freemsg(pMBlk));
925 pMBlk->b_datap->db_type = M_IOCDATA;
931 pMBlk->b_cont = pMBlkCont;
932 rc = vbmsSolWPut(WR(&aQueues[0]), pMBlk);
933 pCopyReq = (struct copyreq *)pMBlk->b_rptr;
935 && (pMBlk->b_datap->db_type == M_COPYOUT))
937 && pMBlk->b_datap->db_type == M_IOCACK)
938 || (pMBlk->b_datap->db_type == M_IOCNAK)),
940 (unsigned) pMBlk->b_datap->db_type));
956 RTTEST_CHECK_MSG(hTest, RD(&aQueues[0])->q_first == pMBlk,
959 if (!g_asTestWPut[i].pfnExtra(hTest, WR(&aQueues[0]), pMBlk))
963 freemsg(pMBlk);
973 struct msgb *pMBlk = allocb(sizeof(struct copyresp), BPRI_MED);
974 struct copyresp *pCopyResp = pMBlk ? (struct copyresp *)pMBlk->b_rptr
978 AssertReturnVoid(pMBlk);
979 AssertReturnVoidStmt(g_asTestWPut[i].cbDataOut, freemsg(pMBlk));
988 pMBlk->b_datap->db_type = M_IOCDATA;
990 rc = vbmsSolWPut(WR(&aQueues[0]), pMBlk);
991 RTTEST_CHECK_MSG(hTest, pMBlk->b_datap->db_type == M_IOCACK,
993 (unsigned) pMBlk->b_datap->db_type));
995 RTTEST_CHECK_MSG(hTest, RD(&aQueues[0])->q_first == pMBlk,
998 freemsg(pMBlk);
1036 static int vbmsSolHandleIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1077 * @param pMBlk pointer to the STREAMS message block structure.
1079 static int vbmsSolDispatchIOCtl(PVBMSSTATE pState, mblk_t *pMBlk)
1081 struct iocblk *pIOCBlk = (struct iocblk *)pMBlk->b_rptr;
1100 return vbmsSolHandleIOCtl(pState, pMBlk,
1113 static int vbmsSolHandleIOCtlData(PVBMSSTATE pState, mblk_t *pMBlk,
1118 static int vbmsSolHandleTransparentIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1123 static int vbmsSolHandleIStrIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1126 static void vbmsSolAcknowledgeIOCtl(mblk_t *pMBlk, int cbData, int rc)
1128 struct iocblk *pIOCBlk = (struct iocblk *)pMBlk->b_rptr;
1130 pMBlk->b_datap->db_type = M_IOCACK;
1146 * @param pMBlk pointer to the STREAMS message block structure.
1157 static int vbmsSolHandleIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1161 struct iocblk *pIOCBlk = (struct iocblk *)pMBlk->b_rptr;
1165 if (pMBlk->b_datap->db_type == M_IOCDATA)
1166 return vbmsSolHandleIOCtlData(pState, pMBlk, pfnHandler, iCmd,
1168 else if ( pMBlk->b_datap->db_type == M_IOCTL
1170 return vbmsSolHandleTransparentIOCtl(pState, pMBlk, pfnHandler,
1172 else if (pMBlk->b_datap->db_type == M_IOCTL)
1173 return vbmsSolHandleIStrIOCtl(pState, pMBlk, pfnHandler, iCmd);
1184 static int vbmsSolHandleIOCtlData(PVBMSSTATE pState, mblk_t *pMBlk,
1189 struct copyresp *pCopyResp = (struct copyresp *)pMBlk->b_rptr;
1197 freemsg(pMBlk);
1206 if (!pMBlk->b_cont)
1210 pvData = pMBlk->b_cont->b_rptr;
1213 mcopyout(pMBlk, NULL, cbData, pCopyResp->cp_private, NULL);
1215 vbmsSolAcknowledgeIOCtl(pMBlk, 0, 0);
1221 vbmsSolAcknowledgeIOCtl(pMBlk, 0, 0);
1232 int vbmsSolHandleTransparentIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1242 if ( (enmDirection != NONE && !pMBlk->b_cont)
1250 pUserAddr = *(void **)pMBlk->b_cont->b_rptr;
1251 mcopyin(pMBlk, pUserAddr /* state data */, cbCmd, NULL);
1263 mcopyout(pMBlk, NULL, cbData, NULL, pMBlkOut);
1272 vbmsSolAcknowledgeIOCtl(pMBlk, 0, rc);
1282 static int vbmsSolHandleIStrIOCtl(PVBMSSTATE pState, mblk_t *pMBlk,
1285 struct iocblk *pIOCBlk = (struct iocblk *)pMBlk->b_rptr;
1292 (unsigned)iCmd, cbBuffer, (void *)pMBlk->b_cont));
1293 if (cbBuffer && !pMBlk->b_cont)
1298 err = miocpullup(pMBlk, cbBuffer);
1301 pvData = pMBlk->b_cont->b_rptr;
1303 else if (pMBlk->b_cont) /* consms forgets to set ioc_count. */
1305 pvData = pMBlk->b_cont->b_rptr;
1306 cbBuffer = pMBlk->b_cont->b_datap->db_lim
1307 - pMBlk->b_cont->b_datap->db_base;
1312 LogRelFlowFunc(("pMBlk=%p, pMBlk->b_datap=%p, pMBlk->b_rptr=%p\n",
1313 pMBlk, pMBlk->b_datap, pMBlk->b_rptr));
1314 vbmsSolAcknowledgeIOCtl(pMBlk, cbData, rc);