Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v4.14-rc4 90 lines 1.7 kB view raw
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 12int init_socket_xprt(void); 13void 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 20struct 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 work_struct recv_worker; 48 struct mutex recv_mutex; 49 struct sockaddr_storage srcaddr; 50 unsigned short srcport; 51 52 /* 53 * UDP socket buffer size parameters 54 */ 55 size_t rcvsize, 56 sndsize; 57 58 struct rpc_timeout tcp_timeout; 59 60 /* 61 * Saved socket callback addresses 62 */ 63 void (*old_data_ready)(struct sock *); 64 void (*old_state_change)(struct sock *); 65 void (*old_write_space)(struct sock *); 66 void (*old_error_report)(struct sock *); 67}; 68 69/* 70 * TCP receive state flags 71 */ 72#define TCP_RCV_LAST_FRAG (1UL << 0) 73#define TCP_RCV_COPY_FRAGHDR (1UL << 1) 74#define TCP_RCV_COPY_XID (1UL << 2) 75#define TCP_RCV_COPY_DATA (1UL << 3) 76#define TCP_RCV_READ_CALLDIR (1UL << 4) 77#define TCP_RCV_COPY_CALLDIR (1UL << 5) 78 79/* 80 * TCP RPC flags 81 */ 82#define TCP_RPC_REPLY (1UL << 6) 83 84#define XPRT_SOCK_CONNECTING 1U 85#define XPRT_SOCK_DATA_READY (2) 86#define XPRT_SOCK_UPD_TIMEOUT (3) 87 88#endif /* __KERNEL__ */ 89 90#endif /* _LINUX_SUNRPC_XPRTSOCK_H */