| 402 | } |
| 403 | |
| 404 | int __io_uring_clone_buffers_offset(struct io_uring *dst, struct io_uring *src, |
| 405 | unsigned int dst_off, unsigned int src_off, |
| 406 | unsigned int nr, unsigned int flags) |
| 407 | { |
| 408 | struct io_uring_clone_buffers buf = { |
| 409 | .src_fd = src->ring_fd, |
| 410 | .flags = flags, |
| 411 | .src_off = src_off, |
| 412 | .dst_off = dst_off, |
| 413 | .nr = nr, |
| 414 | }; |
| 415 | |
| 416 | if (flags & IORING_REGISTER_SRC_REGISTERED && |
| 417 | src->int_flags & INT_FLAG_REG_REG_RING) { |
| 418 | buf.src_fd = src->enter_ring_fd; |
| 419 | } else { |
| 420 | buf.src_fd = src->ring_fd; |
| 421 | buf.flags &= ~IORING_REGISTER_SRC_REGISTERED; |
| 422 | } |
| 423 | |
| 424 | return do_register(dst, IORING_REGISTER_CLONE_BUFFERS, &buf, 1); |
| 425 | } |
| 426 | |
| 427 | int io_uring_clone_buffers_offset(struct io_uring *dst, struct io_uring *src, |
| 428 | unsigned int dst_off, unsigned int src_off, |
no test coverage detected