• Home
  • Raw
  • Download

Lines Matching refs:bufev

67 bufferevent_suspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags what)  in bufferevent_suspend_read_()  argument
69 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_suspend_read_()
70 BEV_LOCK(bufev); in bufferevent_suspend_read_()
72 bufev->be_ops->disable(bufev, EV_READ); in bufferevent_suspend_read_()
74 BEV_UNLOCK(bufev); in bufferevent_suspend_read_()
78 bufferevent_unsuspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags what) in bufferevent_unsuspend_read_() argument
80 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_unsuspend_read_()
81 BEV_LOCK(bufev); in bufferevent_unsuspend_read_()
83 if (!bufev_private->read_suspended && (bufev->enabled & EV_READ)) in bufferevent_unsuspend_read_()
84 bufev->be_ops->enable(bufev, EV_READ); in bufferevent_unsuspend_read_()
85 BEV_UNLOCK(bufev); in bufferevent_unsuspend_read_()
89 bufferevent_suspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags what) in bufferevent_suspend_write_() argument
91 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_suspend_write_()
92 BEV_LOCK(bufev); in bufferevent_suspend_write_()
94 bufev->be_ops->disable(bufev, EV_WRITE); in bufferevent_suspend_write_()
96 BEV_UNLOCK(bufev); in bufferevent_suspend_write_()
100 bufferevent_unsuspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags what) in bufferevent_unsuspend_write_() argument
102 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_unsuspend_write_()
103 BEV_LOCK(bufev); in bufferevent_unsuspend_write_()
105 if (!bufev_private->write_suspended && (bufev->enabled & EV_WRITE)) in bufferevent_unsuspend_write_()
106 bufev->be_ops->enable(bufev, EV_WRITE); in bufferevent_unsuspend_write_()
107 BEV_UNLOCK(bufev); in bufferevent_unsuspend_write_()
140 struct bufferevent *bufev = arg; in bufferevent_inbuf_wm_cb() local
145 if (size >= bufev->wm_read.high) in bufferevent_inbuf_wm_cb()
146 bufferevent_wm_suspend_read(bufev); in bufferevent_inbuf_wm_cb()
148 bufferevent_wm_unsuspend_read(bufev); in bufferevent_inbuf_wm_cb()
155 struct bufferevent *bufev = &bufev_private->bev; in bufferevent_run_deferred_callbacks_locked() local
157 BEV_LOCK(bufev); in bufferevent_run_deferred_callbacks_locked()
159 bufev->errorcb) { in bufferevent_run_deferred_callbacks_locked()
163 bufev->errorcb(bufev, BEV_EVENT_CONNECTED, bufev->cbarg); in bufferevent_run_deferred_callbacks_locked()
165 if (bufev_private->readcb_pending && bufev->readcb) { in bufferevent_run_deferred_callbacks_locked()
167 bufev->readcb(bufev, bufev->cbarg); in bufferevent_run_deferred_callbacks_locked()
168 bufferevent_inbuf_wm_check(bufev); in bufferevent_run_deferred_callbacks_locked()
170 if (bufev_private->writecb_pending && bufev->writecb) { in bufferevent_run_deferred_callbacks_locked()
172 bufev->writecb(bufev, bufev->cbarg); in bufferevent_run_deferred_callbacks_locked()
174 if (bufev_private->eventcb_pending && bufev->errorcb) { in bufferevent_run_deferred_callbacks_locked()
180 bufev->errorcb(bufev, what, bufev->cbarg); in bufferevent_run_deferred_callbacks_locked()
182 bufferevent_decref_and_unlock_(bufev); in bufferevent_run_deferred_callbacks_locked()
189 struct bufferevent *bufev = &bufev_private->bev; in bufferevent_run_deferred_callbacks_unlocked() local
191 BEV_LOCK(bufev); in bufferevent_run_deferred_callbacks_unlocked()
193 do { BEV_UNLOCK(bufev); stmt; BEV_LOCK(bufev); } while(0) in bufferevent_run_deferred_callbacks_unlocked()
196 bufev->errorcb) { in bufferevent_run_deferred_callbacks_unlocked()
199 bufferevent_event_cb errorcb = bufev->errorcb; in bufferevent_run_deferred_callbacks_unlocked()
200 void *cbarg = bufev->cbarg; in bufferevent_run_deferred_callbacks_unlocked()
202 UNLOCKED(errorcb(bufev, BEV_EVENT_CONNECTED, cbarg)); in bufferevent_run_deferred_callbacks_unlocked()
204 if (bufev_private->readcb_pending && bufev->readcb) { in bufferevent_run_deferred_callbacks_unlocked()
205 bufferevent_data_cb readcb = bufev->readcb; in bufferevent_run_deferred_callbacks_unlocked()
206 void *cbarg = bufev->cbarg; in bufferevent_run_deferred_callbacks_unlocked()
208 UNLOCKED(readcb(bufev, cbarg)); in bufferevent_run_deferred_callbacks_unlocked()
209 bufferevent_inbuf_wm_check(bufev); in bufferevent_run_deferred_callbacks_unlocked()
211 if (bufev_private->writecb_pending && bufev->writecb) { in bufferevent_run_deferred_callbacks_unlocked()
212 bufferevent_data_cb writecb = bufev->writecb; in bufferevent_run_deferred_callbacks_unlocked()
213 void *cbarg = bufev->cbarg; in bufferevent_run_deferred_callbacks_unlocked()
215 UNLOCKED(writecb(bufev, cbarg)); in bufferevent_run_deferred_callbacks_unlocked()
217 if (bufev_private->eventcb_pending && bufev->errorcb) { in bufferevent_run_deferred_callbacks_unlocked()
218 bufferevent_event_cb errorcb = bufev->errorcb; in bufferevent_run_deferred_callbacks_unlocked()
219 void *cbarg = bufev->cbarg; in bufferevent_run_deferred_callbacks_unlocked()
225 UNLOCKED(errorcb(bufev,what,cbarg)); in bufferevent_run_deferred_callbacks_unlocked()
227 bufferevent_decref_and_unlock_(bufev); in bufferevent_run_deferred_callbacks_unlocked()
241 bufferevent_run_readcb_(struct bufferevent *bufev, int options) in bufferevent_run_readcb_() argument
244 struct bufferevent_private *p = BEV_UPCAST(bufev); in bufferevent_run_readcb_()
245 if (bufev->readcb == NULL) in bufferevent_run_readcb_()
251 bufev->readcb(bufev, bufev->cbarg); in bufferevent_run_readcb_()
252 bufferevent_inbuf_wm_check(bufev); in bufferevent_run_readcb_()
257 bufferevent_run_writecb_(struct bufferevent *bufev, int options) in bufferevent_run_writecb_() argument
260 struct bufferevent_private *p = BEV_UPCAST(bufev); in bufferevent_run_writecb_()
261 if (bufev->writecb == NULL) in bufferevent_run_writecb_()
267 bufev->writecb(bufev, bufev->cbarg); in bufferevent_run_writecb_()
277 bufferevent_trigger(struct bufferevent *bufev, short iotype, int options) in bufferevent_trigger() argument
279 bufferevent_incref_and_lock_(bufev); in bufferevent_trigger()
280 bufferevent_trigger_nolock_(bufev, iotype, options&BEV_TRIG_ALL_OPTS); in bufferevent_trigger()
281 bufferevent_decref_and_unlock_(bufev); in bufferevent_trigger()
285 bufferevent_run_eventcb_(struct bufferevent *bufev, short what, int options) in bufferevent_run_eventcb_() argument
288 struct bufferevent_private *p = BEV_UPCAST(bufev); in bufferevent_run_eventcb_()
289 if (bufev->errorcb == NULL) in bufferevent_run_eventcb_()
296 bufev->errorcb(bufev, what, bufev->cbarg); in bufferevent_run_eventcb_()
301 bufferevent_trigger_event(struct bufferevent *bufev, short what, int options) in bufferevent_trigger_event() argument
303 bufferevent_incref_and_lock_(bufev); in bufferevent_trigger_event()
304 bufferevent_run_eventcb_(bufev, what, options&BEV_TRIG_ALL_OPTS); in bufferevent_trigger_event()
305 bufferevent_decref_and_unlock_(bufev); in bufferevent_trigger_event()
314 struct bufferevent *bufev = &bufev_private->bev; in bufferevent_init_common_() local
316 if (!bufev->input) { in bufferevent_init_common_()
317 if ((bufev->input = evbuffer_new()) == NULL) in bufferevent_init_common_()
321 if (!bufev->output) { in bufferevent_init_common_()
322 if ((bufev->output = evbuffer_new()) == NULL) in bufferevent_init_common_()
327 bufev->ev_base = base; in bufferevent_init_common_()
330 evutil_timerclear(&bufev->timeout_read); in bufferevent_init_common_()
331 evutil_timerclear(&bufev->timeout_write); in bufferevent_init_common_()
333 bufev->be_ops = ops; in bufferevent_init_common_()
343 bufev->enabled = EV_WRITE; in bufferevent_init_common_()
347 if (bufferevent_enable_locking_(bufev, NULL) < 0) in bufferevent_init_common_()
371 evbuffer_set_parent_(bufev->input, bufev); in bufferevent_init_common_()
372 evbuffer_set_parent_(bufev->output, bufev); in bufferevent_init_common_()
377 if (bufev->input) { in bufferevent_init_common_()
378 evbuffer_free(bufev->input); in bufferevent_init_common_()
379 bufev->input = NULL; in bufferevent_init_common_()
381 if (bufev->output) { in bufferevent_init_common_()
382 evbuffer_free(bufev->output); in bufferevent_init_common_()
383 bufev->output = NULL; in bufferevent_init_common_()
389 bufferevent_setcb(struct bufferevent *bufev, in bufferevent_setcb() argument
393 BEV_LOCK(bufev); in bufferevent_setcb()
395 bufev->readcb = readcb; in bufferevent_setcb()
396 bufev->writecb = writecb; in bufferevent_setcb()
397 bufev->errorcb = eventcb; in bufferevent_setcb()
399 bufev->cbarg = cbarg; in bufferevent_setcb()
400 BEV_UNLOCK(bufev); in bufferevent_setcb()
404 bufferevent_getcb(struct bufferevent *bufev, in bufferevent_getcb() argument
410 BEV_LOCK(bufev); in bufferevent_getcb()
412 *readcb_ptr = bufev->readcb; in bufferevent_getcb()
414 *writecb_ptr = bufev->writecb; in bufferevent_getcb()
416 *eventcb_ptr = bufev->errorcb; in bufferevent_getcb()
418 *cbarg_ptr = bufev->cbarg; in bufferevent_getcb()
420 BEV_UNLOCK(bufev); in bufferevent_getcb()
424 bufferevent_get_input(struct bufferevent *bufev) in bufferevent_get_input() argument
426 return bufev->input; in bufferevent_get_input()
430 bufferevent_get_output(struct bufferevent *bufev) in bufferevent_get_output() argument
432 return bufev->output; in bufferevent_get_output()
436 bufferevent_get_base(struct bufferevent *bufev) in bufferevent_get_base() argument
438 return bufev->ev_base; in bufferevent_get_base()
442 bufferevent_get_priority(const struct bufferevent *bufev) in bufferevent_get_priority() argument
444 if (event_initialized(&bufev->ev_read)) { in bufferevent_get_priority()
445 return event_get_priority(&bufev->ev_read); in bufferevent_get_priority()
447 return event_base_get_npriorities(bufev->ev_base) / 2; in bufferevent_get_priority()
452 bufferevent_write(struct bufferevent *bufev, const void *data, size_t size) in bufferevent_write() argument
454 if (evbuffer_add(bufev->output, data, size) == -1) in bufferevent_write()
461 bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer *buf) in bufferevent_write_buffer() argument
463 if (evbuffer_add_buffer(bufev->output, buf) == -1) in bufferevent_write_buffer()
470 bufferevent_read(struct bufferevent *bufev, void *data, size_t size) in bufferevent_read() argument
472 return (evbuffer_remove(bufev->input, data, size)); in bufferevent_read()
476 bufferevent_read_buffer(struct bufferevent *bufev, struct evbuffer *buf) in bufferevent_read_buffer() argument
478 return (evbuffer_add_buffer(buf, bufev->input)); in bufferevent_read_buffer()
482 bufferevent_enable(struct bufferevent *bufev, short event) in bufferevent_enable() argument
484 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_enable()
488 bufferevent_incref_and_lock_(bufev); in bufferevent_enable()
494 bufev->enabled |= event; in bufferevent_enable()
496 if (impl_events && bufev->be_ops->enable(bufev, impl_events) < 0) in bufferevent_enable()
499 event_debug(("%s: cannot enable 0x%hx on %p", __func__, event, bufev)); in bufferevent_enable()
501 bufferevent_decref_and_unlock_(bufev); in bufferevent_enable()
506 bufferevent_set_timeouts(struct bufferevent *bufev, in bufferevent_set_timeouts() argument
511 BEV_LOCK(bufev); in bufferevent_set_timeouts()
513 bufev->timeout_read = *tv_read; in bufferevent_set_timeouts()
515 evutil_timerclear(&bufev->timeout_read); in bufferevent_set_timeouts()
518 bufev->timeout_write = *tv_write; in bufferevent_set_timeouts()
520 evutil_timerclear(&bufev->timeout_write); in bufferevent_set_timeouts()
523 if (bufev->be_ops->adj_timeouts) in bufferevent_set_timeouts()
524 r = bufev->be_ops->adj_timeouts(bufev); in bufferevent_set_timeouts()
525 BEV_UNLOCK(bufev); in bufferevent_set_timeouts()
533 bufferevent_settimeout(struct bufferevent *bufev, in bufferevent_settimeout() argument
551 bufferevent_set_timeouts(bufev, ptv_read, ptv_write); in bufferevent_settimeout()
556 bufferevent_disable_hard_(struct bufferevent *bufev, short event) in bufferevent_disable_hard_() argument
559 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_disable_hard_()
561 BEV_LOCK(bufev); in bufferevent_disable_hard_()
562 bufev->enabled &= ~event; in bufferevent_disable_hard_()
565 if (bufev->be_ops->disable(bufev, event) < 0) in bufferevent_disable_hard_()
568 BEV_UNLOCK(bufev); in bufferevent_disable_hard_()
573 bufferevent_disable(struct bufferevent *bufev, short event) in bufferevent_disable() argument
577 BEV_LOCK(bufev); in bufferevent_disable()
578 bufev->enabled &= ~event; in bufferevent_disable()
580 if (bufev->be_ops->disable(bufev, event) < 0) in bufferevent_disable()
583 event_debug(("%s: cannot disable 0x%hx on %p", __func__, event, bufev)); in bufferevent_disable()
585 BEV_UNLOCK(bufev); in bufferevent_disable()
594 bufferevent_setwatermark(struct bufferevent *bufev, short events, in bufferevent_setwatermark() argument
597 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_setwatermark()
599 BEV_LOCK(bufev); in bufferevent_setwatermark()
601 bufev->wm_write.low = lowmark; in bufferevent_setwatermark()
602 bufev->wm_write.high = highmark; in bufferevent_setwatermark()
606 bufev->wm_read.low = lowmark; in bufferevent_setwatermark()
607 bufev->wm_read.high = highmark; in bufferevent_setwatermark()
616 evbuffer_add_cb(bufev->input, in bufferevent_setwatermark()
618 bufev); in bufferevent_setwatermark()
620 evbuffer_cb_set_flags(bufev->input, in bufferevent_setwatermark()
624 if (evbuffer_get_length(bufev->input) >= highmark) in bufferevent_setwatermark()
625 bufferevent_wm_suspend_read(bufev); in bufferevent_setwatermark()
626 else if (evbuffer_get_length(bufev->input) < highmark) in bufferevent_setwatermark()
627 bufferevent_wm_unsuspend_read(bufev); in bufferevent_setwatermark()
631 evbuffer_cb_clear_flags(bufev->input, in bufferevent_setwatermark()
634 bufferevent_wm_unsuspend_read(bufev); in bufferevent_setwatermark()
637 BEV_UNLOCK(bufev); in bufferevent_setwatermark()
641 bufferevent_getwatermark(struct bufferevent *bufev, short events, in bufferevent_getwatermark() argument
645 BEV_LOCK(bufev); in bufferevent_getwatermark()
647 *lowmark = bufev->wm_write.low; in bufferevent_getwatermark()
649 *highmark = bufev->wm_write.high; in bufferevent_getwatermark()
650 BEV_UNLOCK(bufev); in bufferevent_getwatermark()
655 BEV_LOCK(bufev); in bufferevent_getwatermark()
657 *lowmark = bufev->wm_read.low; in bufferevent_getwatermark()
659 *highmark = bufev->wm_read.high; in bufferevent_getwatermark()
660 BEV_UNLOCK(bufev); in bufferevent_getwatermark()
667 bufferevent_flush(struct bufferevent *bufev, in bufferevent_flush() argument
672 BEV_LOCK(bufev); in bufferevent_flush()
673 if (bufev->be_ops->flush) in bufferevent_flush()
674 r = bufev->be_ops->flush(bufev, iotype, mode); in bufferevent_flush()
675 BEV_UNLOCK(bufev); in bufferevent_flush()
680 bufferevent_incref_and_lock_(struct bufferevent *bufev) in bufferevent_incref_and_lock_() argument
682 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_incref_and_lock_()
683 BEV_LOCK(bufev); in bufferevent_incref_and_lock_()
706 bufferevent_decref_and_unlock_(struct bufferevent *bufev) in bufferevent_decref_and_unlock_() argument
708 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_decref_and_unlock_()
716 BEV_UNLOCK(bufev); in bufferevent_decref_and_unlock_()
720 if (bufev->be_ops->unlink) in bufferevent_decref_and_unlock_()
721 bufev->be_ops->unlink(bufev); in bufferevent_decref_and_unlock_()
725 cbs[0] = &bufev->ev_read.ev_evcallback; in bufferevent_decref_and_unlock_()
726 cbs[1] = &bufev->ev_write.ev_evcallback; in bufferevent_decref_and_unlock_()
734 n_cbs += evbuffer_get_callbacks_(bufev->input, cbs+n_cbs, MAX_CBS-n_cbs); in bufferevent_decref_and_unlock_()
735 n_cbs += evbuffer_get_callbacks_(bufev->output, cbs+n_cbs, MAX_CBS-n_cbs); in bufferevent_decref_and_unlock_()
737 event_callback_finalize_many_(bufev->ev_base, n_cbs, cbs, in bufferevent_decref_and_unlock_()
741 BEV_UNLOCK(bufev); in bufferevent_decref_and_unlock_()
749 struct bufferevent *bufev = arg_; in bufferevent_finalize_cb_() local
751 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_finalize_cb_()
753 BEV_LOCK(bufev); in bufferevent_finalize_cb_()
754 underlying = bufferevent_get_underlying(bufev); in bufferevent_finalize_cb_()
757 if (bufev->be_ops->destruct) in bufferevent_finalize_cb_()
758 bufev->be_ops->destruct(bufev); in bufferevent_finalize_cb_()
764 evbuffer_free(bufev->input); in bufferevent_finalize_cb_()
765 evbuffer_free(bufev->output); in bufferevent_finalize_cb_()
769 bufferevent_remove_from_rate_limit_group_internal_(bufev,0); in bufferevent_finalize_cb_()
775 BEV_UNLOCK(bufev); in bufferevent_finalize_cb_()
782 mm_free(((char*)bufev) - bufev->be_ops->mem_offset); in bufferevent_finalize_cb_()
799 bufferevent_decref(struct bufferevent *bufev) in bufferevent_decref() argument
801 BEV_LOCK(bufev); in bufferevent_decref()
802 return bufferevent_decref_and_unlock_(bufev); in bufferevent_decref()
806 bufferevent_free(struct bufferevent *bufev) in bufferevent_free() argument
808 BEV_LOCK(bufev); in bufferevent_free()
809 bufferevent_setcb(bufev, NULL, NULL, NULL, NULL); in bufferevent_free()
810 bufferevent_cancel_all_(bufev); in bufferevent_free()
811 bufferevent_decref_and_unlock_(bufev); in bufferevent_free()
815 bufferevent_incref(struct bufferevent *bufev) in bufferevent_incref() argument
817 struct bufferevent_private *bufev_private = BEV_UPCAST(bufev); in bufferevent_incref()
823 BEV_LOCK(bufev); in bufferevent_incref()
825 BEV_UNLOCK(bufev); in bufferevent_incref()
829 bufferevent_enable_locking_(struct bufferevent *bufev, void *lock) in bufferevent_enable_locking_() argument
836 if (BEV_UPCAST(bufev)->lock) in bufferevent_enable_locking_()
838 underlying = bufferevent_get_underlying(bufev); in bufferevent_enable_locking_()
842 BEV_UPCAST(bufev)->lock = lock; in bufferevent_enable_locking_()
843 BEV_UPCAST(bufev)->own_lock = 0; in bufferevent_enable_locking_()
848 BEV_UPCAST(bufev)->lock = lock; in bufferevent_enable_locking_()
849 BEV_UPCAST(bufev)->own_lock = 1; in bufferevent_enable_locking_()
851 BEV_UPCAST(bufev)->lock = lock; in bufferevent_enable_locking_()
852 BEV_UPCAST(bufev)->own_lock = 0; in bufferevent_enable_locking_()
854 evbuffer_enable_locking(bufev->input, lock); in bufferevent_enable_locking_()
855 evbuffer_enable_locking(bufev->output, lock); in bufferevent_enable_locking_()
919 bufferevent_get_enabled(struct bufferevent *bufev) in bufferevent_get_enabled() argument
922 BEV_LOCK(bufev); in bufferevent_get_enabled()
923 r = bufev->enabled; in bufferevent_get_enabled()
924 BEV_UNLOCK(bufev); in bufferevent_get_enabled()