svc_xprt.h 940 字节
Newer Older
T
Tom Tucker 已提交
1 2 3 4 5 6 7 8 9 10 11 12
/*
 * linux/include/linux/sunrpc/svc_xprt.h
 *
 * RPC server transport I/O
 */

#ifndef SUNRPC_SVC_XPRT_H
#define SUNRPC_SVC_XPRT_H

#include <linux/sunrpc/svc.h>

struct svc_xprt_ops {
13
	int		(*xpo_has_wspace)(struct svc_xprt *);
14
	int		(*xpo_recvfrom)(struct svc_rqst *);
T
Tom Tucker 已提交
15
	void		(*xpo_prep_reply_hdr)(struct svc_rqst *);
16
	int		(*xpo_sendto)(struct svc_rqst *);
17
	void		(*xpo_release_rqst)(struct svc_rqst *);
18 19
	void		(*xpo_detach)(struct svc_xprt *);
	void		(*xpo_free)(struct svc_xprt *);
T
Tom Tucker 已提交
20 21 22 23 24 25 26
};

struct svc_xprt_class {
	const char		*xcl_name;
	struct module		*xcl_owner;
	struct svc_xprt_ops	*xcl_ops;
	struct list_head	xcl_list;
27
	u32			xcl_max_payload;
T
Tom Tucker 已提交
28 29 30 31 32 33 34 35 36 37 38 39
};

struct svc_xprt {
	struct svc_xprt_class	*xpt_class;
	struct svc_xprt_ops	*xpt_ops;
};

int	svc_reg_xprt_class(struct svc_xprt_class *);
void	svc_unreg_xprt_class(struct svc_xprt_class *);
void	svc_xprt_init(struct svc_xprt_class *, struct svc_xprt *);

#endif /* SUNRPC_SVC_XPRT_H */