axboe-liburing 2.15.2

Low-level io_uring interface, transliterated from Jens Axboe's liburing.
Documentation
Issue a synchronous cancelation request

# DESCRIPTION

The [io_uring_register_sync_cancel] function performs a synchronous
cancelation request based on the parameters specified in *reg .*

The *reg* argument must be filled in with the appropriate information
for the cancelation request. It looks as follows:

``` c
struct io_uring_sync_cancel_reg {
    __u64 addr;
    __s32 fd;
    __u32 flags;
    struct __kernel_timespec timeout;
    __u8 opcode;
    __u8 pad[7];
    __u64 pad2[3];
};
```

The arguments largely mirror what the async prep functions support, see
[io_uring_prep_cancel] for details. Similarly, the return value is
the same. The exception is the *timeout* argument, which can be used to
limit the time that the kernel will wait for cancelations to be
successful. If the *tv_sec* and *tv_nsec* values are set to anything but
**-1UL ,** then they indicate a relative timeout upon which cancelations
should be completed by.

The *pad* values must be zero filled.

# RETURN VALUE

See [io_uring_prep_cancel] for details on the return value. If
*timeout* is set to indicate a timeout, then **-ETIME** will be returned
if exceeded. If an unknown value is set in the request, or if the pad
values are not cleared to zero, then *-EINVAL* is returned.

# SEE ALSO

[io_uring_prep_cancel]