21#include "xtc_export.h"
26typedef struct xtc_io xtc_io_t;
32#define XTC_IO_READABLE 0x01u
33#define XTC_IO_WRITABLE 0x02u
34#define XTC_IO_HUP 0x04u
35#define XTC_IO_ERR 0x08u
36#define XTC_IO_WAKEUP 0x10u
38#define XTC_IO_AIO 0x20u
41typedef struct xtc_io_event {
83 XTC_AIO_FDATASYNC = 3,
87typedef struct xtc_aio {
133#define XTC_AIO_INIT { .size = sizeof(xtc_aio_t) }
150XTC_API
int xtc_io_init(xtc_io_t **out);
151XTC_API
int xtc_io_fini(xtc_io_t *io);
152XTC_API
const char *xtc_io_backend_name(
void);
155XTC_API
int xtc_io_reg_fd(xtc_io_t *io,
int fd, uint32_t interest,
void *tag);
156XTC_API
int xtc_io_mod_fd(xtc_io_t *io,
int fd, uint32_t interest,
void *tag);
157XTC_API
int xtc_io_del_fd(xtc_io_t *io,
int fd);
170XTC_API
int xtc_io_poll(xtc_io_t *io,
xtc_io_event_t *events,
int max,
171 int64_t timeout_ns,
int *n_out);
177XTC_API
int xtc_io_aio_submit(xtc_io_t *io,
xtc_aio_t *a);
185XTC_API
int xtc_io_wakeup(xtc_io_t *io);
194XTC_API
void xtc_io_set_iowq_max_workers(
unsigned bound,