1 /*
2  * linux/include/linux/lockd/xdr4.h
3  *
4  * XDR types for the NLM protocol
5  *
6  * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
7  */
8 
9 #ifndef LOCKD_XDR4_H
10 #define LOCKD_XDR4_H
11 
12 #include <linux/fs.h>
13 #include <linux/nfs.h>
14 #include <linux/sunrpc/xdr.h>
15 #include <linux/lockd/xdr.h>
16 
17 /* error codes new to NLMv4 */
18 #define	nlm4_deadlock		cpu_to_be32(NLM_DEADLCK)
19 #define	nlm4_rofs		cpu_to_be32(NLM_ROFS)
20 #define	nlm4_stale_fh		cpu_to_be32(NLM_STALE_FH)
21 #define	nlm4_fbig		cpu_to_be32(NLM_FBIG)
22 #define	nlm4_failed		cpu_to_be32(NLM_FAILED)
23 
24 
25 
26 int	nlm4svc_decode_testargs(struct svc_rqst *, __be32 *, struct nlm_args *);
27 int	nlm4svc_encode_testres(struct svc_rqst *, __be32 *, struct nlm_res *);
28 int	nlm4svc_decode_lockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
29 int	nlm4svc_decode_cancargs(struct svc_rqst *, __be32 *, struct nlm_args *);
30 int	nlm4svc_decode_unlockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
31 int	nlm4svc_encode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
32 int	nlm4svc_decode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
33 int	nlm4svc_encode_void(struct svc_rqst *, __be32 *, void *);
34 int	nlm4svc_decode_void(struct svc_rqst *, __be32 *, void *);
35 int	nlm4svc_decode_shareargs(struct svc_rqst *, __be32 *, struct nlm_args *);
36 int	nlm4svc_encode_shareres(struct svc_rqst *, __be32 *, struct nlm_res *);
37 int	nlm4svc_decode_notify(struct svc_rqst *, __be32 *, struct nlm_args *);
38 int	nlm4svc_decode_reboot(struct svc_rqst *, __be32 *, struct nlm_reboot *);
39 /*
40 int	nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
41 int	nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
42 int	nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
43 int	nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
44  */
45 extern const struct rpc_version nlm_version4;
46 
47 #endif /* LOCKD_XDR4_H */
48