Message ID | 20221018191602.2112515-12-jonathan.lemon@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | zero-copy RX for io_uring | expand |
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index d406d21e8c38..c50c63053f13 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -681,6 +681,14 @@ struct io_uring_ifq_req { __u16 __pad[2]; }; +struct io_uring_zctap_iov { + __u32 off; + __u32 len; + __u16 bgid; + __u16 bid; + __u16 resv[2]; +}; + #ifdef __cplusplus } #endif
When performing a ZC receive, instead of returning data directly to the user, an iov[] structure is returned referencing the data in user space. The application locates the base address of the data by performing address computations on bgid:bid. The off/len applies to the base address, resulting in the data segment. The bgid:bid identifying the buffer should later be placed in the ifq's fill ring, which returns the buffer back to the kernel. Signed-off-by: Jonathan Lemon <jonathan.lemon@gmail.com> --- include/uapi/linux/io_uring.h | 8 ++++++++ 1 file changed, 8 insertions(+)