X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink_internal.h;h=569628cc3e6ebc05dca19f47d978c7e299c73961;hb=c023ad12147aa88810629c110ea6b1ab94267196;hp=7e2955eb52ba5d096e2e9c69b8865b9dbd84c7d8;hpb=dceaa0b7940464df45104e02b88e0ea3283bb938;p=meshlink diff --git a/src/meshlink_internal.h b/src/meshlink_internal.h index 7e2955eb..569628cc 100644 --- a/src/meshlink_internal.h +++ b/src/meshlink_internal.h @@ -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; };