From 78dcacef5c6d2338781336fc45224138843e31de Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 14 Nov 2018 14:01:40 +0100 Subject: [PATCH] MINOR: stream-int: add new functions si_{rx,tx}_{blocked,endp_ready}() The first ones are used to figure if a direction is blocked on the stream interface for anything but the end point. The second ones are used to detect if the end point is ready to receive/transmit. They should be used instead of directly fiddling with the existing bits. --- include/proto/stream_interface.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h index ad0fe031e8..6d46381557 100644 --- a/include/proto/stream_interface.h +++ b/include/proto/stream_interface.h @@ -247,6 +247,18 @@ static inline void si_applet_release(struct stream_interface *si) appctx->applet->release(appctx); } +/* Returns non-zero if the stream interface's Rx path is blocked */ +static inline int si_rx_blocked(const struct stream_interface *si) +{ + return !!(si->flags & SI_FL_RXBLK_ANY); +} + +/* Returns non-zero if the stream interface's endpoint is ready to receive */ +static inline int si_rx_endp_ready(const struct stream_interface *si) +{ + return !(si->flags & SI_FL_RX_WAIT_EP); +} + /* Report that a stream interface wants to put some data into the input buffer */ static inline void si_want_put(struct stream_interface *si) { @@ -271,6 +283,18 @@ static inline void si_done_put(struct stream_interface *si) si->flags &= ~(SI_FL_WANT_PUT | SI_FL_RXBLK_ROOM); } +/* Returns non-zero if the stream interface's Rx path is blocked */ +static inline int si_tx_blocked(const struct stream_interface *si) +{ + return !!(si->flags & SI_FL_WAIT_DATA); +} + +/* Returns non-zero if the stream interface's endpoint is ready to transmit */ +static inline int si_tx_endp_ready(const struct stream_interface *si) +{ + return (si->flags & SI_FL_WANT_GET); +} + /* Report that a stream interface wants to get some data from the output buffer */ static inline void si_want_get(struct stream_interface *si) {