| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * linux/include/linux/sunrpc/svcsock.h | 
 | 3 |  * | 
 | 4 |  * RPC server socket I/O. | 
 | 5 |  * | 
 | 6 |  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> | 
 | 7 |  */ | 
 | 8 |  | 
 | 9 | #ifndef SUNRPC_SVCSOCK_H | 
 | 10 | #define SUNRPC_SVCSOCK_H | 
 | 11 |  | 
 | 12 | #include <linux/sunrpc/svc.h> | 
| Tom Tucker | 360d873 | 2007-12-30 21:07:17 -0600 | [diff] [blame] | 13 | #include <linux/sunrpc/svc_xprt.h> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 14 |  | 
 | 15 | /* | 
 | 16 |  * RPC server socket. | 
 | 17 |  */ | 
 | 18 | struct svc_sock { | 
| Tom Tucker | 360d873 | 2007-12-30 21:07:17 -0600 | [diff] [blame] | 19 | 	struct svc_xprt		sk_xprt; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 20 | 	struct socket *		sk_sock;	/* berkeley socket layer */ | 
 | 21 | 	struct sock *		sk_sk;		/* INET layer */ | 
 | 22 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 | 	/* We keep the old state_change and data_ready CB's here */ | 
 | 24 | 	void			(*sk_ostate)(struct sock *); | 
 | 25 | 	void			(*sk_odata)(struct sock *, int bytes); | 
 | 26 | 	void			(*sk_owspace)(struct sock *); | 
 | 27 |  | 
 | 28 | 	/* private TCP part */ | 
| Chuck Lever | c0401ea | 2008-04-14 12:27:30 -0400 | [diff] [blame] | 29 | 	u32			sk_reclen;	/* length of record */ | 
 | 30 | 	u32			sk_tcplen;	/* current read length */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 31 | }; | 
 | 32 |  | 
 | 33 | /* | 
 | 34 |  * Function prototypes. | 
 | 35 |  */ | 
| Tom Tucker | 7a18208 | 2007-12-30 21:07:53 -0600 | [diff] [blame] | 36 | void		svc_close_all(struct list_head *); | 
| NeilBrown | 6fb2b47 | 2006-10-02 02:17:50 -0700 | [diff] [blame] | 37 | int		svc_recv(struct svc_rqst *, long); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 38 | int		svc_send(struct svc_rqst *); | 
 | 39 | void		svc_drop(struct svc_rqst *); | 
 | 40 | void		svc_sock_update_bufs(struct svc_serv *serv); | 
| Chuck Lever | 8435d34 | 2009-04-23 19:32:40 -0400 | [diff] [blame] | 41 | int		svc_sock_names(struct svc_serv *serv, char *buf, | 
 | 42 | 					const size_t buflen, | 
 | 43 | 					const char *toclose); | 
| Chuck Lever | bfba9ab | 2009-04-23 19:32:33 -0400 | [diff] [blame] | 44 | int		svc_addsock(struct svc_serv *serv, const int fd, | 
 | 45 | 					char *name_return, const size_t len); | 
| Tom Tucker | 360d873 | 2007-12-30 21:07:17 -0600 | [diff] [blame] | 46 | void		svc_init_xprt_sock(void); | 
 | 47 | void		svc_cleanup_xprt_sock(void); | 
| Benny Halevy | 7652e5a | 2009-04-01 09:23:09 -0400 | [diff] [blame] | 48 | struct svc_xprt *svc_sock_create(struct svc_serv *serv, int prot); | 
 | 49 | void		svc_sock_destroy(struct svc_xprt *); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 |  | 
| Chuck Lever | 6b17433 | 2007-02-12 00:53:28 -0800 | [diff] [blame] | 51 | /* | 
 | 52 |  * svc_makesock socket characteristics | 
 | 53 |  */ | 
 | 54 | #define SVC_SOCK_DEFAULTS	(0U) | 
 | 55 | #define SVC_SOCK_ANONYMOUS	(1U << 0)	/* don't register with pmap */ | 
 | 56 | #define SVC_SOCK_TEMPORARY	(1U << 1)	/* flag socket as temporary */ | 
 | 57 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 58 | #endif /* SUNRPC_SVCSOCK_H */ |