1
2
3
4
5
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
26
27 struct socket * sock;
28 struct sock * inet;
29 struct file * file;
30
31
32
33
34 struct {
35 struct {
36 __be32 fraghdr,
37 xid,
38 calldir;
39 } __attribute__((packed));
40
41 u32 offset,
42 len;
43
44 unsigned long copied;
45 } recv;
46
47
48
49
50 struct {
51 u32 offset;
52 } xmit;
53
54
55
56
57 unsigned long sock_state;
58 struct delayed_work connect_worker;
59 struct work_struct error_worker;
60 struct work_struct recv_worker;
61 struct mutex recv_mutex;
62 struct sockaddr_storage srcaddr;
63 unsigned short srcport;
64 int xprt_err;
65
66
67
68
69 size_t rcvsize,
70 sndsize;
71
72 struct rpc_timeout tcp_timeout;
73
74
75
76
77 void (*old_data_ready)(struct sock *);
78 void (*old_state_change)(struct sock *);
79 void (*old_write_space)(struct sock *);
80 void (*old_error_report)(struct sock *);
81 };
82
83
84
85
86 #define XPRT_SOCK_CONNECTING 1U
87 #define XPRT_SOCK_DATA_READY (2)
88 #define XPRT_SOCK_UPD_TIMEOUT (3)
89 #define XPRT_SOCK_WAKE_ERROR (4)
90 #define XPRT_SOCK_WAKE_WRITE (5)
91 #define XPRT_SOCK_WAKE_PENDING (6)
92 #define XPRT_SOCK_WAKE_DISCONNECT (7)
93
94 #endif
95
96 #endif