struct fd fd;
/* These are for connections we create. */
- struct io_plan (*next)(struct io_conn *, void *arg);
- void (*finish)(struct io_conn *, void *arg);
- void *conn_arg;
+ void (*init)(int fd, void *arg);
+ void *arg;
};
struct io_timeout {
extern void *io_loop_return;
+#ifdef DEBUG
+extern struct io_conn *current;
+static inline void set_current(struct io_conn *conn)
+{
+ current = conn;
+}
+static inline bool doing_debug(void)
+{
+ return io_debug_conn != NULL;
+}
+#else
+static inline void set_current(struct io_conn *conn)
+{
+}
+static inline bool doing_debug(void)
+{
+ return false;
+}
+#endif
+
bool add_listener(struct io_listener *l);
bool add_conn(struct io_conn *c);
bool add_duplex(struct io_conn *c);
void del_listener(struct io_listener *l);
-void backend_wakeup(struct io_conn *conn);
+void backend_plan_changed(struct io_conn *conn);
void backend_add_timeout(struct io_conn *conn, struct timespec ts);
void backend_del_timeout(struct io_conn *conn);
-struct io_plan do_ready(struct io_conn *conn);
+void io_ready(struct io_conn *conn);
#endif /* CCAN_IO_BACKEND_H */