Lines Matching refs:sb

10 static void sbappendsb(struct sbuf *sb, struct mbuf *m);
14 * sbspace(struct sockbuff *sb)
16 * return SB_DATALEN - sb->sb_cc;
21 sbfree(struct sbuf *sb)
23 free(sb->sb_data);
27 sbdrop(struct sbuf *sb, int num)
33 if(num > sb->sb_cc)
34 num = sb->sb_cc;
35 sb->sb_cc -= num;
36 sb->sb_rptr += num;
37 if(sb->sb_rptr >= sb->sb_data + sb->sb_datalen)
38 sb->sb_rptr -= sb->sb_datalen;
43 sbreserve(struct sbuf *sb, int size)
45 if (sb->sb_data) {
47 if (sb->sb_datalen != size) {
48 sb->sb_wptr = sb->sb_rptr = sb->sb_data = (char *)realloc(sb->sb_data, size);
49 sb->sb_cc = 0;
50 if (sb->sb_wptr)
51 sb->sb_datalen = size;
53 sb->sb_datalen = 0;
56 sb->sb_wptr = sb->sb_rptr = sb->sb_data = (char *)malloc(size);
57 sb->sb_cc = 0;
58 if (sb->sb_wptr)
59 sb->sb_datalen = size;
61 sb->sb_datalen = 0;
128 * Copy the data from m into sb
132 sbappendsb(struct sbuf *sb, struct mbuf *m)
138 if (sb->sb_wptr < sb->sb_rptr) {
139 n = sb->sb_rptr - sb->sb_wptr;
141 memcpy(sb->sb_wptr, m->m_data, n);
144 n = sb->sb_data + sb->sb_datalen - sb->sb_wptr;
146 memcpy(sb->sb_wptr, m->m_data, n);
150 nn = sb->sb_rptr - sb->sb_data;
152 memcpy(sb->sb_data,m->m_data+n,nn);
157 sb->sb_cc += n;
158 sb->sb_wptr += n;
159 if (sb->sb_wptr >= sb->sb_data + sb->sb_datalen)
160 sb->sb_wptr -= sb->sb_datalen;
169 sbcopy(struct sbuf *sb, int off, int len, char *to)
173 from = sb->sb_rptr + off;
174 if (from >= sb->sb_data + sb->sb_datalen)
175 from -= sb->sb_datalen;
177 if (from < sb->sb_wptr) {
178 if (len > sb->sb_cc) len = sb->sb_cc;
182 off = (sb->sb_data + sb->sb_datalen) - from;
187 memcpy(to+off,sb->sb_data,len);