12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * linux/include/linux/sunrpc/xprtsock.h
- *
- * Declarations for the RPC transport socket provider.
- */
- #ifndef _LINUX_SUNRPC_XPRTSOCK_H
- #define _LINUX_SUNRPC_XPRTSOCK_H
- int init_socket_xprt(void);
- void cleanup_socket_xprt(void);
- #define RPC_MIN_RESVPORT (1U)
- #define RPC_MAX_RESVPORT (65535U)
- #define RPC_DEF_MIN_RESVPORT (665U)
- #define RPC_DEF_MAX_RESVPORT (1023U)
- struct sock_xprt {
- struct rpc_xprt xprt;
- /*
- * Network layer
- */
- struct socket * sock;
- struct sock * inet;
- struct file * file;
- /*
- * State of TCP reply receive
- */
- struct {
- struct {
- __be32 fraghdr,
- xid,
- calldir;
- } __attribute__((packed));
- u32 offset,
- len;
- unsigned long copied;
- } recv;
- /*
- * State of TCP transmit queue
- */
- struct {
- u32 offset;
- } xmit;
- /*
- * Connection of transports
- */
- unsigned long sock_state;
- struct delayed_work connect_worker;
- struct work_struct error_worker;
- struct work_struct recv_worker;
- struct mutex recv_mutex;
- struct sockaddr_storage srcaddr;
- unsigned short srcport;
- int xprt_err;
- /*
- * UDP socket buffer size parameters
- */
- size_t rcvsize,
- sndsize;
- struct rpc_timeout tcp_timeout;
- /*
- * Saved socket callback addresses
- */
- void (*old_data_ready)(struct sock *);
- void (*old_state_change)(struct sock *);
- void (*old_write_space)(struct sock *);
- void (*old_error_report)(struct sock *);
- };
- /*
- * TCP RPC flags
- */
- #define XPRT_SOCK_CONNECTING 1U
- #define XPRT_SOCK_DATA_READY (2)
- #define XPRT_SOCK_UPD_TIMEOUT (3)
- #define XPRT_SOCK_WAKE_ERROR (4)
- #define XPRT_SOCK_WAKE_WRITE (5)
- #define XPRT_SOCK_WAKE_PENDING (6)
- #define XPRT_SOCK_WAKE_DISCONNECT (7)
- #define XPRT_SOCK_CONNECT_SENT (8)
- #define XPRT_SOCK_NOSPACE (9)
- #endif /* _LINUX_SUNRPC_XPRTSOCK_H */
|