20#include "xtc_export.h"
24typedef struct xtc_io xtc_io_t;
30#define XTC_IO_READABLE 0x01u
31#define XTC_IO_WRITABLE 0x02u
32#define XTC_IO_HUP 0x04u
33#define XTC_IO_ERR 0x08u
34#define XTC_IO_WAKEUP 0x10u
36#define XTC_IO_AIO 0x20u
39typedef struct xtc_io_event {
58 XTC_AIO_FDATASYNC = 3,
62typedef struct xtc_aio {
122XTC_API
int xtc_io_init(xtc_io_t **out);
123XTC_API
int xtc_io_fini(xtc_io_t *io);
124XTC_API
const char *xtc_io_backend_name(
void);
127XTC_API
int xtc_io_reg_fd(xtc_io_t *io,
int fd, uint32_t interest,
void *tag);
128XTC_API
int xtc_io_mod_fd(xtc_io_t *io,
int fd, uint32_t interest,
void *tag);
129XTC_API
int xtc_io_del_fd(xtc_io_t *io,
int fd);
142XTC_API
int xtc_io_poll(xtc_io_t *io,
xtc_io_event_t *events,
int max,
143 int64_t timeout_ns,
int *n_out);
149XTC_API
int xtc_io_aio_submit(xtc_io_t *io,
xtc_aio_t *a);
157XTC_API
int xtc_io_wakeup(xtc_io_t *io);
166XTC_API
void xtc_io_set_iowq_max_workers(
unsigned bound,