Module Uring.Setup_flags

Flags that can be passed to create.

See io_uring_setup_flags(7) for details.

include FLAGS
type t = private int

A set of flags.

val empty : t
val of_int : int -> t

of_int i is the flags whose bits are those set in i.

val to_int : t -> int

to_int t is the integer with the bits of the flags t set.

val (+) : t -> t -> t

a + b is the union of the sets.

val mem : t -> t -> bool

mem x flags is true iff x is a subset of flags.

val (=) : t -> t -> bool

a = b is true iff a and b are the same set of flags.

val iopoll : t

Enable I/O polling mode for file descriptors that support it.

val clamp : t

Clamp SQ/CQ ring sizes

val r_disabled : t

Start with ring disabled

val submit_all : t

Continue submit on error

val coop_taskrun : t

Cooperative task running

val taskrun_flag : t

Asks the kernel to set "IORING_SQ_TASKRUN" when task work is available. This is used with coop_taskrun and defer_taskrun. get_cqe_nonblocking will check "IORING_SQ_TASKRUN" and automatically enter the kernel to run the tasks if needed.

val sqe128 : t

SQEs are 128 byte

val cqe32 : t

CQEs are 32 byte

val single_issuer : t

Only one task is allowed to submit requests

val defer_taskrun : t

Defer running task work to get events

val no_sqarray : t

On older kernels, fail rather than falling back to the older indirect submission entries system.

val hybrid_iopoll : t

Similar to iopoll, but it will delay a bit before doing completion side polling, to avoid wasting too much CPU resources.

val cqe_mixed : t

Allow the kernel to send both 16-bit and 32-bit responses (saves memory). This is an alternative to cqe32.

val sqe_mixed : t

Allow sending 64-bit and 128-bit requests (saves memory). This is an alternative to sqe128.