| 250 | } |
| 251 | |
| 252 | static int provide_classic_buffers(struct io_uring *ring, void *buf, int nbufs, int bgid) |
| 253 | { |
| 254 | struct io_uring_sqe *sqe; |
| 255 | struct io_uring_cqe *cqe; |
| 256 | int ret; |
| 257 | |
| 258 | sqe = io_uring_get_sqe(ring); |
| 259 | io_uring_prep_provide_buffers(sqe, buf, MSG_SIZE, nbufs, bgid, 0); |
| 260 | io_uring_submit(ring); |
| 261 | |
| 262 | ret = io_uring_wait_cqe(ring, &cqe); |
| 263 | if (ret) { |
| 264 | fprintf(stderr, "provide buffer wait: %d\n", ret); |
| 265 | return 1; |
| 266 | } |
| 267 | if (cqe->res) { |
| 268 | fprintf(stderr, "provide buffers fail: %d\n", cqe->res); |
| 269 | return 1; |
| 270 | } |
| 271 | io_uring_cqe_seen(ring, cqe); |
| 272 | return 0; |
| 273 | } |
| 274 | |
| 275 | static void *recv_fn(void *data) |
| 276 | { |
no test coverage detected