]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink_internal.h
Add support for AIO using filedescriptors.
[meshlink] / src / meshlink_internal.h
index 0e3581f5142fa9354350e1efa6451f88dc6e98a7..569628cc3e6ebc05dca19f47d978c7e299c73961 100644 (file)
@@ -208,9 +208,13 @@ struct meshlink_submesh {
 /// An AIO buffer.
 typedef struct meshlink_aio_buffer {
        const void *data;
+       int fd;
        size_t len;
        size_t done;
-       meshlink_aio_cb_t cb;
+       union {
+               meshlink_aio_cb_t buffer;
+               meshlink_aio_fd_cb_t fd;
+       } cb;
        void *priv;
        struct meshlink_aio_buffer *next;
 } meshlink_aio_buffer_t;
@@ -221,7 +225,8 @@ struct meshlink_channel {
        void *priv;
 
        struct utcp_connection *c;
-       meshlink_aio_buffer_t *aio;
+       meshlink_aio_buffer_t *aio_send;
+       meshlink_aio_buffer_t *aio_receive;
        meshlink_channel_receive_cb_t receive_cb;
        meshlink_channel_poll_cb_t poll_cb;
 };