int si_sync_recv(struct stream_interface *si);
void si_sync_send(struct stream_interface *si);
+/* Functions used to communicate with a conn_stream. The first two may be used
+ * directly, the last one is mostly a wake callback.
+ */
+int si_cs_recv(struct conn_stream *cs);
+int si_cs_send(struct conn_stream *cs);
+int si_cs_process(struct conn_stream *cs);
+
/* returns the channel which receives data from this stream interface (input channel) */
static inline struct channel *si_ic(struct stream_interface *si)
{
.shutw = cs_app_shutw_applet,
};
-/* Functions used to communicate with a conn_stream. The first two may be used
- * directly, the last one is mostly a wake callback.
- */
-static int si_cs_recv(struct conn_stream *cs);
-static int si_cs_send(struct conn_stream *cs);
-static int si_cs_process(struct conn_stream *cs);
-
-
struct data_cb si_conn_cb = {
.wake = si_cs_process,
.name = "STRM",
* connection's polling based on the channels and stream interface's final
* states. The function always returns 0.
*/
-static int si_cs_process(struct conn_stream *cs)
+int si_cs_process(struct conn_stream *cs)
{
struct connection *conn = __cs_conn(cs);
struct stream_interface *si = cs_si(cs);
* caller to commit polling changes. The caller should check conn->flags
* for errors.
*/
-static int si_cs_send(struct conn_stream *cs)
+int si_cs_send(struct conn_stream *cs)
{
struct connection *conn = __cs_conn(cs);
struct stream_interface *si = cs_si(cs);
* into the buffer from the connection. It iterates over the mux layer's
* rcv_buf function.
*/
-static int si_cs_recv(struct conn_stream *cs)
+int si_cs_recv(struct conn_stream *cs)
{
struct connection *conn = __cs_conn(cs);
struct stream_interface *si = cs_si(cs);