cbuffer_wpeek.c (414B)
1 /* ISC license. */ 2 3 #include <sys/uio.h> 4 #include <skalibs/cbuffer.h> 5 6 void cbuffer_wpeek (cbuffer const *b, struct iovec *v) 7 { 8 size_t last = (b->a - 1 + b->p) % b->a ; 9 v[0].iov_base = b->x + b->n ; 10 if (last >= b->n) 11 { 12 v[0].iov_len = last - b->n ; 13 v[1].iov_base = 0 ; 14 v[1].iov_len = 0 ; 15 } 16 else 17 { 18 v[0].iov_len = b->a - b->n ; 19 v[1].iov_base = b->x ; 20 v[1].iov_len = last ; 21 } 22 }