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
25void nlm4svc_set_file_lock_range(struct file_lock *fl, u64 off, u64 len);
26bool nlm4svc_decode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
27bool nlm4svc_decode_testargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
28bool nlm4svc_decode_lockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
29bool nlm4svc_decode_cancargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
30bool nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
31bool nlm4svc_decode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
32bool nlm4svc_decode_reboot(struct svc_rqst *rqstp, struct xdr_stream *xdr);
33bool nlm4svc_decode_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
34bool nlm4svc_decode_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr);
35
36bool nlm4svc_encode_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
37bool nlm4svc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
38bool nlm4svc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
39bool nlm4svc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
40
41extern const struct rpc_version nlm_version4;
42
43#endif /* LOCKD_XDR4_H */
44

source code of linux/include/linux/lockd/xdr4.h