cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xprtsock.h (1800B)


      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
     11int		init_socket_xprt(void);
     12void		cleanup_socket_xprt(void);
     13
     14#define RPC_MIN_RESVPORT	(1U)
     15#define RPC_MAX_RESVPORT	(65535U)
     16#define RPC_DEF_MIN_RESVPORT	(665U)
     17#define RPC_DEF_MAX_RESVPORT	(1023U)
     18
     19struct sock_xprt {
     20	struct rpc_xprt		xprt;
     21
     22	/*
     23	 * Network layer
     24	 */
     25	struct socket *		sock;
     26	struct sock *		inet;
     27	struct file *		file;
     28
     29	/*
     30	 * State of TCP reply receive
     31	 */
     32	struct {
     33		struct {
     34			__be32	fraghdr,
     35				xid,
     36				calldir;
     37		} __attribute__((packed));
     38
     39		u32		offset,
     40				len;
     41
     42		unsigned long	copied;
     43	} recv;
     44
     45	/*
     46	 * State of TCP transmit queue
     47	 */
     48	struct {
     49		u32		offset;
     50	} xmit;
     51
     52	/*
     53	 * Connection of transports
     54	 */
     55	unsigned long		sock_state;
     56	struct delayed_work	connect_worker;
     57	struct work_struct	error_worker;
     58	struct work_struct	recv_worker;
     59	struct mutex		recv_mutex;
     60	struct sockaddr_storage	srcaddr;
     61	unsigned short		srcport;
     62	int			xprt_err;
     63
     64	/*
     65	 * UDP socket buffer size parameters
     66	 */
     67	size_t			rcvsize,
     68				sndsize;
     69
     70	struct rpc_timeout	tcp_timeout;
     71
     72	/*
     73	 * Saved socket callback addresses
     74	 */
     75	void			(*old_data_ready)(struct sock *);
     76	void			(*old_state_change)(struct sock *);
     77	void			(*old_write_space)(struct sock *);
     78	void			(*old_error_report)(struct sock *);
     79};
     80
     81/*
     82 * TCP RPC flags
     83 */
     84#define XPRT_SOCK_CONNECTING	1U
     85#define XPRT_SOCK_DATA_READY	(2)
     86#define XPRT_SOCK_UPD_TIMEOUT	(3)
     87#define XPRT_SOCK_WAKE_ERROR	(4)
     88#define XPRT_SOCK_WAKE_WRITE	(5)
     89#define XPRT_SOCK_WAKE_PENDING	(6)
     90#define XPRT_SOCK_WAKE_DISCONNECT	(7)
     91#define XPRT_SOCK_CONNECT_SENT	(8)
     92#define XPRT_SOCK_NOSPACE	(9)
     93
     94#endif /* _LINUX_SUNRPC_XPRTSOCK_H */