Lines Matching refs:buffer

129 #define CHAIN_SPACE_PTR(ch) ((ch)->buffer + (ch)->misalign + (ch)->off)
188 chain->buffer = EVBUFFER_CHAIN_EXTRA(unsigned char, chain); in evbuffer_chain_new()
219 (*info->cleanupfn)(chain->buffer, in evbuffer_chain_free()
231 UnmapViewOfFile(chain->buffer); in evbuffer_chain_free()
364 struct evbuffer *buffer; in evbuffer_new() local
366 buffer = mm_calloc(1, sizeof(struct evbuffer)); in evbuffer_new()
367 if (buffer == NULL) in evbuffer_new()
370 LIST_INIT(&buffer->callbacks); in evbuffer_new()
371 buffer->refcnt = 1; in evbuffer_new()
372 buffer->last_with_datap = &buffer->first; in evbuffer_new()
374 return (buffer); in evbuffer_new()
411 evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base *base) in evbuffer_defer_callbacks() argument
413 EVBUFFER_LOCK(buffer); in evbuffer_defer_callbacks()
414 buffer->cb_queue = base; in evbuffer_defer_callbacks()
415 buffer->deferred_cbs = 1; in evbuffer_defer_callbacks()
416 event_deferred_cb_init_(&buffer->deferred, in evbuffer_defer_callbacks()
418 evbuffer_deferred_callback, buffer); in evbuffer_defer_callbacks()
419 EVBUFFER_UNLOCK(buffer); in evbuffer_defer_callbacks()
456 evbuffer_run_callbacks(struct evbuffer *buffer, int running_deferred) in evbuffer_run_callbacks() argument
467 } else if (buffer->deferred_cbs) { in evbuffer_run_callbacks()
478 ASSERT_EVBUFFER_LOCKED(buffer); in evbuffer_run_callbacks()
480 if (LIST_EMPTY(&buffer->callbacks)) { in evbuffer_run_callbacks()
481 buffer->n_add_for_cb = buffer->n_del_for_cb = 0; in evbuffer_run_callbacks()
484 if (buffer->n_add_for_cb == 0 && buffer->n_del_for_cb == 0) in evbuffer_run_callbacks()
487 new_size = buffer->total_len; in evbuffer_run_callbacks()
488 info.orig_size = new_size + buffer->n_del_for_cb - buffer->n_add_for_cb; in evbuffer_run_callbacks()
489 info.n_added = buffer->n_add_for_cb; in evbuffer_run_callbacks()
490 info.n_deleted = buffer->n_del_for_cb; in evbuffer_run_callbacks()
492 buffer->n_add_for_cb = 0; in evbuffer_run_callbacks()
493 buffer->n_del_for_cb = 0; in evbuffer_run_callbacks()
495 for (cbent = LIST_FIRST(&buffer->callbacks); in evbuffer_run_callbacks()
496 cbent != LIST_END(&buffer->callbacks); in evbuffer_run_callbacks()
506 cbent->cb.cb_obsolete(buffer, in evbuffer_run_callbacks()
509 cbent->cb.cb_func(buffer, &info, cbent->cbarg); in evbuffer_run_callbacks()
514 evbuffer_invoke_callbacks_(struct evbuffer *buffer) in evbuffer_invoke_callbacks_() argument
516 if (LIST_EMPTY(&buffer->callbacks)) { in evbuffer_invoke_callbacks_()
517 buffer->n_add_for_cb = buffer->n_del_for_cb = 0; in evbuffer_invoke_callbacks_()
521 if (buffer->deferred_cbs) { in evbuffer_invoke_callbacks_()
522 if (event_deferred_cb_schedule_(buffer->cb_queue, &buffer->deferred)) { in evbuffer_invoke_callbacks_()
523 evbuffer_incref_and_lock_(buffer); in evbuffer_invoke_callbacks_()
524 if (buffer->parent) in evbuffer_invoke_callbacks_()
525 bufferevent_incref_(buffer->parent); in evbuffer_invoke_callbacks_()
526 EVBUFFER_UNLOCK(buffer); in evbuffer_invoke_callbacks_()
530 evbuffer_run_callbacks(buffer, 0); in evbuffer_invoke_callbacks_()
537 struct evbuffer *buffer = arg; in evbuffer_deferred_callback() local
541 EVBUFFER_LOCK(buffer); in evbuffer_deferred_callback()
542 parent = buffer->parent; in evbuffer_deferred_callback()
543 evbuffer_run_callbacks(buffer, 1); in evbuffer_deferred_callback()
544 evbuffer_decref_and_unlock_(buffer); in evbuffer_deferred_callback()
550 evbuffer_remove_all_callbacks(struct evbuffer *buffer) in evbuffer_remove_all_callbacks() argument
554 while ((cbent = LIST_FIRST(&buffer->callbacks))) { in evbuffer_remove_all_callbacks()
561 evbuffer_decref_and_unlock_(struct evbuffer *buffer) in evbuffer_decref_and_unlock_() argument
564 ASSERT_EVBUFFER_LOCKED(buffer); in evbuffer_decref_and_unlock_()
566 EVUTIL_ASSERT(buffer->refcnt > 0); in evbuffer_decref_and_unlock_()
568 if (--buffer->refcnt > 0) { in evbuffer_decref_and_unlock_()
569 EVBUFFER_UNLOCK(buffer); in evbuffer_decref_and_unlock_()
573 for (chain = buffer->first; chain != NULL; chain = next) { in evbuffer_decref_and_unlock_()
577 evbuffer_remove_all_callbacks(buffer); in evbuffer_decref_and_unlock_()
578 if (buffer->deferred_cbs) in evbuffer_decref_and_unlock_()
579 event_deferred_cb_cancel_(buffer->cb_queue, &buffer->deferred); in evbuffer_decref_and_unlock_()
581 EVBUFFER_UNLOCK(buffer); in evbuffer_decref_and_unlock_()
582 if (buffer->own_lock) in evbuffer_decref_and_unlock_()
583 EVTHREAD_FREE_LOCK(buffer->lock, EVTHREAD_LOCKTYPE_RECURSIVE); in evbuffer_decref_and_unlock_()
584 mm_free(buffer); in evbuffer_decref_and_unlock_()
588 evbuffer_free(struct evbuffer *buffer) in evbuffer_free() argument
590 EVBUFFER_LOCK(buffer); in evbuffer_free()
591 evbuffer_decref_and_unlock_(buffer); in evbuffer_free()
607 evbuffer_get_length(const struct evbuffer *buffer) in evbuffer_get_length() argument
611 EVBUFFER_LOCK(buffer); in evbuffer_get_length()
613 result = (buffer->total_len); in evbuffer_get_length()
615 EVBUFFER_UNLOCK(buffer); in evbuffer_get_length()
842 memcpy(tmp->buffer, chain->buffer + chain->misalign, in PRESERVE_PINNED()
942 tmp->buffer = chain->buffer; in APPEND_CHAIN_MULTICAST()
1232 chain->buffer + chain->misalign + pos_in_chain, in evbuffer_copyout_from()
1246 memcpy(data, chain->buffer + chain->misalign + pos_in_chain, in evbuffer_copyout_from()
1327 evbuffer_add(dst, chain->buffer + chain->misalign, datlen); in evbuffer_remove_buffer()
1353 unsigned char *buffer, *result = NULL; in evbuffer_pullup() local
1373 result = chain->buffer + chain->misalign; in evbuffer_pullup()
1394 buffer = CHAIN_SPACE_PTR(chain); in evbuffer_pullup()
1402 buffer = chain->buffer + chain->misalign + chain->off; in evbuffer_pullup()
1412 buffer = tmp->buffer; in evbuffer_pullup()
1424 if (chain->buffer) { in evbuffer_pullup()
1425 memcpy(buffer, chain->buffer + chain->misalign, chain->off); in evbuffer_pullup()
1427 buffer += chain->off; in evbuffer_pullup()
1438 memcpy(buffer, chain->buffer + chain->misalign, size); in evbuffer_pullup()
1456 result = (tmp->buffer + tmp->misalign); in evbuffer_pullup()
1468 evbuffer_readline(struct evbuffer *buffer) in evbuffer_readline() argument
1470 return evbuffer_readln(buffer, NULL, EVBUFFER_EOL_ANY); in evbuffer_readline()
1479 char *buffer = (char *)chain->buffer + chain->misalign; in evbuffer_strchr() local
1480 char *cp = memchr(buffer+i, chr, chain->off-i); in evbuffer_strchr()
1483 it->internal_.pos_in_chain = cp - buffer; in evbuffer_strchr()
1484 it->pos += (cp - buffer - i); in evbuffer_strchr()
1528 char *buffer = (char *)chain->buffer + chain->misalign; in evbuffer_find_eol_char() local
1529 char *cp = find_eol_char(buffer+i, chain->off-i); in evbuffer_find_eol_char()
1532 it->internal_.pos_in_chain = cp - buffer; in evbuffer_find_eol_char()
1533 it->pos += (cp - buffer) - i; in evbuffer_find_eol_char()
1556 char *buffer = (char *)chain->buffer + chain->misalign; in evbuffer_strspn() local
1560 if (buffer[i] == *p++) in evbuffer_strspn()
1593 return (unsigned char)chain->buffer[chain->misalign + off]; in evbuffer_getchr()
1597 evbuffer_search_eol(struct evbuffer *buffer, in evbuffer_search_eol() argument
1613 EVBUFFER_LOCK(buffer); in evbuffer_search_eol()
1619 it.internal_.chain = buffer->first; in evbuffer_search_eol()
1633 it = evbuffer_search(buffer, "\r\n", 2, &it); in evbuffer_search_eol()
1652 if (evbuffer_ptr_subtract(buffer, &it2, 1)<0) in evbuffer_search_eol()
1676 EVBUFFER_UNLOCK(buffer); in evbuffer_search_eol()
1687 evbuffer_readln(struct evbuffer *buffer, size_t *n_read_out, in evbuffer_readln() argument
1695 EVBUFFER_LOCK(buffer); in evbuffer_readln()
1697 if (buffer->freeze_start) { in evbuffer_readln()
1701 it = evbuffer_search_eol(buffer, NULL, &extra_drain, eol_style); in evbuffer_readln()
1711 evbuffer_remove(buffer, line, n_to_copy); in evbuffer_readln()
1714 evbuffer_drain(buffer, extra_drain); in evbuffer_readln()
1717 EVBUFFER_UNLOCK(buffer); in evbuffer_readln()
1770 memcpy(chain->buffer + chain->misalign + chain->off, in evbuffer_add()
1781 memcpy(chain->buffer + chain->off, data, datlen); in evbuffer_add()
1803 memcpy(chain->buffer + chain->misalign + chain->off, in evbuffer_add()
1813 memcpy(tmp->buffer, data, datlen); in evbuffer_add()
1867 memcpy(chain->buffer + chain->misalign - datlen, in evbuffer_prepend()
1876 memcpy(chain->buffer, in evbuffer_prepend()
1900 memcpy(tmp->buffer + tmp->misalign, data, datlen); in evbuffer_prepend()
1918 memmove(chain->buffer, chain->buffer + chain->misalign, chain->off); in evbuffer_chain_align()
2023 memcpy(tmp->buffer, chain->buffer + chain->misalign, in evbuffer_expand_singlechain()
2361 p = chain->buffer + chain->misalign + chain->off; in evbuffer_read()
2416 evbuffer_write_iovec(struct evbuffer *buffer, evutil_socket_t fd, in evbuffer_write_iovec() argument
2420 struct evbuffer_chain *chain = buffer->first; in evbuffer_write_iovec()
2426 ASSERT_EVBUFFER_LOCKED(buffer); in evbuffer_write_iovec()
2436 iov[i].IOV_PTR_FIELD = (void *) (chain->buffer + chain->misalign); in evbuffer_write_iovec()
2468 evbuffer_write_sendfile(struct evbuffer *buffer, evutil_socket_t dest_fd, in evbuffer_write_sendfile() argument
2471 struct evbuffer_chain *chain = buffer->first; in evbuffer_write_sendfile()
2484 ASSERT_EVBUFFER_LOCKED(buffer); in evbuffer_write_sendfile()
2524 evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t fd, in evbuffer_write_atmost() argument
2529 EVBUFFER_LOCK(buffer); in evbuffer_write_atmost()
2531 if (buffer->freeze_start) { in evbuffer_write_atmost()
2535 if (howmuch < 0 || (size_t)howmuch > buffer->total_len) in evbuffer_write_atmost()
2536 howmuch = buffer->total_len; in evbuffer_write_atmost()
2540 struct evbuffer_chain *chain = buffer->first; in evbuffer_write_atmost()
2542 n = evbuffer_write_sendfile(buffer, fd, howmuch); in evbuffer_write_atmost()
2546 n = evbuffer_write_iovec(buffer, fd, howmuch); in evbuffer_write_atmost()
2550 void *p = evbuffer_pullup(buffer, howmuch); in evbuffer_write_atmost()
2554 void *p = evbuffer_pullup(buffer, howmuch); in evbuffer_write_atmost()
2564 evbuffer_drain(buffer, n); in evbuffer_write_atmost()
2567 EVBUFFER_UNLOCK(buffer); in evbuffer_write_atmost()
2572 evbuffer_write(struct evbuffer *buffer, evutil_socket_t fd) in evbuffer_write() argument
2574 return evbuffer_write_atmost(buffer, fd, -1); in evbuffer_write()
2578 evbuffer_find(struct evbuffer *buffer, const unsigned char *what, size_t len) in evbuffer_find() argument
2583 EVBUFFER_LOCK(buffer); in evbuffer_find()
2585 ptr = evbuffer_search(buffer, (const char *)what, len, NULL); in evbuffer_find()
2589 search = evbuffer_pullup(buffer, ptr.pos + len); in evbuffer_find()
2593 EVBUFFER_UNLOCK(buffer); in evbuffer_find()
2701 r = memcmp(chain->buffer + chain->misalign + position, mem, in evbuffer_ptr_memcmp()
2715 evbuffer_search(struct evbuffer *buffer, const char *what, size_t len, const struct evbuffer_ptr *s… in evbuffer_search() argument
2717 return evbuffer_search_range(buffer, what, len, start, NULL); in evbuffer_search()
2721 evbuffer_search_range(struct evbuffer *buffer, const char *what, size_t len, const struct evbuffer_… in evbuffer_search_range() argument
2728 EVBUFFER_LOCK(buffer); in evbuffer_search_range()
2735 chain = pos.internal_.chain = buffer->first; in evbuffer_search_range()
2749 chain->buffer + chain->misalign + in evbuffer_search_range()
2756 if (!evbuffer_ptr_memcmp(buffer, &pos, what, len)) { in evbuffer_search_range()
2780 EVBUFFER_UNLOCK(buffer); in evbuffer_search_range()
2785 evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len, in evbuffer_peek() argument
2797 EVBUFFER_LOCK(buffer); in evbuffer_peek()
2805 vec[0].iov_base = (void *)(chain->buffer + chain->misalign in evbuffer_peek()
2811 chain = buffer->first; in evbuffer_peek()
2817 len = buffer->total_len; in evbuffer_peek()
2827 vec[idx].iov_base = (void *)(chain->buffer + chain->misalign); in evbuffer_peek()
2837 EVBUFFER_UNLOCK(buffer); in evbuffer_peek()
2846 char *buffer; in evbuffer_add_vprintf() local
2866 buffer = (char *)chain->buffer + chain->misalign + chain->off; in evbuffer_add_vprintf()
2870 buffer = (char*) CHAIN_SPACE_PTR(chain); in evbuffer_add_vprintf()
2878 sz = evutil_vsnprintf(buffer, space, fmt, aq); in evbuffer_add_vprintf()
2933 chain->buffer = (unsigned char *)data; in evbuffer_add_reference()
3262 chain->buffer = (unsigned char*) data; in evbuffer_add_file_segment()
3267 chain->buffer = (unsigned char*)(seg->contents + offset); in evbuffer_add_file_segment()
3272 chain->buffer = (unsigned char*)(seg->contents + offset); in evbuffer_add_file_segment()
3312 evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg) in evbuffer_setcb() argument
3314 EVBUFFER_LOCK(buffer); in evbuffer_setcb()
3316 if (!LIST_EMPTY(&buffer->callbacks)) in evbuffer_setcb()
3317 evbuffer_remove_all_callbacks(buffer); in evbuffer_setcb()
3321 evbuffer_add_cb(buffer, NULL, cbarg); in evbuffer_setcb()
3323 EVBUFFER_UNLOCK(buffer); in evbuffer_setcb()
3329 EVBUFFER_UNLOCK(buffer); in evbuffer_setcb()
3334 evbuffer_add_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg) in evbuffer_add_cb() argument
3339 EVBUFFER_LOCK(buffer); in evbuffer_add_cb()
3343 LIST_INSERT_HEAD(&buffer->callbacks, e, next); in evbuffer_add_cb()
3344 EVBUFFER_UNLOCK(buffer); in evbuffer_add_cb()
3349 evbuffer_remove_cb_entry(struct evbuffer *buffer, in evbuffer_remove_cb_entry() argument
3352 EVBUFFER_LOCK(buffer); in evbuffer_remove_cb_entry()
3354 EVBUFFER_UNLOCK(buffer); in evbuffer_remove_cb_entry()
3360 evbuffer_remove_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg) in evbuffer_remove_cb() argument
3364 EVBUFFER_LOCK(buffer); in evbuffer_remove_cb()
3365 LIST_FOREACH(cbent, &buffer->callbacks, next) { in evbuffer_remove_cb()
3367 result = evbuffer_remove_cb_entry(buffer, cbent); in evbuffer_remove_cb()
3372 EVBUFFER_UNLOCK(buffer); in evbuffer_remove_cb()
3377 evbuffer_cb_set_flags(struct evbuffer *buffer, in evbuffer_cb_set_flags() argument
3382 EVBUFFER_LOCK(buffer); in evbuffer_cb_set_flags()
3384 EVBUFFER_UNLOCK(buffer); in evbuffer_cb_set_flags()
3389 evbuffer_cb_clear_flags(struct evbuffer *buffer, in evbuffer_cb_clear_flags() argument
3394 EVBUFFER_LOCK(buffer); in evbuffer_cb_clear_flags()
3396 EVBUFFER_UNLOCK(buffer); in evbuffer_cb_clear_flags()
3401 evbuffer_freeze(struct evbuffer *buffer, int start) in evbuffer_freeze() argument
3403 EVBUFFER_LOCK(buffer); in evbuffer_freeze()
3405 buffer->freeze_start = 1; in evbuffer_freeze()
3407 buffer->freeze_end = 1; in evbuffer_freeze()
3408 EVBUFFER_UNLOCK(buffer); in evbuffer_freeze()
3413 evbuffer_unfreeze(struct evbuffer *buffer, int start) in evbuffer_unfreeze() argument
3415 EVBUFFER_LOCK(buffer); in evbuffer_unfreeze()
3417 buffer->freeze_start = 0; in evbuffer_unfreeze()
3419 buffer->freeze_end = 0; in evbuffer_unfreeze()
3420 EVBUFFER_UNLOCK(buffer); in evbuffer_unfreeze()
3426 evbuffer_cb_suspend(struct evbuffer *buffer, struct evbuffer_cb_entry *cb)
3429 cb->size_before_suspend = evbuffer_get_length(buffer);
3435 evbuffer_cb_unsuspend(struct evbuffer *buffer, struct evbuffer_cb_entry *cb)
3444 cb->cb(buffer, sz, evbuffer_get_length(buffer), cb->cbarg);
3451 evbuffer_get_callbacks_(struct evbuffer *buffer, struct event_callback **cbs, in evbuffer_get_callbacks_() argument
3455 EVBUFFER_LOCK(buffer); in evbuffer_get_callbacks_()
3456 if (buffer->deferred_cbs) { in evbuffer_get_callbacks_()
3461 cbs[0] = &buffer->deferred; in evbuffer_get_callbacks_()
3465 EVBUFFER_UNLOCK(buffer); in evbuffer_get_callbacks_()