2005-04-16 15:20:36 -07:00
# ifndef NET_COMPAT_H
# define NET_COMPAT_H
2006-05-30 21:27:18 -07:00
struct sock ;
2005-04-16 15:20:36 -07: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 ;
} ;
struct compat_cmsghdr {
compat_size_t cmsg_len ;
compat_int_t cmsg_level ;
compat_int_t cmsg_type ;
} ;
2006-03-21 23:59:39 -08:00
extern int compat_sock_get_timestamp ( struct sock * , struct timeval __user * ) ;
2007-03-18 17:33:16 -07:00
extern int compat_sock_get_timestampns ( struct sock * , struct timespec __user * ) ;
2006-03-21 23:59:39 -08:00
2005-04-16 15:20:36 -07:00
# else /* defined(CONFIG_COMPAT) */
# define compat_msghdr msghdr /* to avoid compiler warnings */
# endif /* defined(CONFIG_COMPAT) */
extern int get_compat_msghdr ( struct msghdr * , struct compat_msghdr __user * ) ;
2008-07-19 22:35:47 -07:00
extern int verify_compat_iovec ( struct msghdr * , struct iovec * , struct sockaddr * , int ) ;
2005-04-16 15:20:36 -07:00
extern asmlinkage long compat_sys_sendmsg ( int , struct compat_msghdr __user * , unsigned ) ;
extern asmlinkage long compat_sys_recvmsg ( int , struct compat_msghdr __user * , unsigned ) ;
extern asmlinkage long compat_sys_getsockopt ( int , int , int , char __user * , int __user * ) ;
extern int put_cmsg_compat ( struct msghdr * , int , int , int , void * ) ;
2005-09-08 12:32:46 -07:00
extern int cmsghdr_from_user_compat_to_kern ( struct msghdr * , struct sock * , unsigned char * , int ) ;
2005-04-16 15:20:36 -07:00
2008-04-27 01:06:07 -07:00
extern int compat_mc_setsockopt ( struct sock * , int , int , char __user * , int ,
int ( * ) ( struct sock * , int , int , char __user * , int ) ) ;
2008-04-29 03:23:22 -07:00
extern int compat_mc_getsockopt ( struct sock * , int , int , char __user * ,
int __user * , int ( * ) ( struct sock * , int , int , char __user * ,
int __user * ) ) ;
2008-04-27 01:06:07 -07:00
2005-04-16 15:20:36 -07:00
# endif /* NET_COMPAT_H */