64 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include <linux/net.h>4#include <linux/uio.h>5 6struct io_async_msghdr {7#if defined(CONFIG_NET)8 struct iovec fast_iov;9 /* points to an allocated iov, if NULL we use fast_iov instead */10 struct iovec *free_iov;11 int free_iov_nr;12 int namelen;13 __kernel_size_t controllen;14 __kernel_size_t payloadlen;15 struct sockaddr __user *uaddr;16 struct msghdr msg;17 struct sockaddr_storage addr;18#endif19};20 21#if defined(CONFIG_NET)22 23int io_shutdown_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);24int io_shutdown(struct io_kiocb *req, unsigned int issue_flags);25 26void io_sendmsg_recvmsg_cleanup(struct io_kiocb *req);27int io_sendmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);28int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags);29 30int io_send(struct io_kiocb *req, unsigned int issue_flags);31 32int io_recvmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);33int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags);34int io_recv(struct io_kiocb *req, unsigned int issue_flags);35 36void io_sendrecv_fail(struct io_kiocb *req);37 38int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);39int io_accept(struct io_kiocb *req, unsigned int issue_flags);40 41int io_socket_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);42int io_socket(struct io_kiocb *req, unsigned int issue_flags);43 44int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);45int io_connect(struct io_kiocb *req, unsigned int issue_flags);46 47int io_send_zc(struct io_kiocb *req, unsigned int issue_flags);48int io_sendmsg_zc(struct io_kiocb *req, unsigned int issue_flags);49int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);50void io_send_zc_cleanup(struct io_kiocb *req);51 52int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);53int io_bind(struct io_kiocb *req, unsigned int issue_flags);54 55int io_listen_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);56int io_listen(struct io_kiocb *req, unsigned int issue_flags);57 58void io_netmsg_cache_free(const void *entry);59#else60static inline void io_netmsg_cache_free(const void *entry)61{62}63#endif64