* Jens Axboe: > +#define IORING_MAX_ENTRIES 4096 Where does this constant come from? Should it really be exposed to userspace? > +struct io_uring_params { > + __u32 sq_entries; > + __u32 cq_entries; > + __u32 flags; > + __u16 resv[10]; > + struct io_sqring_offsets sq_off; > + struct io_cqring_offsets cq_off; > +}; > +struct io_sqring_offsets { > + __u32 head; > + __u32 tail; > + __u32 ring_mask; > + __u32 ring_entries; > + __u32 flags; > + __u32 dropped; > + __u32 array; > + __u32 resv[3]; > +}; > + > +struct io_cqring_offsets { > + __u32 head; > + __u32 tail; > + __u32 ring_mask; > + __u32 ring_entries; > + __u32 overflow; > + __u32 cqes; > + __u32 resv[4]; > +}; Should the reserved fields include a __u64 member, to increase struct alignment on architectures that might need it in the future? > +#define IORING_ENTER_GETEVENTS (1 << 0) Should this be unsigned, to match the u32 flags argument? (Otherwise using 32 flags can be difficult). Thanks, Florian