Lines Matching defs:rb
405 pdu_readbuf_read(struct pdu_readbuf *rb, void *ptr, size_t len)
409 if (rb->rpos == rb->wpos) {
411 } else if (rb->rpos < rb->wpos) {
412 l = PDU_MIN(rb->wpos - rb->rpos, len);
413 memcpy(ptr, rb->buf + rb->rpos, l);
414 rb->rpos += l;
417 l = PDU_MIN(rb->size - rb->rpos, len);
418 memcpy(ptr, rb->buf + rb->rpos, l);
419 rb->rpos += l;
420 if (rb->rpos == rb->size)
421 rb->rpos = 0;
423 return l + pdu_readbuf_read(rb, (char *)ptr + l,
430 pdu_readbuf_len(struct pdu_readbuf *rb)
432 if (rb->rpos <= rb->wpos)
433 return rb->wpos - rb->rpos;
435 return rb->size - (rb->rpos - rb->wpos);
439 pdu_readbuf_set(struct pdu_readbuf *rb, size_t bsize)
443 if (bsize < rb->size)
446 if ((nb = realloc(rb->buf, bsize)) == NULL) {
447 free(rb->buf);
450 rb->buf = nb;
451 rb->size = bsize;
456 pdu_readbuf_free(struct pdu_readbuf *rb)
458 free(rb->buf);