Lines Matching defs:q
226 static int mir_close(queue_t *q);
227 static int mir_open(queue_t *q, dev_t *devp, int flag, int sflag,
229 static void mir_rput(queue_t *q, mblk_t *mp);
230 static void mir_rsrv(queue_t *q);
231 static void mir_wput(queue_t *q, mblk_t *mp);
232 static void mir_wsrv(queue_t *q);
294 * Per rpcmod "slot" data structure. q->q_ptr points to one of these.
426 void tmp_rput(queue_t *q, mblk_t *mp);
438 tmp_rput(queue_t *q, mblk_t *mp)
440 struct temp_slot *t = (struct temp_slot *)(q->q_ptr);
469 rmm_open(queue_t *q, dev_t *devp, int flag, int sflag, cred_t *crp)
476 ASSERT(q != NULL);
480 if (q->q_ptr) {
482 "rpcmodopen_end:(%s)", "q->qptr");
488 q->q_ptr = (void *)t;
489 WR(q)->q_ptr = (void *)t;
504 qprocson(q);
508 putnext(WR(q), bp);
525 if ((error = rpcmodopen(q, devp, flag, sflag, crp)) == 0)
526 ((struct rpcm *)q->q_ptr)->rm_ops = &xprt_clts_ops;
528 if ((error = mir_open(q, devp, flag, sflag, crp)) == 0)
529 ((mir_t *)q->q_ptr)->rm_ops = &xprt_cots_ops;
534 qprocsoff(q);
544 rmm_rput(queue_t *q, mblk_t *mp)
546 (*((struct temp_slot *)q->q_ptr)->ops->xo_rput)(q, mp);
550 rmm_rsrv(queue_t *q)
552 (*((struct temp_slot *)q->q_ptr)->ops->xo_rsrv)(q);
556 rmm_wput(queue_t *q, mblk_t *mp)
558 (*((struct temp_slot *)q->q_ptr)->ops->xo_wput)(q, mp);
562 rmm_wsrv(queue_t *q)
564 (*((struct temp_slot *)q->q_ptr)->ops->xo_wsrv)(q);
568 rmm_close(queue_t *q, int flag, cred_t *crp)
570 return ((*((struct temp_slot *)q->q_ptr)->ops->xo_close)(q, flag, crp));
580 rpcmodopen(queue_t *q, dev_t *devp, int flag, int sflag, cred_t *crp)
617 q->q_ptr = (void *)rmp;
618 WR(q)->q_ptr = (void *)rmp;
630 rpcmodclose(queue_t *q, int flag, cred_t *crp)
634 ASSERT(q != NULL);
635 rmp = (struct rpcm *)q->q_ptr;
649 flushq(q, FLUSHDATA);
651 qenable(WR(q));
658 svc_queueclean(q);
676 qprocsoff(q);
679 svc_queueclose(q);
682 qprocsoff(q);
685 q->q_ptr = NULL;
686 WR(q)->q_ptr = NULL;
698 rpcmodrput(queue_t *q, mblk_t *mp)
706 ASSERT(q != NULL);
707 rmp = (struct rpcm *)q->q_ptr;
716 putnext(q, mp);
734 putnext(q, mp);
773 svc_queuereq(q, mp, TRUE)) {
821 putnext(q, mp);
836 rpcmodwput(queue_t *q, mblk_t *mp)
840 ASSERT(q != NULL);
847 rpcmodwput_other(q, mp);
854 if (canputnext(q)) {
855 putnext(q, mp);
859 rmp = (struct rpcm *)q->q_ptr;
869 if (canputnext(q) || (rmp->rm_state & RM_CLOSING)) {
871 putnext(q, mp);
879 (void) putq(q, mp);
884 rpcmodwput_other(queue_t *q, mblk_t *mp)
889 rmp = (struct rpcm *)q->q_ptr;
903 qreply(q, mp);
910 putnext(q, mp);
920 putnext(q, mp);
928 rpcmodwsrv(queue_t *q)
933 rmp = (struct rpcm *)q->q_ptr;
939 while ((mp = getq(q)) != NULL) {
944 if (rmp->rm_type == RPC_SERVER || canputnext(q)) {
945 putnext(q, mp);
948 (void) putbq(q, mp);
955 rpcmod_release(queue_t *q, mblk_t *bp, bool_t enable)
964 rmp = (struct rpcm *)q->q_ptr;
1005 static int mir_clnt_dup_request(queue_t *q, mblk_t *mp);
1006 static void mir_rput_proto(queue_t *q, mblk_t *mp);
1007 static int mir_svc_policy_notify(queue_t *q, int event);
1016 static void mir_wput(queue_t *q, mblk_t *mp);
1017 static void mir_wput_other(queue_t *q, mblk_t *mp);
1018 static void mir_wsrv(queue_t *q);
1073 mir_timer_start(queue_t *q, mir_t *mir, clock_t intrvl)
1090 mir->mir_timer_id = timeout(mir_timer, q,
1098 mir_clnt_dup_request(queue_t *q, mblk_t *mp)
1104 ASSERT(MUTEX_HELD(&((mir_t *)q->q_ptr)->mir_mutex));
1110 if ((mp1 = q->q_first) != NULL) {
1121 mir_close(queue_t *q)
1123 mir_t *mir = q->q_ptr;
1127 RPCLOG(32, "rpcmod: mir_close of q 0x%p\n", (void *)q);
1143 flushq(q, FLUSHDATA); /* Ditch anything waiting on read q */
1149 mir_svc_start_close(WR(q), mir);
1159 svc_queueclean(q);
1172 qenable(WR(q));
1178 qprocsoff(q);
1181 svc_queueclose(q);
1184 qprocsoff(q);
1200 mir_svc_idle_stop(queue_t *q, mir_t *mir)
1203 ASSERT((q->q_flag & QREADR) == 0);
1205 RPCLOG(16, "rpcmod: mir_svc_idle_stop of q 0x%p\n", (void *)q);
1217 mir_svc_idle_start(queue_t *q, mir_t *mir)
1220 ASSERT((q->q_flag & QREADR) == 0);
1222 RPCLOG(16, "rpcmod: mir_svc_idle_start q 0x%p\n", (void *)q);
1229 (void *)q);
1249 mir_timer_start(q, mir, mir->mir_ordrel_pending ?
1256 mir_open(queue_t *q, dev_t *devp, int flag, int sflag, cred_t *credp)
1260 RPCLOG(32, "rpcmod: mir_open of q 0x%p\n", (void *)q);
1309 q->q_ptr = (char *)mir;
1310 WR(q)->q_ptr = (char *)mir;
1318 noenable(q);
1320 qprocson(q);
1330 mir_rput(queue_t *q, mblk_t *mp)
1335 mir_t *mir = q->q_ptr;
1366 mir_rput_proto(q, mp);
1388 (void) strqset(q, QHIWAT, 0, stropts->so_hiwat);
1391 putnext(q, mp);
1395 RPCLOG(32, "on q 0x%p\n", (void *)q);
1396 putnext(q, mp);
1399 putnext(q, mp);
1497 mir_disconnect(q, mir); /* drops mir_mutex */
1558 if (mir_check_len(q, head_mp))
1561 if (q->q_first == NULL &&
1562 svc_queuereq(q, head_mp, TRUE)) {
1574 (void) putq(q, head_mp);
1593 (void) putq(q, head_mp);
1615 mir_check_len(q, head_mp))
1637 "ref cnt going to non zero\n", (void *)WR(q));
1638 mir_svc_idle_stop(WR(q), mir);
1644 mir_rput_proto(queue_t *q, mblk_t *mp)
1646 mir_t *mir = (mir_t *)q->q_ptr;
1674 mir_clnt_idle_stop(WR(q), mir);
1691 mir_clnt_idle_start(WR(q), mir);
1693 clnt_dispatch_notifyall(WR(q), type, reason);
1702 (void *)q);
1709 clnt_dispatch_notifyall(WR(q), type, reason);
1713 if (clnt_dispatch_notifyconn(WR(q), mp))
1723 clnt_dispatch_notifyall(WR(q), type, reason);
1727 if (clnt_dispatch_notifyconn(WR(q), mp))
1735 if (clnt_dispatch_notifyconn(WR(q), mp))
1761 mir_svc_idle_stop(WR(q), mir);
1793 mir_svc_start_close(WR(q), mir);
1806 "upstream on 0x%p\n", (void *)q);
1821 " 0x%p\n", (void *)q);
1829 "ind on 0x%p\n", (void *)q);
1848 putnext(q, mp);
1858 mir_rsrv(queue_t *q)
1864 mir = (mir_t *)q->q_ptr;
1875 while (mp = getq(q)) {
1879 if (mir_check_len(q, mp))
1882 if (svc_queuereq(q, mp, TRUE)) {
1890 (void) putbq(q, mp);
1909 if (q->q_first == NULL)
1926 "cnt going to non zero\n", (void *)WR(q));
1927 mir_svc_idle_stop(WR(q), mir);
1930 if (q->q_first == NULL) {
1946 putnext(q, cmp);
1961 mir_svc_policy_notify(queue_t *q, int event)
1965 mir_t *mir = (mir_t *)q->q_ptr;
1968 ASSERT(q->q_flag & QREADR);
1986 putnext(q, mp);
2285 mir_wput(queue_t *q, mblk_t *mp)
2288 mir_t *mir = (mir_t *)q->q_ptr;
2297 mir_wput_other(q, mp);
2304 (void *)q);
2346 if (!mir->mir_inwservice && MIR_WCANPUTNEXT(mir, q)) {
2352 putnext(q, mp);
2367 if (mir_clnt_dup_request(q, mp)) {
2388 (void) putq(q, mp);
2393 mir_wput_other(queue_t *q, mblk_t *mp)
2395 mir_t *mir = (mir_t *)q->q_ptr;
2414 qreply(q, mp);
2433 mir_clnt_idle_start(q, mir);
2437 qreply(q, mp);
2466 "because we got RPC_SERVER ioctl\n", (void *)q);
2467 mir_svc_idle_start(q, mir);
2471 qreply(q, mp);
2499 (void *)q);
2512 (void) putq(q, mp);
2525 " so calling mir_svc_start_close\n", (void *)q);
2527 mir_svc_start_close(q, mir);
2555 (void) putq(q, mp);
2558 "T_ORDREL_REQ on 0x%p\n", (void *)q);
2572 (void *)q);
2574 mir_svc_idle_start(q, mir);
2595 mir_clnt_idle_stop(q, mir);
2596 mir_clnt_idle_start(q, mir);
2618 "wq 0x%p\n", (void *)q);
2620 flushband(q, *(mp->b_rptr + 1),
2623 flushq(q, FLUSHDATA);
2627 "M_FLUSH on wq 0x%p\n", (void *)q);
2634 if (mir->mir_inwservice == 0 && MIR_WCANPUTNEXT(mir, q)) {
2640 (void) putq(q, mp);
2642 qenable(q);
2646 putnext(q, mp);
2650 mir_wsrv(queue_t *q)
2656 mir = (mir_t *)q->q_ptr;
2662 while (mp = getq(q)) {
2677 if (!MIR_WCANPUTNEXT(mir, q)) {
2678 (void) putbq(q, mp);
2687 putnext(q, mp);
2701 putnext(q, mp);
2721 RPCLOG(16, "mir_wsrv: sending ordrel req on q 0x%p\n",
2722 (void *)q);
2730 putnext(q, mp);
2734 if (q->q_first == NULL)
2755 "because mir slot is idle\n", (void *)q);
2756 mir_svc_idle_start(q, mir);
2765 qenable(RD(q));
2771 mir_disconnect(queue_t *q, mir_t *mir)
2784 mir_clnt_idle_start(WR(q), mir);
2794 clnt_dispatch_notifyall(WR(q), T_DISCON_REQ, 0);
2799 mir_svc_idle_stop(WR(q), mir);
2803 "(0x%p)\n", (void *) q);
2804 (void) mir_svc_policy_notify(q, 2);
2818 mir_check_len(queue_t *q, mblk_t *head_mp)
2820 mir_t *mir = q->q_ptr;
2844 mir_disconnect(q, mir);