]> git.ozlabs.org Git - ccan/blobdiff - ccan/io/backend.h
ccan/io: flatten debug callchain.
[ccan] / ccan / io / backend.h
index c03ce2dc5f07e2709fa59744f2d0774d2f608551..df168d9f2b696202265de7bec1c96f35e1b65bca 100644 (file)
@@ -15,9 +15,8 @@ struct io_listener {
        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 {
@@ -48,13 +47,33 @@ static inline bool timeout_active(const struct io_conn *conn)
 
 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 */