2022-05-25 06:25:13 -06:00
// SPDX-License-Identifier: GPL-2.0
# include <linux/net.h>
# include <linux/uio.h>
struct io_async_msghdr {
2023-02-23 08:43:53 -08:00
# if defined(CONFIG_NET)
2024-03-20 15:19:44 -06:00
struct iovec fast_iov ;
2022-05-25 06:25:13 -06:00
/* points to an allocated iov, if NULL we use fast_iov instead */
struct iovec * free_iov ;
2024-03-20 15:19:44 -06:00
int free_iov_nr ;
int namelen ;
2024-03-16 15:33:53 -06:00
__kernel_size_t controllen ;
__kernel_size_t payloadlen ;
2022-05-25 06:25:13 -06:00
struct sockaddr __user * uaddr ;
struct msghdr msg ;
struct sockaddr_storage addr ;
2023-02-23 08:43:53 -08:00
# endif
2022-05-25 06:25:13 -06:00
} ;
2023-02-23 08:43:53 -08:00
# if defined(CONFIG_NET)
2022-05-25 06:25:13 -06: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 12:17:51 +01:00
2022-05-25 06:25:13 -06: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 12:17:48 +01:00
void io_sendrecv_fail ( struct io_kiocb * req ) ;
2022-05-25 06:25:13 -06: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 14:30:09 -06:00
2022-09-21 12:17:52 +01:00
int io_send_zc ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 12:17:54 +01:00
int io_sendmsg_zc ( struct io_kiocb * req , unsigned int issue_flags ) ;
2022-09-21 12:17:52 +01: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 21:52:43 +01:00
2024-03-20 15:19:44 -06:00
void io_netmsg_cache_free ( const void * entry ) ;
2022-07-07 14:30:09 -06:00
# else
2024-03-20 15:19:44 -06:00
static inline void io_netmsg_cache_free ( const void * entry )
2022-07-07 14:30:09 -06:00
{
}
2022-05-25 06:25:13 -06:00
# endif