Commit | Line | Data |
---|---|---|
1da177e4 LT |
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> | |
360d8738 | 13 | #include <linux/sunrpc/svc_xprt.h> |
1da177e4 LT |
14 | |
15 | /* | |
16 | * RPC server socket. | |
17 | */ | |
18 | struct svc_sock { | |
360d8738 | 19 | struct svc_xprt sk_xprt; |
1da177e4 LT |
20 | struct socket * sk_sock; /* berkeley socket layer */ |
21 | struct sock * sk_sk; /* INET layer */ | |
22 | ||
1da177e4 LT |
23 | struct list_head sk_deferred; /* deferred requests that need to |
24 | * be revisted */ | |
1da177e4 | 25 | |
1da177e4 LT |
26 | /* We keep the old state_change and data_ready CB's here */ |
27 | void (*sk_ostate)(struct sock *); | |
28 | void (*sk_odata)(struct sock *, int bytes); | |
29 | void (*sk_owspace)(struct sock *); | |
30 | ||
31 | /* private TCP part */ | |
32 | int sk_reclen; /* length of record */ | |
33 | int sk_tcplen; /* current read length */ | |
7b2b1fee | 34 | |
a9747692 | 35 | struct sockaddr_storage sk_local; /* local address */ |
067d7817 CL |
36 | struct sockaddr_storage sk_remote; /* remote peer's address */ |
37 | int sk_remotelen; /* length of address */ | |
1da177e4 LT |
38 | }; |
39 | ||
40 | /* | |
41 | * Function prototypes. | |
42 | */ | |
7a182083 | 43 | void svc_close_all(struct list_head *); |
6fb2b47f | 44 | int svc_recv(struct svc_rqst *, long); |
1da177e4 LT |
45 | int svc_send(struct svc_rqst *); |
46 | void svc_drop(struct svc_rqst *); | |
47 | void svc_sock_update_bufs(struct svc_serv *serv); | |
b41b66d6 N |
48 | int svc_sock_names(char *buf, struct svc_serv *serv, char *toclose); |
49 | int svc_addsock(struct svc_serv *serv, | |
50 | int fd, | |
51 | char *name_return, | |
52 | int *proto); | |
360d8738 TT |
53 | void svc_init_xprt_sock(void); |
54 | void svc_cleanup_xprt_sock(void); | |
1da177e4 | 55 | |
6b174337 CL |
56 | /* |
57 | * svc_makesock socket characteristics | |
58 | */ | |
59 | #define SVC_SOCK_DEFAULTS (0U) | |
60 | #define SVC_SOCK_ANONYMOUS (1U << 0) /* don't register with pmap */ | |
61 | #define SVC_SOCK_TEMPORARY (1U << 1) /* flag socket as temporary */ | |
62 | ||
1da177e4 | 63 | #endif /* SUNRPC_SVCSOCK_H */ |