GNU Linux-libre 6.9.2-gnu
[releases.git] / include / linux / lockd / xdr4.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * linux/include/linux/lockd/xdr4.h
4  *
5  * XDR types for the NLM protocol
6  *
7  * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
8  */
9
10 #ifndef LOCKD_XDR4_H
11 #define LOCKD_XDR4_H
12
13 #include <linux/fs.h>
14 #include <linux/nfs.h>
15 #include <linux/sunrpc/xdr.h>
16 #include <linux/lockd/xdr.h>
17
18 /* error codes new to NLMv4 */
19 #define nlm4_deadlock           cpu_to_be32(NLM_DEADLCK)
20 #define nlm4_rofs               cpu_to_be32(NLM_ROFS)
21 #define nlm4_stale_fh           cpu_to_be32(NLM_STALE_FH)
22 #define nlm4_fbig               cpu_to_be32(NLM_FBIG)
23 #define nlm4_failed             cpu_to_be32(NLM_FAILED)
24
25 void    nlm4svc_set_file_lock_range(struct file_lock *fl, u64 off, u64 len);
26 bool    nlm4svc_decode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
27 bool    nlm4svc_decode_testargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
28 bool    nlm4svc_decode_lockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
29 bool    nlm4svc_decode_cancargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
30 bool    nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
31 bool    nlm4svc_decode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
32 bool    nlm4svc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr);
33 bool    nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
34 bool    nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
35
36 bool    nlm4svc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
37 bool    nlm4svc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
38 bool    nlm4svc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
39 bool    nlm4svc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
40
41 extern const struct rpc_version nlm_version4;
42
43 #endif /* LOCKD_XDR4_H */