Merge remote-tracking branches 'asoc/fix/tlv320aic3x' and 'asoc/fix/wm8962' into...
[linux-drm-fsl-dcu.git] / include / linux / sunrpc / xprtsock.h
1 /*
2  *  linux/include/linux/sunrpc/xprtsock.h
3  *
4  *  Declarations for the RPC transport socket provider.
5  */
6
7 #ifndef _LINUX_SUNRPC_XPRTSOCK_H
8 #define _LINUX_SUNRPC_XPRTSOCK_H
9
10 #ifdef __KERNEL__
11
12 int             init_socket_xprt(void);
13 void            cleanup_socket_xprt(void);
14
15 #define RPC_MIN_RESVPORT        (1U)
16 #define RPC_MAX_RESVPORT        (65535U)
17 #define RPC_DEF_MIN_RESVPORT    (665U)
18 #define RPC_DEF_MAX_RESVPORT    (1023U)
19
20 struct sock_xprt {
21         struct rpc_xprt         xprt;
22
23         /*
24          * Network layer
25          */
26         struct socket *         sock;
27         struct sock *           inet;
28
29         /*
30          * State of TCP reply receive
31          */
32         __be32                  tcp_fraghdr,
33                                 tcp_xid,
34                                 tcp_calldir;
35
36         u32                     tcp_offset,
37                                 tcp_reclen;
38
39         unsigned long           tcp_copied,
40                                 tcp_flags;
41
42         /*
43          * Connection of transports
44          */
45         unsigned long           sock_state;
46         struct delayed_work     connect_worker;
47         struct sockaddr_storage srcaddr;
48         unsigned short          srcport;
49
50         /*
51          * UDP socket buffer size parameters
52          */
53         size_t                  rcvsize,
54                                 sndsize;
55
56         /*
57          * Saved socket callback addresses
58          */
59         void                    (*old_data_ready)(struct sock *);
60         void                    (*old_state_change)(struct sock *);
61         void                    (*old_write_space)(struct sock *);
62         void                    (*old_error_report)(struct sock *);
63 };
64
65 /*
66  * TCP receive state flags
67  */
68 #define TCP_RCV_LAST_FRAG       (1UL << 0)
69 #define TCP_RCV_COPY_FRAGHDR    (1UL << 1)
70 #define TCP_RCV_COPY_XID        (1UL << 2)
71 #define TCP_RCV_COPY_DATA       (1UL << 3)
72 #define TCP_RCV_READ_CALLDIR    (1UL << 4)
73 #define TCP_RCV_COPY_CALLDIR    (1UL << 5)
74
75 /*
76  * TCP RPC flags
77  */
78 #define TCP_RPC_REPLY           (1UL << 6)
79
80 #define XPRT_SOCK_CONNECTING    1U
81
82 #endif /* __KERNEL__ */
83
84 #endif /* _LINUX_SUNRPC_XPRTSOCK_H */