]> Git Repo - linux.git/blob - include/linux/sunrpc/xprtsock.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux.git] / include / linux / sunrpc / xprtsock.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  *  linux/include/linux/sunrpc/xprtsock.h
4  *
5  *  Declarations for the RPC transport socket provider.
6  */
7
8 #ifndef _LINUX_SUNRPC_XPRTSOCK_H
9 #define _LINUX_SUNRPC_XPRTSOCK_H
10
11 #ifdef __KERNEL__
12
13 int             init_socket_xprt(void);
14 void            cleanup_socket_xprt(void);
15
16 #define RPC_MIN_RESVPORT        (1U)
17 #define RPC_MAX_RESVPORT        (65535U)
18 #define RPC_DEF_MIN_RESVPORT    (665U)
19 #define RPC_DEF_MAX_RESVPORT    (1023U)
20
21 struct sock_xprt {
22         struct rpc_xprt         xprt;
23
24         /*
25          * Network layer
26          */
27         struct socket *         sock;
28         struct sock *           inet;
29
30         /*
31          * State of TCP reply receive
32          */
33         struct {
34                 struct {
35                         __be32  fraghdr,
36                                 xid,
37                                 calldir;
38                 } __attribute__((packed));
39
40                 u32             offset,
41                                 len;
42
43                 unsigned long   copied;
44         } recv;
45
46         /*
47          * State of TCP transmit queue
48          */
49         struct {
50                 u32             offset;
51         } xmit;
52
53         /*
54          * Connection of transports
55          */
56         unsigned long           sock_state;
57         struct delayed_work     connect_worker;
58         struct work_struct      recv_worker;
59         struct mutex            recv_mutex;
60         struct sockaddr_storage srcaddr;
61         unsigned short          srcport;
62
63         /*
64          * UDP socket buffer size parameters
65          */
66         size_t                  rcvsize,
67                                 sndsize;
68
69         struct rpc_timeout      tcp_timeout;
70
71         /*
72          * Saved socket callback addresses
73          */
74         void                    (*old_data_ready)(struct sock *);
75         void                    (*old_state_change)(struct sock *);
76         void                    (*old_write_space)(struct sock *);
77         void                    (*old_error_report)(struct sock *);
78 };
79
80 /*
81  * TCP RPC flags
82  */
83 #define XPRT_SOCK_CONNECTING    1U
84 #define XPRT_SOCK_DATA_READY    (2)
85 #define XPRT_SOCK_UPD_TIMEOUT   (3)
86
87 #endif /* __KERNEL__ */
88
89 #endif /* _LINUX_SUNRPC_XPRTSOCK_H */
This page took 0.033594 seconds and 4 git commands to generate.