]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink_internal.h
Add support for AIO using filedescriptors.
[meshlink] / src / meshlink_internal.h
index 7e2955eb52ba5d096e2e9c69b8865b9dbd84c7d8..569628cc3e6ebc05dca19f47d978c7e299c73961 100644 (file)
@@ -205,12 +205,28 @@ struct meshlink_submesh {
        void *priv;
 };
 
+/// An AIO buffer.
+typedef struct meshlink_aio_buffer {
+       const void *data;
+       int fd;
+       size_t len;
+       size_t done;
+       union {
+               meshlink_aio_cb_t buffer;
+               meshlink_aio_fd_cb_t fd;
+       } cb;
+       void *priv;
+       struct meshlink_aio_buffer *next;
+} meshlink_aio_buffer_t;
+
 /// A channel.
 struct meshlink_channel {
        struct node_t *node;
        void *priv;
 
        struct utcp_connection *c;
+       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;
 };