Lines Matching refs:sbp
202 struct sb *sbp; in sbopen() local
214 sbp = kmem_alloc(sizeof (struct sb), KM_SLEEP); in sbopen()
215 sbp->sb_rq = rq; in sbopen()
216 sbp->sb_ticks = -1; in sbopen()
217 sbp->sb_chunk = SB_DFLT_CHUNK; in sbopen()
218 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbopen()
219 sbp->sb_mlen = 0; in sbopen()
220 sbp->sb_mcount = 0; in sbopen()
221 sbp->sb_timeoutid = 0; in sbopen()
222 sbp->sb_drops = 0; in sbopen()
223 sbp->sb_snap = 0; in sbopen()
224 sbp->sb_flags = 0; in sbopen()
225 sbp->sb_state = 0; in sbopen()
227 rq->q_ptr = WR(rq)->q_ptr = sbp; in sbopen()
239 struct sb *sbp = (struct sb *)rq->q_ptr; in sbclose() local
241 ASSERT(sbp); in sbclose()
247 if (sbp->sb_timeoutid != 0) { in sbclose()
248 (void) quntimeout(rq, sbp->sb_timeoutid); in sbclose()
249 sbp->sb_timeoutid = 0; in sbclose()
254 if (sbp->sb_mp) { in sbclose()
255 freemsg(sbp->sb_mp); in sbclose()
256 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbclose()
257 sbp->sb_mlen = 0; in sbclose()
263 kmem_free((caddr_t)sbp, sizeof (struct sb)); in sbclose()
283 struct sb *sbp = (struct sb *)wq->q_ptr; in sbioc() local
321 sbp->sb_ticks = ticks; in sbioc()
323 sbp->sb_chunk = 0; in sbioc()
325 sbclosechunk(sbp); in sbioc()
348 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
350 sbclosechunk(sbp); in sbioc()
354 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
365 if (!sbp->sb_chunk) { in sbioc()
390 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr; in sbioc()
408 struct sb *sbp = (struct sb *)wq->q_ptr; in sbwput() local
411 if (sbp->sb_flags & SB_SEND_ON_WRITE) in sbwput()
412 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()
572 struct sb *sbp = (struct sb *)wq->q_ptr; in sbioctl() local
630 sbp->sb_ticks = ticks; in sbioctl()
632 sbp->sb_chunk = 0; in sbioctl()
634 sbclosechunk(sbp); in sbioctl()
666 if (sbp->sb_ticks < 0) { in sbioctl()
685 TICK_TO_TIMEVAL32(sbp->sb_ticks, t32); in sbioctl()
704 TICK_TO_TIMEVAL(sbp->sb_ticks, t); in sbioctl()
715 sbp->sb_ticks = -1; in sbioctl()
752 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
754 sbclosechunk(sbp); in sbioctl()
779 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_chunk; in sbioctl()
807 if (!sbp->sb_chunk) { in sbioctl()
832 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
859 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_snap; in sbioctl()
880 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr; in sbioctl()
906 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_flags; in sbioctl()
958 struct sb *sbp; in sbaddmsg() local
967 sbp = (struct sb *)rq->q_ptr; in sbaddmsg()
974 if ((sbp->sb_snap > 0) && (origlen > sbp->sb_snap) && in sbaddmsg()
975 (adjmsg(mp, -(origlen - sbp->sb_snap)) == 1)) in sbaddmsg()
976 hp.sbh_totlen = hp.sbh_msglen = sbp->sb_snap; in sbaddmsg()
980 if (sbp->sb_flags & SB_NO_HEADER) { in sbaddmsg()
986 if ((hp.sbh_totlen + sbp->sb_mlen) > sbp->sb_chunk) in sbaddmsg()
987 sbclosechunk(sbp); in sbaddmsg()
992 if (hp.sbh_totlen > sbp->sb_chunk) { in sbaddmsg()
1006 if (sbp->sb_mp) in sbaddmsg()
1007 linkb(sbp->sb_tail, mp); in sbaddmsg()
1009 sbp->sb_mp = mp; in sbaddmsg()
1011 sbp->sb_tail = mp; in sbaddmsg()
1012 sbp->sb_mlen += hp.sbh_totlen; in sbaddmsg()
1013 sbp->sb_mcount++; in sbaddmsg()
1023 if ((sbp->sb_mlen + hp.sbh_totlen) > sbp->sb_chunk) in sbaddmsg()
1024 sbclosechunk(sbp); in sbaddmsg()
1030 if (sbp->sb_head == NULL) { in sbaddmsg()
1032 sbp->sb_head = allocb(sizeof (hp), BPRI_MED); in sbaddmsg()
1033 if (sbp->sb_head == NULL) { in sbaddmsg()
1042 sbp->sb_drops++; in sbaddmsg()
1045 sbp->sb_mp = sbp->sb_head; in sbaddmsg()
1053 hp.sbh_drops = sbp->sb_drops; in sbaddmsg()
1055 linkb(sbp->sb_head, mp); in sbaddmsg()
1056 sbp->sb_mcount++; in sbaddmsg()
1057 sbp->sb_mlen += hp.sbh_totlen; in sbaddmsg()
1063 if ((sbp->sb_mlen + pad + SMALLEST_MESSAGE) > sbp->sb_chunk) { in sbaddmsg()
1064 (void) memcpy(sbp->sb_head->b_wptr, (char *)&hp, in sbaddmsg()
1066 sbp->sb_head->b_wptr += sizeof (hp); in sbaddmsg()
1067 ASSERT(sbp->sb_head->b_wptr <= in sbaddmsg()
1068 sbp->sb_head->b_datap->db_lim); in sbaddmsg()
1069 sbclosechunk(sbp); in sbaddmsg()
1078 (void) memcpy(sbp->sb_head->b_wptr, (char *)&hp, sizeof (hp)); in sbaddmsg()
1079 sbp->sb_head->b_wptr += sizeof (hp); in sbaddmsg()
1080 ASSERT(sbp->sb_head->b_wptr <= sbp->sb_head->b_datap->db_lim); in sbaddmsg()
1081 sbp->sb_mlen += pad; in sbaddmsg()
1114 sbp->sb_head = last; in sbaddmsg()
1119 sbclosechunk(sbp); in sbaddmsg()
1133 sbp->sb_head = wrapper; in sbaddmsg()
1146 struct sb *sbp = arg; in sbtick() local
1149 ASSERT(sbp); in sbtick()
1151 rq = sbp->sb_rq; in sbtick()
1152 sbp->sb_timeoutid = 0; /* timeout has fired */ in sbtick()
1155 sbp->sb_timeoutid = qtimeout(rq, sbtick, sbp, sbp->sb_ticks); in sbtick()
1166 sbclosechunk(struct sb *sbp) in sbclosechunk() argument
1171 ASSERT(sbp); in sbclosechunk()
1173 if (sbp->sb_timeoutid) { in sbclosechunk()
1174 (void) quntimeout(sbp->sb_rq, sbp->sb_timeoutid); in sbclosechunk()
1175 sbp->sb_timeoutid = 0; in sbclosechunk()
1178 mp = sbp->sb_mp; in sbclosechunk()
1179 rq = sbp->sb_rq; in sbclosechunk()
1192 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL; in sbclosechunk()
1193 sbp->sb_mlen = 0; in sbclosechunk()
1194 sbp->sb_mcount = 0; in sbclosechunk()
1195 if (sbp->sb_flags & SB_DEFER_CHUNK) in sbclosechunk()
1196 sbp->sb_state &= ~SB_FRCVD; in sbclosechunk()
1203 struct sb *sbp = (struct sb *)rq->q_ptr; in sbsendit() local
1206 if (sbp->sb_flags & SB_NO_DROPS) in sbsendit()
1210 sbp->sb_drops += sbp->sb_mcount; in sbsendit()