2005-04-17 02:20:36 +04:00
# ifndef NET_COMPAT_H
# define NET_COMPAT_H
2006-05-31 08:27:18 +04:00
struct sock ;
2005-04-17 02:20:36 +04:00
# if defined(CONFIG_COMPAT)
# include <linux/compat.h>
struct compat_msghdr {
compat_uptr_t msg_name ; /* void * */
compat_int_t msg_namelen ;
compat_uptr_t msg_iov ; /* struct compat_iovec * */
compat_size_t msg_iovlen ;
compat_uptr_t msg_control ; /* void * */
compat_size_t msg_controllen ;
compat_uint_t msg_flags ;
} ;
2009-10-13 10:40:10 +04:00
struct compat_mmsghdr {
struct compat_msghdr msg_hdr ;
compat_uint_t msg_len ;
} ;
2005-04-17 02:20:36 +04:00
struct compat_cmsghdr {
compat_size_t cmsg_len ;
compat_int_t cmsg_level ;
compat_int_t cmsg_type ;
} ;
2013-09-20 22:23:18 +04:00
int compat_sock_get_timestamp ( struct sock * , struct timeval __user * ) ;
int compat_sock_get_timestampns ( struct sock * , struct timespec __user * ) ;
2006-03-22 10:59:39 +03:00
2005-04-17 02:20:36 +04:00
# else /* defined(CONFIG_COMPAT) */
2009-10-20 12:09:17 +04:00
/*
* To avoid compiler warnings :
*/
# define compat_msghdr msghdr
# define compat_mmsghdr mmsghdr
2005-04-17 02:20:36 +04:00
# endif /* defined(CONFIG_COMPAT) */
2013-09-20 22:23:18 +04:00
int get_compat_msghdr ( struct msghdr * , struct compat_msghdr __user * ) ;
int verify_compat_iovec ( struct msghdr * , struct iovec * ,
struct sockaddr_storage * , int ) ;
asmlinkage long compat_sys_sendmsg ( int , struct compat_msghdr __user * ,
unsigned int ) ;
asmlinkage long compat_sys_sendmmsg ( int , struct compat_mmsghdr __user * ,
unsigned int , unsigned int ) ;
asmlinkage long compat_sys_recvmsg ( int , struct compat_msghdr __user * ,
unsigned int ) ;
asmlinkage long compat_sys_recvmmsg ( int , struct compat_mmsghdr __user * ,
unsigned int , unsigned int ,
struct compat_timespec __user * ) ;
asmlinkage long compat_sys_getsockopt ( int , int , int , char __user * ,
int __user * ) ;
int put_cmsg_compat ( struct msghdr * , int , int , int , void * ) ;
int cmsghdr_from_user_compat_to_kern ( struct msghdr * , struct sock * ,
unsigned char * , int ) ;
int compat_mc_setsockopt ( struct sock * , int , int , char __user * , unsigned int ,
int ( * ) ( struct sock * , int , int , char __user * ,
unsigned int ) ) ;
int compat_mc_getsockopt ( struct sock * , int , int , char __user * , int __user * ,
int ( * ) ( struct sock * , int , int , char __user * ,
int __user * ) ) ;
2008-04-27 12:06:07 +04:00
2005-04-17 02:20:36 +04:00
# endif /* NET_COMPAT_H */