SHOW_FLAG(f, SE_FL_RXBLK_CHAN);
SHOW_FLAG(f, SE_FL_RXBLK_BUFF);
SHOW_FLAG(f, SE_FL_RXBLK_ROOM);
- SHOW_FLAG(f, SE_FL_RXBLK_SHUT);
SHOW_FLAG(f, SE_FL_RXBLK_CONN);
SHOW_FLAG(f, SE_FL_RX_WAIT_EP);
SHOW_FLAG(f, SE_FL_WANT_GET);
SE_FL_RXBLK_CHAN = 0x04000000, /* the channel doesn't want the CS to introduce data */
SE_FL_RXBLK_BUFF = 0x08000000, /* CS waits for a buffer allocation to complete */
SE_FL_RXBLK_ROOM = 0x10000000, /* CS waits for more buffer room to store incoming data */
- SE_FL_RXBLK_SHUT = 0x20000000, /* input is now closed, nothing new will ever come */
+ /* unused 0x20000000,*/
SE_FL_RXBLK_CONN = 0x40000000, /* other side is not connected */
- SE_FL_RXBLK_ANY = 0x7C000000, /* any of the RXBLK flags above */
- SE_FL_APP_MASK = 0x7fe00000, /* Mask for flags set by the app layer */
+ SE_FL_RXBLK_ANY = 0x5C000000, /* any of the RXBLK flags above */
+ SE_FL_APP_MASK = 0x5fe00000, /* Mask for flags set by the app layer */
};
/* stconn flags */
sc_ep_set(cs, SE_FL_RXBLK_ROOM);
}
-/* The stream connector announces it will never put new data into the input
- * buffer and that it's not waiting for its endpoint to deliver anything else.
- * This function obviously doesn't have a _rdy equivalent.
- */
-static inline void cs_rx_shut_blk(struct stconn *cs)
-{
- sc_ep_set(cs, SE_FL_RXBLK_SHUT);
-}
-
/* Returns non-zero if the stream connector's Tx path is blocked */
static inline int cs_tx_blocked(const struct stconn *cs)
{
{
struct channel *ic = sc_ic(cs);
- cs_rx_shut_blk(cs);
if (ic->flags & CF_SHUTR)
return;
ic->flags |= CF_SHUTR;
/* fall through */
default:
cs->flags &= ~SC_FL_NOLINGER;
- cs_rx_shut_blk(cs);
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
__sc_strm(cs)->conn_exp = TICK_ETERNITY;
BUG_ON(!sc_conn(cs));
- cs_rx_shut_blk(cs);
if (ic->flags & CF_SHUTR)
return;
ic->flags |= CF_SHUTR;
/* fall through */
default:
cs->flags &= ~SC_FL_NOLINGER;
- cs_rx_shut_blk(cs);
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
__sc_strm(cs)->conn_exp = TICK_ETERNITY;
BUG_ON(!sc_appctx(cs));
- cs_rx_shut_blk(cs);
if (ic->flags & CF_SHUTR)
return;
ic->flags |= CF_SHUTR;
/* fall through */
default:
cs->flags &= ~SC_FL_NOLINGER;
- cs_rx_shut_blk(cs);
ic->flags |= CF_SHUTR;
ic->rex = TICK_ETERNITY;
__sc_strm(cs)->conn_exp = TICK_ETERNITY;
{
struct channel *ic = sc_ic(cs);
- if (ic->flags & CF_SHUTR) {
- cs_rx_shut_blk(cs);
+ if (ic->flags & CF_SHUTR)
return;
- }
/* Read not closed, update FD status and timeout for reads */
if (ic->flags & CF_DONT_READ)
BUG_ON(!sc_conn(cs));
- cs_rx_shut_blk(cs);
if (ic->flags & CF_SHUTR)
return;
ic->flags |= CF_SHUTR;
s->flags |= SF_ERR_INTERNAL;
return -1;
}
- sc_ep_clr(cs, SE_FL_RXBLK_SHUT);
b_free(&req->buf);
/* Swap the L7 buffer with the channel buffer */