.\" Copyright (C) 2022 Jens Axboe .\" .\" 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 .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)