Lines Matching full:chunk

33 static bool chunk_is_empty(const struct buf_chunk *chunk)  in chunk_is_empty()  argument
35 return chunk->r_offset >= chunk->w_offset; in chunk_is_empty()
38 static bool chunk_is_full(const struct buf_chunk *chunk) in chunk_is_full() argument
40 return chunk->w_offset >= chunk->dlen; in chunk_is_full()
43 static size_t chunk_len(const struct buf_chunk *chunk) in chunk_len() argument
45 return chunk->w_offset - chunk->r_offset; in chunk_len()
48 static size_t chunk_space(const struct buf_chunk *chunk) in chunk_space() argument
50 return chunk->dlen - chunk->w_offset; in chunk_space()
53 static void chunk_reset(struct buf_chunk *chunk) in chunk_reset() argument
55 chunk->next = NULL; in chunk_reset()
56 chunk->r_offset = chunk->w_offset = 0; in chunk_reset()
59 static size_t chunk_append(struct buf_chunk *chunk, in chunk_append() argument
62 unsigned char *p = &chunk->x.data[chunk->w_offset]; in chunk_append()
63 size_t n = chunk->dlen - chunk->w_offset; in chunk_append()
64 DEBUGASSERT(chunk->dlen >= chunk->w_offset); in chunk_append()
68 chunk->w_offset += n; in chunk_append()
73 static size_t chunk_read(struct buf_chunk *chunk, in chunk_read() argument
76 unsigned char *p = &chunk->x.data[chunk->r_offset]; in chunk_read()
77 size_t n = chunk->w_offset - chunk->r_offset; in chunk_read()
78 DEBUGASSERT(chunk->w_offset >= chunk->r_offset); in chunk_read()
84 chunk->r_offset = chunk->w_offset = 0; in chunk_read()
89 chunk->r_offset += len; in chunk_read()
94 static size_t chunk_unwrite(struct buf_chunk *chunk, size_t len) in chunk_unwrite() argument
96 size_t n = chunk->w_offset - chunk->r_offset; in chunk_unwrite()
97 DEBUGASSERT(chunk->w_offset >= chunk->r_offset); in chunk_unwrite()
102 chunk->r_offset = chunk->w_offset = 0; in chunk_unwrite()
106 chunk->w_offset -= len; in chunk_unwrite()
111 static ssize_t chunk_slurpn(struct buf_chunk *chunk, size_t max_len, in chunk_slurpn() argument
115 unsigned char *p = &chunk->x.data[chunk->w_offset]; in chunk_slurpn()
116 size_t n = chunk->dlen - chunk->w_offset; /* free amount */ in chunk_slurpn()
119 DEBUGASSERT(chunk->dlen >= chunk->w_offset); in chunk_slurpn()
129 chunk->w_offset += nread; in chunk_slurpn()
134 static void chunk_peek(const struct buf_chunk *chunk, in chunk_peek() argument
137 DEBUGASSERT(chunk->w_offset >= chunk->r_offset); in chunk_peek()
138 *pbuf = &chunk->x.data[chunk->r_offset]; in chunk_peek()
139 *plen = chunk->w_offset - chunk->r_offset; in chunk_peek()
142 static void chunk_peek_at(const struct buf_chunk *chunk, size_t offset, in chunk_peek_at() argument
145 offset += chunk->r_offset; in chunk_peek_at()
146 DEBUGASSERT(chunk->w_offset >= offset); in chunk_peek_at()
147 *pbuf = &chunk->x.data[offset]; in chunk_peek_at()
148 *plen = chunk->w_offset - offset; in chunk_peek_at()
151 static size_t chunk_skip(struct buf_chunk *chunk, size_t amount) in chunk_skip() argument
153 size_t n = chunk->w_offset - chunk->r_offset; in chunk_skip()
154 DEBUGASSERT(chunk->w_offset >= chunk->r_offset); in chunk_skip()
157 chunk->r_offset += n; in chunk_skip()
158 if(chunk->r_offset == chunk->w_offset) in chunk_skip()
159 chunk->r_offset = chunk->w_offset = 0; in chunk_skip()
166 struct buf_chunk *chunk; in chunk_list_free() local
168 chunk = *anchor; in chunk_list_free()
169 *anchor = chunk->next; in chunk_list_free()
170 free(chunk); in chunk_list_free()
189 struct buf_chunk *chunk = NULL; in bufcp_take() local
192 chunk = pool->spare; in bufcp_take()
193 pool->spare = chunk->next; in bufcp_take()
195 chunk_reset(chunk); in bufcp_take()
196 *pchunk = chunk; in bufcp_take()
200 chunk = calloc(1, sizeof(*chunk) + pool->chunk_size); in bufcp_take()
201 if(!chunk) { in bufcp_take()
205 chunk->dlen = pool->chunk_size; in bufcp_take()
206 *pchunk = chunk; in bufcp_take()
211 struct buf_chunk *chunk) in bufcp_put() argument
214 free(chunk); in bufcp_put()
217 chunk_reset(chunk); in bufcp_put()
218 chunk->next = pool->spare; in bufcp_put()
219 pool->spare = chunk; in bufcp_put()
269 struct buf_chunk *chunk; in Curl_bufq_reset() local
271 chunk = q->head; in Curl_bufq_reset()
272 q->head = chunk->next; in Curl_bufq_reset()
273 chunk->next = q->spare; in Curl_bufq_reset()
274 q->spare = chunk; in Curl_bufq_reset()
281 const struct buf_chunk *chunk = q->head; in Curl_bufq_len() local
283 while(chunk) { in Curl_bufq_len()
284 len += chunk_len(chunk); in Curl_bufq_len()
285 chunk = chunk->next; in Curl_bufq_len()
296 struct buf_chunk *chunk = q->spare; in Curl_bufq_space() local
297 while(chunk) { in Curl_bufq_space()
298 space += chunk->dlen; in Curl_bufq_space()
299 chunk = chunk->next; in Curl_bufq_space()
327 struct buf_chunk *chunk = NULL; in get_spare() local
330 chunk = q->spare; in get_spare()
331 q->spare = chunk->next; in get_spare()
332 chunk_reset(chunk); in get_spare()
333 return chunk; in get_spare()
340 if(bufcp_take(q->pool, &chunk)) in get_spare()
343 return chunk; in get_spare()
346 chunk = calloc(1, sizeof(*chunk) + q->chunk_size); in get_spare()
347 if(!chunk) in get_spare()
349 chunk->dlen = q->chunk_size; in get_spare()
351 return chunk; in get_spare()
357 struct buf_chunk *chunk; in prune_head() local
360 chunk = q->head; in prune_head()
361 q->head = chunk->next; in prune_head()
362 if(q->tail == chunk) in prune_head()
365 bufcp_put(q->pool, chunk); in prune_head()
373 free(chunk); in prune_head()
377 chunk->next = q->spare; in prune_head()
378 q->spare = chunk; in prune_head()
384 struct buf_chunk *chunk) in chunk_prev()
387 if(head == chunk) in chunk_prev()
389 if(head->next == chunk) in chunk_prev()
398 struct buf_chunk *chunk; in prune_tail() local
401 chunk = q->tail; in prune_tail()
402 q->tail = chunk_prev(q->head, chunk); in prune_tail()
405 if(q->head == chunk) in prune_tail()
408 bufcp_put(q->pool, chunk); in prune_tail()
416 free(chunk); in prune_tail()
420 chunk->next = q->spare; in prune_tail()
421 q->spare = chunk; in prune_tail()
428 struct buf_chunk *chunk; in get_non_full_tail() local
432 chunk = get_spare(q); in get_non_full_tail()
433 if(chunk) { in get_non_full_tail()
436 q->tail->next = chunk; in get_non_full_tail()
437 q->tail = chunk; in get_non_full_tail()
441 q->head = q->tail = chunk; in get_non_full_tail()
444 return chunk; in get_non_full_tail()