mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
1.7 KiB
92 lines
1.7 KiB
/* 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) |
|
|
|
#endif /* _LINUX_SUNRPC_XPRTSOCK_H */
|
|
|