| .\" Copyright (C) 2022 Jens Axboe <axboe@kernel.dk> |
| .\" |
| .\" SPDX-License-Identifier: LGPL-2.0-or-later |
| .\" |
| .TH io_uring_peek_cqe 3 "March 12, 2022" "liburing-2.2" "liburing Manual" |
| .SH NAME |
| io_uring_peek_cqe \- check if an io_uring completion event is available |
| .SH SYNOPSIS |
| .nf |
| .B #include <liburing.h> |
| .PP |
| .BI "int io_uring_peek_cqe(struct io_uring *" ring "," |
| .BI " struct io_uring_cqe **" cqe_ptr ");" |
| .PP |
| .BI "int io_uring_peek_batch_cqe(struct io_uring *" ring "," |
| .BI " struct io_uring_cqe **" cqe_ptrs "," |
| .BI " unsigned count ");" |
| .fi |
| .SH DESCRIPTION |
| .PP |
| The |
| .BR io_uring_peek_cqe (3) |
| function returns an IO completion from the queue belonging to the |
| .I ring |
| param, if one is readily available. On successful return, |
| .I cqe_ptr |
| param is filled with a valid CQE entry. |
| |
| This function does not enter the kernel to wait for an event, an event |
| is only returned if it's already available in the CQ ring. |
| |
| The |
| .BR io_uring_peek_batch_cqe (3) |
| function returns up to |
| .I count |
| request completions in |
| .I cqe_ptrs |
| belonging to the |
| .I ring |
| param, if they are readily available. It will not enter the kernel, unless the |
| CQ ring is in an overflow condition. Upon successful return, |
| .I cqe_ptrs |
| are filled with the number of events indicated by the return value. |
| |
| .SH RETURN VALUE |
| On success |
| .BR io_uring_peek_cqe (3) |
| returns |
| .B 0 |
| and the cqe_ptr parameter is filled in. On success |
| .BR io_uring_peek_batch_cqe (3) |
| returns the number of completions filled in. On failure, they may return |
| .BR -EAGAIN . |
| .SH SEE ALSO |
| .BR io_uring_submit (3), |
| .BR io_uring_wait_cqes (3), |
| .BR io_uring_wait_cqe (3) |