From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 16 Apr 2005 15:20:36 -0700 Subject: Linux-2.6.12-rc2 Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip! --- include/linux/sunrpc/svcsock.h | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 include/linux/sunrpc/svcsock.h (limited to 'include/linux/sunrpc/svcsock.h') diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h new file mode 100644 index 000000000000..d33c6face032 --- /dev/null +++ b/include/linux/sunrpc/svcsock.h @@ -0,0 +1,65 @@ +/* + * linux/include/linux/sunrpc/svcsock.h + * + * RPC server socket I/O. + * + * Copyright (C) 1995, 1996 Olaf Kirch + */ + +#ifndef SUNRPC_SVCSOCK_H +#define SUNRPC_SVCSOCK_H + +#include + +/* + * RPC server socket. + */ +struct svc_sock { + struct list_head sk_ready; /* list of ready sockets */ + struct list_head sk_list; /* list of all sockets */ + struct socket * sk_sock; /* berkeley socket layer */ + struct sock * sk_sk; /* INET layer */ + + struct svc_serv * sk_server; /* service for this socket */ + unsigned int sk_inuse; /* use count */ + unsigned long sk_flags; +#define SK_BUSY 0 /* enqueued/receiving */ +#define SK_CONN 1 /* conn pending */ +#define SK_CLOSE 2 /* dead or dying */ +#define SK_DATA 3 /* data pending */ +#define SK_TEMP 4 /* temp (TCP) socket */ +#define SK_DEAD 6 /* socket closed */ +#define SK_CHNGBUF 7 /* need to change snd/rcv buffer sizes */ +#define SK_DEFERRED 8 /* request on sk_deferred */ + + int sk_reserved; /* space on outq that is reserved */ + + struct list_head sk_deferred; /* deferred requests that need to + * be revisted */ + struct semaphore sk_sem; /* to serialize sending data */ + + int (*sk_recvfrom)(struct svc_rqst *rqstp); + int (*sk_sendto)(struct svc_rqst *rqstp); + + /* We keep the old state_change and data_ready CB's here */ + void (*sk_ostate)(struct sock *); + void (*sk_odata)(struct sock *, int bytes); + void (*sk_owspace)(struct sock *); + + /* private TCP part */ + int sk_reclen; /* length of record */ + int sk_tcplen; /* current read length */ + time_t sk_lastrecv; /* time of last received request */ +}; + +/* + * Function prototypes. + */ +int svc_makesock(struct svc_serv *, int, unsigned short); +void svc_delete_socket(struct svc_sock *); +int svc_recv(struct svc_serv *, struct svc_rqst *, long); +int svc_send(struct svc_rqst *); +void svc_drop(struct svc_rqst *); +void svc_sock_update_bufs(struct svc_serv *serv); + +#endif /* SUNRPC_SVCSOCK_H */ -- cgit v1.2.3