io\_uring\_prep\_futex\_wake(3) liburing Manual io\_uring\_prep\_futex\_wake(3)

# [NAME](#NAME)

io\_uring\_prep\_futex\_wake - prepare a futex wake request

# [SYNOPSIS](#SYNOPSIS)

```
#include <linux/futex.h>
#include <unistd.h>
#include <liburing.h>
```

```
void io_uring_prep_futex_wake(struct io_uring_sqe *sqe,
                              const uint32_t *futex,
                              uint64_t val,
                              uint64_t mask,
                              uint32_t futex_flags,
                              unsigned int flags);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_prep\_futex\_wake**(3)](/man/os/liburing/io_uring_prep_futex_wake.3) function prepares a futex wake request. The submission queue entry *sqe* is setup for waking any waiters on the futex indicated by *futex* and at most *val* futexes. *futex\_flags* indicates the [**futex2**(2)](/man/os/liburing/futex2.2) modifier flags, and io\_uring futex flags of *flags .*

If a given bitset for who to wake is desired, then that must be set in *mask .* Use **FUTEX\_BITSET\_MATCH\_ANY** to match any waiter on the given futex.

*flags* are currently unused and hence **0** must be passed.

This function prepares an async [**futex**(2)](/man/os/liburing/futex.2) wake request. See that man page for details. Note that the io\_uring futex wake request is similar to the **FUTEX\_WAKE\_BITSET** operation, as **FUTEX\_WAKE** is a strict subset of that.

Available since kernel 6.7.

# [RETURN VALUE](#RETURN_VALUE)

None

# [ERRORS](#ERRORS)

The CQE *res* field will contain the result of the operation. On success, the value will be the index into *futexv* which received a wakeup. See the related man page for details on possible values for errors. Note that where synchronous system calls will return **-1** on failure and set *errno* to the actual error value, io\_uring never uses *errno*. Instead it returns the negated *errno* directly in the CQE *res* field.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_get\_sqe**(3)](/man/os/liburing/io_uring_get_sqe.3), [**io\_uring\_submit**(3)](/man/os/liburing/io_uring_submit.3), [**io\_uring\_prep\_futex\_wait**(3)](/man/os/liburing/io_uring_prep_futex_wait.3), [**io\_uring\_prep\_futex\_waitv**(3)](/man/os/liburing/io_uring_prep_futex_waitv.3), [**futex**(2)](/man/os/liburing/futex.2) [**futex2**(2)](/man/os/liburing/futex2.2)

September 29, 2023 liburing-2.5

---

Document: io_uring_prep_futex_wake(3) from liburing 2.15-r5 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
