| .\" Copyright (C) 2022 Jens Axboe <axboe@kernel.dk> |
| .\" |
| .\" SPDX-License-Identifier: LGPL-2.0-or-later |
| .\" |
| .TH io_uring_prep_futex_wake 3 "Sep 29, 2023" "liburing-2.5" "liburing Manual" |
| .SH NAME |
| io_uring_prep_futex_wake \- prepare a futex wake request |
| .SH SYNOPSIS |
| .nf |
| .B #include <linux/futex.h> |
| .B #include <unistd.h> |
| .B #include <liburing.h> |
| .PP |
| .BI "void io_uring_prep_futex_wake(struct io_uring_sqe *" sqe "," |
| .BI " uint32_t *" futex "," |
| .BI " uint64_t " val "," |
| .BI " uint64_t " mask "," |
| .BI " uint32_t " futex_flags "," |
| .BI " unsigned int " flags ");" |
| .fi |
| .SH DESCRIPTION |
| .PP |
| The |
| .BR io_uring_prep_futex_wake (3) |
| function prepares a futex wake request. The submission queue entry |
| .I sqe |
| is setup for waking any waiters on the futex indicated by |
| .I futex |
| and at most |
| .I val |
| futexes. |
| .I futex_flags |
| indicates the |
| .BR futex2 (2) |
| modifier flags, and io_uring futex flags of |
| .I flags . |
| |
| If a given bitset for who to wake is desired, then that must be set in |
| .I mask . |
| Use |
| .B FUTEX_BITSET_MATCH_ANY |
| to match any waiter on the given futex. |
| |
| .I flags |
| are currently unused and hence |
| .B 0 |
| must be passed. |
| |
| This function prepares an async |
| .BR futex (2) |
| wake request. See that man page for details. Note that the io_uring futex |
| wake request is similar to the |
| .B FUTEX_WAKE_BITSET |
| operation, as |
| .B FUTEX_WAKE |
| is a strict subset of that. |
| |
| Available since kernel 6.7. |
| |
| .SH RETURN VALUE |
| None |
| .SH ERRORS |
| The CQE |
| .I res |
| field will contain the result of the operation. On success, the value will be |
| the index into |
| .I 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 |
| .B -1 |
| on failure and set |
| .I errno |
| to the actual error value, io_uring never uses |
| .IR errno . |
| Instead it returns the negated |
| .I errno |
| directly in the CQE |
| .I res |
| field. |
| .SH SEE ALSO |
| .BR io_uring_get_sqe (3), |
| .BR io_uring_submit (3), |
| .BR io_uring_prep_futex_wait (3), |
| .BR io_uring_prep_futex_waitv (3), |
| .BR futex (2) |
| .BR futex2 (2) |