2022-05-25 15:25:13 +03:00
// SPDX-License-Identifier: GPL-2.0
# include <linux/net.h>
# include <linux/uio.h>
struct io_async_msghdr {
2023-02-23 19:43:53 +03:00
# if defined(CONFIG_NET)
2024-03-21 00:19:44 +03:00
struct iovec fast_iov ;
2022-05-25 15:25:13 +03:00
/* points to an allocated iov, if NULL we use fast_iov instead */
struct iovec * free_iov ;
2024-03-21 00:19:44 +03:00
int free_iov_nr ;
int namelen ;
2024-03-17 00:33:53 +03:00
__kernel_size_t controllen ;
__kernel_size_t payloadlen ;
2022-05-25 15:25:13 +03:00
struct sockaddr __user * uaddr ;
struct msghdr msg ;
struct sockaddr_storage addr ;
2023-02-23 19:43:53 +03:00
# endif
2022-05-25 15:25:13 +03:00
} ;
2023-02-23 19:43:53 +03:00
# if defined(CONFIG_NET)
2022-05-25 15:25:13 +03:00
int io_shutdown_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_shutdown ( struct io_kiocb * req , unsigned int issue_flags ) ;
void io_sendmsg_recvmsg_cleanup ( struct io_kiocb * req ) ;
int io_sendmsg_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_sendmsg ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 14:17:51 +03:00
2022-05-25 15:25:13 +03:00
int io_send ( struct io_kiocb * req , unsigned int issue_flags ) ;
int io_recvmsg_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_recvmsg ( struct io_kiocb * req , unsigned int issue_flags ) ;
int io_recv ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 14:17:48 +03:00
void io_sendrecv_fail ( struct io_kiocb * req ) ;
2022-05-25 15:25:13 +03:00
int io_accept_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_accept ( struct io_kiocb * req , unsigned int issue_flags ) ;
int io_socket_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_socket ( struct io_kiocb * req , unsigned int issue_flags ) ;
int io_connect_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_connect ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-07-07 23:30:09 +03:00
2022-09-21 14:17:52 +03:00
int io_send_zc ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 14:17:54 +03:00
int io_sendmsg_zc ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 14:17:52 +03:00
int io_send_zc_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
void io_send_zc_cleanup ( struct io_kiocb * req ) ;
2022-07-12 23:52:43 +03:00
2024-06-14 19:30:46 +03:00
int io_bind_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_bind ( struct io_kiocb * req , unsigned int issue_flags ) ;
2024-06-14 19:30:47 +03:00
int io_listen_prep ( struct io_kiocb * req , const struct io_uring_sqe * sqe ) ;
int io_listen ( struct io_kiocb * req , unsigned int issue_flags ) ;
2024-03-21 00:19:44 +03:00
void io_netmsg_cache_free ( const void * entry ) ;
2022-07-07 23:30:09 +03:00
# else
2024-03-21 00:19:44 +03:00
static inline void io_netmsg_cache_free ( const void * entry )
2022-07-07 23:30:09 +03:00
{
}
2022-05-25 15:25:13 +03:00
# endif