Lines Matching refs:mp

272 ptemrput(queue_t *q, mblk_t *mp)
278 switch (mp->b_datap->db_type) {
281 freemsg(mp);
285 iocp = (struct iocblk *)mp->b_rptr;
296 error = miocpullup(mp, sizeof (int));
298 miocnak(q, mp, 0, error);
301 if (!(*(int *)mp->b_cont->b_rptr)) {
306 miocnak(q, mp, 0, EAGAIN);
313 mioc2ack(mp, NULL, 0, 0);
314 qreply(q, mp);
320 ptioc(q, mp, RDSIDE);
326 * `mp' may be in any one of three distinct formats:
338 intptr_t sig = *(intptr_t *)mp->b_cont->b_rptr;
345 mcopyin(mp, NULL, sizeof (int), NULL);
346 qreply(q, mp);
350 ptioc(q, mp, RDSIDE);
355 ptioc(q, mp, RDSIDE);
357 mcopyin(mp, NULL, sizeof (int), NULL);
358 qreply(q, mp);
363 putnext(q, mp);
369 resp = (struct copyresp *)mp->b_rptr;
374 freemsg(mp);
386 ptioc(q, mp, RDSIDE);
391 mp->b_datap->db_type = M_IOCACK;
392 mioc2ack(mp, NULL, 0, 0);
393 qreply(q, mp);
397 freemsg(mp);
410 freemsg(mp);
425 putnext(q, mp);
441 ptemwput(queue_t *q, mblk_t *mp)
446 unsigned char type = mp->b_datap->db_type;
452 resp = (struct copyresp *)mp->b_rptr;
457 freemsg(mp);
467 ptioc(q, mp, WRSIDE);
472 mioc2ack(mp, NULL, 0, 0);
473 qreply(q, mp);
477 freemsg(mp);
482 if (*mp->b_rptr & FLUSHW) {
484 (*mp->b_rptr & FLUSHBAND))
485 flushband(q, *(mp->b_rptr + 1), FLUSHDATA);
489 putnext(q, mp);
493 freemsg(mp);
501 putnext(q, mp);
509 putnext(q, mp);
513 putnext(q, mp);
522 if (q->q_first != NULL || !bcanputnext(q, mp->b_band)) {
531 iocp = (struct iocblk *)mp->b_rptr;
547 (void) ptemwmsg(q, mp);
553 freemsg(mp);
557 if ((mp->b_wptr - mp->b_rptr) < 0) {
561 freemsg(mp);
563 } else if ((mp->b_wptr - mp->b_rptr) == 0) {
565 freemsg(mp);
570 (void) putq(q, mp);
574 * fast path into ptemwmsg to dispose of mp.
576 if (!ptemwmsg(q, mp))
577 (void) putq(q, mp);
586 mblk_t *mp;
588 while ((mp = getq(q)) != NULL) {
589 if (!bcanputnext(q, mp->b_band) || !ptemwmsg(q, mp)) {
590 (void) putbq(q, mp);
599 * actual work of dealing with mp. ptmewput will have already
605 ptemwmsg(queue_t *q, mblk_t *mp)
617 switch (mp->b_datap->db_type) {
628 iocp = (struct iocblk *)mp->b_rptr;
637 miocnak(q, mp, 0, EAGAIN);
651 error = miocpullup(mp, sizeof (struct termio));
653 miocnak(q, mp, 0, error);
657 mp->b_cont->b_rptr)->c_cflag;
665 error = miocpullup(mp, sizeof (struct termios));
667 miocnak(q, mp, 0, error);
671 mp->b_cont->b_rptr)->c_cflag;
695 if ((pckt_msgp = copymsg(mp)) == NULL) {
696 miocnak(q, mp, 0, EAGAIN);
704 mioc2ack(mp, NULL, 0, 0);
705 qreply(q, mp);
712 miocnak(q, mp, 0, EAGAIN);
717 mioc2ack(mp, dp, sizeof (struct termio), 0);
718 qreply(q, mp);
724 miocnak(q, mp, 0, EAGAIN);
729 mioc2ack(mp, dp, sizeof (struct termios), 0);
730 qreply(q, mp);
734 error = miocpullup(mp, sizeof (int));
736 miocnak(q, mp, 0, error);
744 if ((pckt_msgp = copymsg(mp)) == NULL) {
745 miocnak(q, mp, 0, EAGAIN);
757 if (!(*(int *)mp->b_cont->b_rptr))
762 mioc2ack(mp, NULL, 0, 0);
763 qreply(q, mp);
769 ptioc(q, mp, WRSIDE);
786 if ((pckt_msgp = copymsg(mp)) == NULL) {
787 miocnak(q, mp, 0, EAGAIN);
793 error = miocpullup(mp, sizeof (char));
796 miocnak(q, mp, 0, error);
808 miocnak(q, mp, 0, EAGAIN);
815 if (!bcanputnext(RD(q), mp->b_band)) {
818 miocnak(q, mp, 0, EAGAIN);
821 *bp->b_wptr++ = *mp->b_cont->b_rptr;
826 mioc2ack(mp, NULL, 0, 0);
827 qreply(q, mp);
832 miocnak(q, mp, 0, EEXIST);
835 mioc2ack(mp, NULL, 0, 0);
836 qreply(q, mp);
845 miocnak(q, mp, 0, EINVAL);
851 freemsg(mp);
855 if ((mp->b_wptr - mp->b_rptr) < 0) {
859 freemsg(mp);
861 } else if ((mp->b_wptr - mp->b_rptr) == 0) {
863 freemsg(mp);
871 putnext(q, mp);
883 ptioc(queue_t *q, mblk_t *mp, int qside)
893 iocp = (struct iocblk *)mp->b_rptr;
905 miocnak(q, mp, 0, EINVAL);
911 miocnak(q, mp, 0, EAGAIN);
916 mcopyout(mp, NULL, sizeof (struct jwinsize), NULL, tmp);
918 mioc2ack(mp, tmp, sizeof (struct jwinsize), 0);
920 jwb = (struct jwinsize *)mp->b_cont->b_rptr;
926 qreply(q, mp);
935 miocnak(q, mp, 0, EINVAL);
941 miocnak(q, mp, 0, EAGAIN);
945 mioc2ack(mp, tmp, sizeof (struct winsize), 0);
947 wb = (struct winsize *)mp->b_cont->b_rptr;
953 qreply(q, mp);
957 error = miocpullup(mp, sizeof (struct winsize));
959 miocnak(q, mp, 0, error);
963 wb = (struct winsize *)mp->b_cont->b_rptr;
983 mp->b_datap->db_type = M_IOCTL;
990 if ((pckt_msgp = copymsg(mp)) == NULL) {
991 miocnak(q, mp, 0, EAGAIN);
1002 mioc2ack(mp, NULL, 0, 0);
1003 qreply(q, mp);
1013 if (DB_TYPE(mp) == M_IOCTL && iocp->ioc_count != TRANSPARENT) {
1014 error = miocpullup(mp, sizeof (int));
1016 miocnak(q, mp, 0, error);
1021 if (DB_TYPE(mp) == M_IOCDATA || iocp->ioc_count != TRANSPARENT)
1022 sig = *(int *)mp->b_cont->b_rptr;
1024 sig = (int)*(intptr_t *)mp->b_cont->b_rptr;
1027 miocnak(q, mp, 0, EINVAL);
1037 miocnak(q, mp, 0, EAGAIN);
1041 mioc2ack(mp, NULL, 0, 0);
1042 qreply(q, mp);
1050 if (DB_TYPE(mp) == M_IOCTL) {
1051 error = miocpullup(mp, sizeof (int));
1053 miocnak(q, mp, 0, error);
1058 onoff = *(int *)mp->b_cont->b_rptr;
1065 miocnak(q, mp, 0, EAGAIN);
1074 mioc2ack(mp, NULL, 0, 0);
1075 qreply(q, mp);
1088 putnext(q, mp);