0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _LINUX_SUNRPC_XPRTSOCK_H
0009 #define _LINUX_SUNRPC_XPRTSOCK_H
0010
0011 int init_socket_xprt(void);
0012 void cleanup_socket_xprt(void);
0013
0014 #define RPC_MIN_RESVPORT (1U)
0015 #define RPC_MAX_RESVPORT (65535U)
0016 #define RPC_DEF_MIN_RESVPORT (665U)
0017 #define RPC_DEF_MAX_RESVPORT (1023U)
0018
0019 struct sock_xprt {
0020 struct rpc_xprt xprt;
0021
0022
0023
0024
0025 struct socket * sock;
0026 struct sock * inet;
0027 struct file * file;
0028
0029
0030
0031
0032 struct {
0033 struct {
0034 __be32 fraghdr,
0035 xid,
0036 calldir;
0037 } __attribute__((packed));
0038
0039 u32 offset,
0040 len;
0041
0042 unsigned long copied;
0043 } recv;
0044
0045
0046
0047
0048 struct {
0049 u32 offset;
0050 } xmit;
0051
0052
0053
0054
0055 unsigned long sock_state;
0056 struct delayed_work connect_worker;
0057 struct work_struct error_worker;
0058 struct work_struct recv_worker;
0059 struct mutex recv_mutex;
0060 struct sockaddr_storage srcaddr;
0061 unsigned short srcport;
0062 int xprt_err;
0063
0064
0065
0066
0067 size_t rcvsize,
0068 sndsize;
0069
0070 struct rpc_timeout tcp_timeout;
0071
0072
0073
0074
0075 void (*old_data_ready)(struct sock *);
0076 void (*old_state_change)(struct sock *);
0077 void (*old_write_space)(struct sock *);
0078 void (*old_error_report)(struct sock *);
0079 };
0080
0081
0082
0083
0084 #define XPRT_SOCK_CONNECTING 1U
0085 #define XPRT_SOCK_DATA_READY (2)
0086 #define XPRT_SOCK_UPD_TIMEOUT (3)
0087 #define XPRT_SOCK_WAKE_ERROR (4)
0088 #define XPRT_SOCK_WAKE_WRITE (5)
0089 #define XPRT_SOCK_WAKE_PENDING (6)
0090 #define XPRT_SOCK_WAKE_DISCONNECT (7)
0091 #define XPRT_SOCK_CONNECT_SENT (8)
0092 #define XPRT_SOCK_NOSPACE (9)
0093
0094 #endif