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 */ 44