cregit-Linux how code gets into the kernel

Release 4.7 include/linux/sunrpc/xprtsock.h

/*
 *  linux/include/linux/sunrpc/xprtsock.h
 *
 *  Declarations for the RPC transport socket provider.
 */

#ifndef _LINUX_SUNRPC_XPRTSOCK_H

#define _LINUX_SUNRPC_XPRTSOCK_H

#ifdef __KERNEL__

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;

	/*
         * State of TCP reply receive
         */
	
__be32			tcp_fraghdr,
				
tcp_xid,
				
tcp_calldir;

	
u32			tcp_offset,
				
tcp_reclen;

	
unsigned long		tcp_copied,
				
tcp_flags;

	/*
         * Connection of transports
         */
	
unsigned long		sock_state;
	
struct delayed_work	connect_worker;
	
struct work_struct	recv_worker;
	
struct mutex		recv_mutex;
	
struct sockaddr_storage	srcaddr;
	
unsigned short		srcport;

	/*
         * UDP socket buffer size parameters
         */
	
size_t			rcvsize,
				
sndsize;

	/*
         * 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 receive state flags
 */

#define TCP_RCV_LAST_FRAG	(1UL << 0)

#define TCP_RCV_COPY_FRAGHDR	(1UL << 1)

#define TCP_RCV_COPY_XID	(1UL << 2)

#define TCP_RCV_COPY_DATA	(1UL << 3)

#define TCP_RCV_READ_CALLDIR	(1UL << 4)

#define TCP_RCV_COPY_CALLDIR	(1UL << 5)

/*
 * TCP RPC flags
 */

#define TCP_RPC_REPLY		(1UL << 6)


#define XPRT_SOCK_CONNECTING	1U

#endif /* __KERNEL__ */

#endif /* _LINUX_SUNRPC_XPRTSOCK_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
jeff laytonjeff layton13368.91%125.00%
thomas talpeythomas talpey4422.80%125.00%
trond myklebusttrond myklebust168.29%250.00%
Total193100.00%4100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}