Lines Matching defs:bufs

116 int nghttp2_bufs_init(nghttp2_bufs *bufs, size_t chunk_length, size_t max_chunk,
118 return nghttp2_bufs_init2(bufs, chunk_length, max_chunk, 0, mem);
121 int nghttp2_bufs_init2(nghttp2_bufs *bufs, size_t chunk_length,
123 return nghttp2_bufs_init3(bufs, chunk_length, max_chunk, max_chunk, offset,
127 int nghttp2_bufs_init3(nghttp2_bufs *bufs, size_t chunk_length,
142 bufs->mem = mem;
143 bufs->offset = offset;
145 bufs->head = chain;
146 bufs->cur = bufs->head;
148 nghttp2_buf_shift_right(&bufs->cur->buf, offset);
150 bufs->chunk_length = chunk_length;
151 bufs->chunk_used = 1;
152 bufs->max_chunk = max_chunk;
153 bufs->chunk_keep = chunk_keep;
158 int nghttp2_bufs_realloc(nghttp2_bufs *bufs, size_t chunk_length) {
162 if (chunk_length < bufs->offset) {
166 rv = buf_chain_new(&chain, chunk_length, bufs->mem);
171 nghttp2_bufs_free(bufs);
173 bufs->head = chain;
174 bufs->cur = bufs->head;
176 nghttp2_buf_shift_right(&bufs->cur->buf, bufs->offset);
178 bufs->chunk_length = chunk_length;
179 bufs->chunk_used = 1;
184 void nghttp2_bufs_free(nghttp2_bufs *bufs) {
187 if (bufs == NULL) {
191 for (chain = bufs->head; chain;) {
194 buf_chain_del(chain, bufs->mem);
199 bufs->head = NULL;
202 int nghttp2_bufs_wrap_init(nghttp2_bufs *bufs, uint8_t *begin, size_t len,
215 bufs->mem = mem;
216 bufs->offset = 0;
218 bufs->head = chain;
219 bufs->cur = bufs->head;
221 bufs->chunk_length = len;
222 bufs->chunk_used = 1;
223 bufs->max_chunk = 1;
224 bufs->chunk_keep = 1;
229 int nghttp2_bufs_wrap_init2(nghttp2_bufs *bufs, const nghttp2_vec *vec,
237 return nghttp2_bufs_wrap_init(bufs, NULL, 0, mem);
254 bufs->mem = mem;
255 bufs->offset = 0;
257 bufs->head = head_chain;
258 bufs->cur = bufs->head;
261 bufs->chunk_length = 0;
262 bufs->chunk_used = veclen;
263 bufs->max_chunk = veclen;
264 bufs->chunk_keep = veclen;
269 void nghttp2_bufs_wrap_free(nghttp2_bufs *bufs) {
270 if (bufs == NULL) {
274 if (bufs->head) {
275 nghttp2_mem_free(bufs->mem, bufs->head);
279 void nghttp2_bufs_seek_last_present(nghttp2_bufs *bufs) {
282 for (ci = bufs->cur; ci; ci = ci->next) {
286 bufs->cur = ci;
291 size_t nghttp2_bufs_len(nghttp2_bufs *bufs) {
296 for (ci = bufs->head; ci; ci = ci->next) {
303 static int bufs_alloc_chain(nghttp2_bufs *bufs) {
307 if (bufs->cur->next) {
308 bufs->cur = bufs->cur->next;
313 if (bufs->max_chunk == bufs->chunk_used) {
317 rv = buf_chain_new(&chain, bufs->chunk_length, bufs->mem);
322 DEBUGF("new buffer %zu bytes allocated for bufs %p, used %zu\n",
323 bufs->chunk_length, bufs, bufs->chunk_used);
325 ++bufs->chunk_used;
327 bufs->cur->next = chain;
328 bufs->cur = chain;
330 nghttp2_buf_shift_right(&bufs->cur->buf, bufs->offset);
335 int nghttp2_bufs_add(nghttp2_bufs *bufs, const void *data, size_t len) {
344 buf = &bufs->cur->buf;
348 rv = bufs_alloc_chain(bufs);
363 static int bufs_ensure_addb(nghttp2_bufs *bufs) {
367 buf = &bufs->cur->buf;
373 rv = bufs_alloc_chain(bufs);
381 int nghttp2_bufs_addb(nghttp2_bufs *bufs, uint8_t b) {
384 rv = bufs_ensure_addb(bufs);
389 *bufs->cur->buf.last++ = b;
394 int nghttp2_bufs_addb_hold(nghttp2_bufs *bufs, uint8_t b) {
397 rv = bufs_ensure_addb(bufs);
402 *bufs->cur->buf.last = b;
407 int nghttp2_bufs_orb(nghttp2_bufs *bufs, uint8_t b) {
410 rv = bufs_ensure_addb(bufs);
415 *bufs->cur->buf.last++ |= b;
420 int nghttp2_bufs_orb_hold(nghttp2_bufs *bufs, uint8_t b) {
423 rv = bufs_ensure_addb(bufs);
428 *bufs->cur->buf.last |= b;
433 ssize_t nghttp2_bufs_remove(nghttp2_bufs *bufs, uint8_t **out) {
442 for (chain = bufs->head; chain; chain = chain->next) {
451 res = nghttp2_mem_malloc(bufs->mem, len);
458 for (chain = bufs->head; chain; chain = chain->next) {
468 size_t nghttp2_bufs_remove_copy(nghttp2_bufs *bufs, uint8_t *out) {
474 len = nghttp2_bufs_len(bufs);
478 for (chain = bufs->head; chain; chain = chain->next) {
486 void nghttp2_bufs_reset(nghttp2_bufs *bufs) {
490 k = bufs->chunk_keep;
492 for (ci = bufs->head; ci; ci = ci->next) {
494 nghttp2_buf_shift_right(&ci->buf, bufs->offset);
508 buf_chain_del(ci, bufs->mem);
513 bufs->chunk_used = bufs->chunk_keep;
516 bufs->cur = bufs->head;
519 int nghttp2_bufs_advance(nghttp2_bufs *bufs) { return bufs_alloc_chain(bufs); }
521 int nghttp2_bufs_next_present(nghttp2_bufs *bufs) {
524 chain = bufs->cur->next;