~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/sunrpc/svcsock.h

Version: ~ [ linux-5.15-rc5 ] ~ [ linux-5.14.11 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.72 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.152 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.210 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.250 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.286 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.288 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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>
 13 #include <linux/sunrpc/svc_xprt.h>
 14 
 15 /*
 16  * RPC server socket.
 17  */
 18 struct svc_sock {
 19         struct svc_xprt         sk_xprt;
 20         struct socket *         sk_sock;        /* berkeley socket layer */
 21         struct sock *           sk_sk;          /* INET layer */
 22 
 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 *);
 26         void                    (*sk_owspace)(struct sock *);
 27 
 28         /* private TCP part */
 29         /* On-the-wire fragment header: */
 30         __be32                  sk_reclen;
 31         /* As we receive a record, this includes the length received so
 32          * far (including the fragment header): */
 33         u32                     sk_tcplen;
 34         /* Total length of the data (not including fragment headers)
 35          * received so far in the fragments making up this rpc: */
 36         u32                     sk_datalen;
 37 
 38         struct page *           sk_pages[RPCSVC_MAXPAGES];      /* received data */
 39 };
 40 
 41 static inline u32 svc_sock_reclen(struct svc_sock *svsk)
 42 {
 43         return ntohl(svsk->sk_reclen) & RPC_FRAGMENT_SIZE_MASK;
 44 }
 45 
 46 static inline u32 svc_sock_final_rec(struct svc_sock *svsk)
 47 {
 48         return ntohl(svsk->sk_reclen) & RPC_LAST_STREAM_FRAGMENT;
 49 }
 50 
 51 /*
 52  * Function prototypes.
 53  */
 54 void            svc_close_net(struct svc_serv *, struct net *);
 55 int             svc_recv(struct svc_rqst *, long);
 56 int             svc_send(struct svc_rqst *);
 57 void            svc_drop(struct svc_rqst *);
 58 void            svc_sock_update_bufs(struct svc_serv *serv);
 59 bool            svc_alien_sock(struct net *net, int fd);
 60 int             svc_addsock(struct svc_serv *serv, const int fd,
 61                                         char *name_return, const size_t len);
 62 void            svc_init_xprt_sock(void);
 63 void            svc_cleanup_xprt_sock(void);
 64 struct svc_xprt *svc_sock_create(struct svc_serv *serv, int prot);
 65 void            svc_sock_destroy(struct svc_xprt *);
 66 
 67 /*
 68  * svc_makesock socket characteristics
 69  */
 70 #define SVC_SOCK_DEFAULTS       (0U)
 71 #define SVC_SOCK_ANONYMOUS      (1U << 0)       /* don't register with pmap */
 72 #define SVC_SOCK_TEMPORARY      (1U << 1)       /* flag socket as temporary */
 73 
 74 #endif /* SUNRPC_SVCSOCK_H */
 75 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp