]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blob - include/linux/sunrpc/xprtsock.h
HID: logitech-dj: fix spelling in printk
[mirror_ubuntu-kernels.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 */