Lines Matching refs:sbp

203 	struct sb	*sbp;  in sbopen()  local
215 sbp = kmem_alloc(sizeof (struct sb), KM_SLEEP); in sbopen()
216 sbp->sb_rq = rq; in sbopen()
217 sbp->sb_ticks = -1; in sbopen()
218 sbp->sb_chunk = SB_DFLT_CHUNK; in sbopen()
219 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbopen()
220 sbp->sb_mlen = 0; in sbopen()
221 sbp->sb_mcount = 0; in sbopen()
222 sbp->sb_timeoutid = 0; in sbopen()
223 sbp->sb_drops = 0; in sbopen()
224 sbp->sb_snap = 0; in sbopen()
225 sbp->sb_flags = 0; in sbopen()
226 sbp->sb_state = 0; in sbopen()
228 rq->q_ptr = WR(rq)->q_ptr = sbp; in sbopen()
240 struct sb *sbp = (struct sb *)rq->q_ptr; in sbclose() local
242 ASSERT(sbp); in sbclose()
248 if (sbp->sb_timeoutid != 0) { in sbclose()
249 (void) quntimeout(rq, sbp->sb_timeoutid); in sbclose()
250 sbp->sb_timeoutid = 0; in sbclose()
255 if (sbp->sb_mp) { in sbclose()
256 freemsg(sbp->sb_mp); in sbclose()
257 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbclose()
258 sbp->sb_mlen = 0; in sbclose()
264 kmem_free((caddr_t)sbp, sizeof (struct sb)); in sbclose()
284 struct sb *sbp = (struct sb *)wq->q_ptr; in sbioc() local
322 sbp->sb_ticks = ticks; in sbioc()
324 sbp->sb_chunk = 0; in sbioc()
326 sbclosechunk(sbp); in sbioc()
349 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
351 sbclosechunk(sbp); in sbioc()
355 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
366 if (!sbp->sb_chunk) { in sbioc()
391 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
409 struct sb *sbp = (struct sb *)wq->q_ptr; in sbwput() local
412 if (sbp->sb_flags & SB_SEND_ON_WRITE) in sbwput()
413 sbclosechunk(sbp); in sbwput()
461 struct sb *sbp = (struct sb *)rq->q_ptr; in sbrput() local
463 ASSERT(sbp); in sbrput()
467 if (sbp->sb_flags & SB_NO_PROTO_CVT) { in sbrput()
468 sbclosechunk(sbp); in sbrput()
480 if ((sbp->sb_flags & SB_DEFER_CHUNK) && in sbrput()
481 !(sbp->sb_state & SB_FRCVD)) { in sbrput()
482 sbclosechunk(sbp); in sbrput()
484 sbp->sb_state |= SB_FRCVD; in sbrput()
488 if ((sbp->sb_ticks > 0) && !(sbp->sb_timeoutid)) in sbrput()
489 sbp->sb_timeoutid = qtimeout(sbp->sb_rq, sbtick, in sbrput()
490 sbp, sbp->sb_ticks); in sbrput()
500 if (sbp->sb_timeoutid) { in sbrput()
501 (void) quntimeout(sbp->sb_rq, in sbrput()
502 sbp->sb_timeoutid); in sbrput()
503 sbp->sb_timeoutid = 0; in sbrput()
505 if (sbp->sb_mp) { in sbrput()
506 freemsg(sbp->sb_mp); in sbrput()
507 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbrput()
508 sbp->sb_mlen = 0; in sbrput()
509 sbp->sb_mcount = 0; in sbrput()
522 sbclosechunk(sbp); in sbrput()
524 sbclosechunk(sbp); in sbrput()
531 sbclosechunk(sbp); in sbrput()
570 struct sb *sbp = (struct sb *)wq->q_ptr; in sbioctl() local
628 sbp->sb_ticks = ticks; in sbioctl()
630 sbp->sb_chunk = 0; in sbioctl()
632 sbclosechunk(sbp); in sbioctl()
664 if (sbp->sb_ticks < 0) { in sbioctl()
683 TICK_TO_TIMEVAL32(sbp->sb_ticks, t32); in sbioctl()
702 TICK_TO_TIMEVAL(sbp->sb_ticks, t); in sbioctl()
713 sbp->sb_ticks = -1; in sbioctl()
750 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
752 sbclosechunk(sbp); in sbioctl()
777 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_chunk; in sbioctl()
805 if (!sbp->sb_chunk) { in sbioctl()
830 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
857 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_snap; in sbioctl()
878 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
904 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_flags; in sbioctl()
956 struct sb *sbp; in sbaddmsg() local
965 sbp = (struct sb *)rq->q_ptr; in sbaddmsg()
972 if ((sbp->sb_snap > 0) && (origlen > sbp->sb_snap) && in sbaddmsg()
973 (adjmsg(mp, -(origlen - sbp->sb_snap)) == 1)) in sbaddmsg()
974 hp.sbh_totlen = hp.sbh_msglen = sbp->sb_snap; in sbaddmsg()
978 if (sbp->sb_flags & SB_NO_HEADER) { in sbaddmsg()
984 if ((hp.sbh_totlen + sbp->sb_mlen) > sbp->sb_chunk) in sbaddmsg()
985 sbclosechunk(sbp); in sbaddmsg()
990 if (hp.sbh_totlen > sbp->sb_chunk) { in sbaddmsg()
1004 if (sbp->sb_mp) in sbaddmsg()
1005 linkb(sbp->sb_tail, mp); in sbaddmsg()
1007 sbp->sb_mp = mp; in sbaddmsg()
1009 sbp->sb_tail = mp; in sbaddmsg()
1010 sbp->sb_mlen += hp.sbh_totlen; in sbaddmsg()
1011 sbp->sb_mcount++; in sbaddmsg()
1025 if ((hp.sbh_totlen + sbp->sb_mlen) > sbp->sb_chunk) in sbaddmsg()
1026 sbclosechunk(sbp); in sbaddmsg()
1028 if (sbp->sb_head == NULL) { in sbaddmsg()
1030 sbp->sb_head = allocb(sizeof (hp), BPRI_MED); in sbaddmsg()
1031 if (sbp->sb_head == NULL) { in sbaddmsg()
1040 sbp->sb_drops++; in sbaddmsg()
1043 sbp->sb_mp = sbp->sb_head; in sbaddmsg()
1049 hp.sbh_drops = sbp->sb_drops; in sbaddmsg()
1051 (void) memcpy(sbp->sb_head->b_wptr, (char *)&hp, sizeof (hp)); in sbaddmsg()
1052 sbp->sb_head->b_wptr += sizeof (hp); in sbaddmsg()
1054 ASSERT(sbp->sb_head->b_wptr <= sbp->sb_head->b_datap->db_lim); in sbaddmsg()
1059 linkb(sbp->sb_head, mp); in sbaddmsg()
1061 sbp->sb_mcount++; in sbaddmsg()
1062 sbp->sb_mlen += hp.sbh_totlen; in sbaddmsg()
1071 if (hp.sbh_totlen + SMALLEST_MESSAGE > sbp->sb_chunk) { in sbaddmsg()
1072 sbclosechunk(sbp); in sbaddmsg()
1108 sbp->sb_head = last; in sbaddmsg()
1113 sbclosechunk(sbp); in sbaddmsg()
1127 sbp->sb_head = wrapper; in sbaddmsg()
1140 struct sb *sbp = arg; in sbtick() local
1143 ASSERT(sbp); in sbtick()
1145 rq = sbp->sb_rq; in sbtick()
1146 sbp->sb_timeoutid = 0; /* timeout has fired */ in sbtick()
1149 sbp->sb_timeoutid = qtimeout(rq, sbtick, sbp, sbp->sb_ticks); in sbtick()
1160 sbclosechunk(struct sb *sbp) in sbclosechunk() argument
1165 ASSERT(sbp); in sbclosechunk()
1167 if (sbp->sb_timeoutid) { in sbclosechunk()
1168 (void) quntimeout(sbp->sb_rq, sbp->sb_timeoutid); in sbclosechunk()
1169 sbp->sb_timeoutid = 0; in sbclosechunk()
1172 mp = sbp->sb_mp; in sbclosechunk()
1173 rq = sbp->sb_rq; in sbclosechunk()
1186 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbclosechunk()
1187 sbp->sb_mlen = 0; in sbclosechunk()
1188 sbp->sb_mcount = 0; in sbclosechunk()
1189 if (sbp->sb_flags & SB_DEFER_CHUNK) in sbclosechunk()
1190 sbp->sb_state &= ~SB_FRCVD; in sbclosechunk()
1197 struct sb *sbp = (struct sb *)rq->q_ptr; in sbsendit() local
1200 if (sbp->sb_flags & SB_NO_DROPS) in sbsendit()
1204 sbp->sb_drops += sbp->sb_mcount; in sbsendit()