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		__constant_htonl(NLM_DEADLCK)
19#define	nlm4_rofs		__constant_htonl(NLM_ROFS)
20#define	nlm4_stale_fh		__constant_htonl(NLM_STALE_FH)
21#define	nlm4_fbig		__constant_htonl(NLM_FBIG)
22#define	nlm4_failed		__constant_htonl(NLM_FAILED)
23
24
25
26int	nlm4svc_decode_testargs(struct svc_rqst *, __be32 *, struct nlm_args *);
27int	nlm4svc_encode_testres(struct svc_rqst *, __be32 *, struct nlm_res *);
28int	nlm4svc_decode_lockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
29int	nlm4svc_decode_cancargs(struct svc_rqst *, __be32 *, struct nlm_args *);
30int	nlm4svc_decode_unlockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
31int	nlm4svc_encode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
32int	nlm4svc_decode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
33int	nlm4svc_encode_void(struct svc_rqst *, __be32 *, void *);
34int	nlm4svc_decode_void(struct svc_rqst *, __be32 *, void *);
35int	nlm4svc_decode_shareargs(struct svc_rqst *, __be32 *, struct nlm_args *);
36int	nlm4svc_encode_shareres(struct svc_rqst *, __be32 *, struct nlm_res *);
37int	nlm4svc_decode_notify(struct svc_rqst *, __be32 *, struct nlm_args *);
38int	nlm4svc_decode_reboot(struct svc_rqst *, __be32 *, struct nlm_reboot *);
39/*
40int	nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
41int	nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
42int	nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
43int	nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
44 */
45extern struct rpc_version nlm_version4;
46
47#endif /* LOCKD_XDR4_H */
48