Lines Matching defs:sbp
202 struct sb *sbp;
214 sbp = kmem_alloc(sizeof (struct sb), KM_SLEEP);
215 sbp->sb_rq = rq;
216 sbp->sb_ticks = -1;
217 sbp->sb_chunk = SB_DFLT_CHUNK;
218 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL;
219 sbp->sb_mlen = 0;
220 sbp->sb_mcount = 0;
221 sbp->sb_timeoutid = 0;
222 sbp->sb_drops = 0;
223 sbp->sb_snap = 0;
224 sbp->sb_flags = 0;
225 sbp->sb_state = 0;
227 rq->q_ptr = WR(rq)->q_ptr = sbp;
239 struct sb *sbp = (struct sb *)rq->q_ptr;
241 ASSERT(sbp);
247 if (sbp->sb_timeoutid != 0) {
248 (void) quntimeout(rq, sbp->sb_timeoutid);
249 sbp->sb_timeoutid = 0;
254 if (sbp->sb_mp) {
255 freemsg(sbp->sb_mp);
256 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL;
257 sbp->sb_mlen = 0;
263 kmem_free((caddr_t)sbp, sizeof (struct sb));
283 struct sb *sbp = (struct sb *)wq->q_ptr;
321 sbp->sb_ticks = ticks;
323 sbp->sb_chunk = 0;
325 sbclosechunk(sbp);
348 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr;
350 sbclosechunk(sbp);
354 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr;
365 if (!sbp->sb_chunk) {
390 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr;
408 struct sb *sbp = (struct sb *)wq->q_ptr;
411 if (sbp->sb_flags & SB_SEND_ON_WRITE)
412 sbclosechunk(sbp);
460 struct sb *sbp = (struct sb *)rq->q_ptr;
462 ASSERT(sbp);
466 if (sbp->sb_flags & SB_NO_PROTO_CVT) {
467 sbclosechunk(sbp);
479 if ((sbp->sb_flags & SB_DEFER_CHUNK) &&
480 !(sbp->sb_state & SB_FRCVD)) {
481 sbclosechunk(sbp);
483 sbp->sb_state |= SB_FRCVD;
487 if ((sbp->sb_ticks > 0) && !(sbp->sb_timeoutid))
488 sbp->sb_timeoutid = qtimeout(sbp->sb_rq, sbtick,
489 sbp, sbp->sb_ticks);
499 if (sbp->sb_timeoutid) {
500 (void) quntimeout(sbp->sb_rq,
501 sbp->sb_timeoutid);
502 sbp->sb_timeoutid = 0;
504 if (sbp->sb_mp) {
505 freemsg(sbp->sb_mp);
506 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL;
507 sbp->sb_mlen = 0;
508 sbp->sb_mcount = 0;
521 sbclosechunk(sbp);
523 sbclosechunk(sbp);
530 sbclosechunk(sbp);
569 struct sb *sbp = (struct sb *)wq->q_ptr;
627 sbp->sb_ticks = ticks;
629 sbp->sb_chunk = 0;
631 sbclosechunk(sbp);
663 if (sbp->sb_ticks < 0) {
682 TICK_TO_TIMEVAL32(sbp->sb_ticks, t32);
701 TICK_TO_TIMEVAL(sbp->sb_ticks, t);
712 sbp->sb_ticks = -1;
749 sbp->sb_chunk = *(uint_t *)mp->b_cont->b_rptr;
751 sbclosechunk(sbp);
776 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_chunk;
804 if (!sbp->sb_chunk) {
829 sbp->sb_snap = *(uint_t *)mp->b_cont->b_rptr;
856 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_snap;
877 sbp->sb_flags = *(uint_t *)mp->b_cont->b_rptr;
903 *(uint_t *)mp->b_cont->b_rptr = sbp->sb_flags;
955 struct sb *sbp;
964 sbp = (struct sb *)rq->q_ptr;
971 if ((sbp->sb_snap > 0) && (origlen > sbp->sb_snap) &&
972 (adjmsg(mp, -(origlen - sbp->sb_snap)) == 1))
973 hp.sbh_totlen = hp.sbh_msglen = sbp->sb_snap;
977 if (sbp->sb_flags & SB_NO_HEADER) {
983 if ((hp.sbh_totlen + sbp->sb_mlen) > sbp->sb_chunk)
984 sbclosechunk(sbp);
989 if (hp.sbh_totlen > sbp->sb_chunk) {
1003 if (sbp->sb_mp)
1004 linkb(sbp->sb_tail, mp);
1006 sbp->sb_mp = mp;
1008 sbp->sb_tail = mp;
1009 sbp->sb_mlen += hp.sbh_totlen;
1010 sbp->sb_mcount++;
1020 if ((sbp->sb_mlen + hp.sbh_totlen) > sbp->sb_chunk)
1021 sbclosechunk(sbp);
1027 if (sbp->sb_head == NULL) {
1029 sbp->sb_head = allocb(sizeof (hp), BPRI_MED);
1030 if (sbp->sb_head == NULL) {
1039 sbp->sb_drops++;
1042 sbp->sb_mp = sbp->sb_head;
1050 hp.sbh_drops = sbp->sb_drops;
1052 linkb(sbp->sb_head, mp);
1053 sbp->sb_mcount++;
1054 sbp->sb_mlen += hp.sbh_totlen;
1060 if ((sbp->sb_mlen + pad + SMALLEST_MESSAGE) > sbp->sb_chunk) {
1061 (void) memcpy(sbp->sb_head->b_wptr, (char *)&hp,
1063 sbp->sb_head->b_wptr += sizeof (hp);
1064 ASSERT(sbp->sb_head->b_wptr <=
1065 sbp->sb_head->b_datap->db_lim);
1066 sbclosechunk(sbp);
1075 (void) memcpy(sbp->sb_head->b_wptr, (char *)&hp, sizeof (hp));
1076 sbp->sb_head->b_wptr += sizeof (hp);
1077 ASSERT(sbp->sb_head->b_wptr <= sbp->sb_head->b_datap->db_lim);
1078 sbp->sb_mlen += pad;
1111 sbp->sb_head = last;
1116 sbclosechunk(sbp);
1130 sbp->sb_head = wrapper;
1143 struct sb *sbp = arg;
1146 ASSERT(sbp);
1148 rq = sbp->sb_rq;
1149 sbp->sb_timeoutid = 0; /* timeout has fired */
1152 sbp->sb_timeoutid = qtimeout(rq, sbtick, sbp, sbp->sb_ticks);
1163 sbclosechunk(struct sb *sbp)
1168 ASSERT(sbp);
1170 if (sbp->sb_timeoutid) {
1171 (void) quntimeout(sbp->sb_rq, sbp->sb_timeoutid);
1172 sbp->sb_timeoutid = 0;
1175 mp = sbp->sb_mp;
1176 rq = sbp->sb_rq;
1189 sbp->sb_tail = sbp->sb_mp = sbp->sb_head = NULL;
1190 sbp->sb_mlen = 0;
1191 sbp->sb_mcount = 0;
1192 if (sbp->sb_flags & SB_DEFER_CHUNK)
1193 sbp->sb_state &= ~SB_FRCVD;
1200 struct sb *sbp = (struct sb *)rq->q_ptr;
1203 if (sbp->sb_flags & SB_NO_DROPS)
1207 sbp->sb_drops += sbp->sb_mcount;