-#define io_write(data, len, cb, arg) \
- io_debug(io_write_((data), (len), \
- typesafe_cb_preargs(struct io_plan, void *, \
- (cb), (arg), struct io_conn *), \
- (arg)))
-struct io_plan io_write_(const void *data, size_t len,
- struct io_plan (*cb)(struct io_conn *, void *),
- void *arg);
+#define io_write(conn, data, len, next, arg) \
+ io_write_((conn), (data), (len), \
+ typesafe_cb_preargs(struct io_plan *, void *, \
+ (next), (arg), struct io_conn *), \
+ (arg))
+struct io_plan *io_write_(struct io_conn *conn,
+ const void *data, size_t len,
+ struct io_plan *(*next)(struct io_conn *, void *),
+ void *arg);