xref: /linux/fs/lockd/nlm3xdr_gen.c (revision 0eaed89c18aeedf0898baf2dbf5ff027c6795152)
1*4b386d8dSChuck Lever // SPDX-License-Identifier: GPL-2.0
2*4b386d8dSChuck Lever // Generated by xdrgen. Manual edits will be lost.
3*4b386d8dSChuck Lever // XDR specification file: ../../Documentation/sunrpc/xdr/nlm3.x
4*4b386d8dSChuck Lever // XDR specification modification time: Thu Apr 23 10:56:34 2026
5*4b386d8dSChuck Lever 
6*4b386d8dSChuck Lever #include <linux/sunrpc/svc.h>
7*4b386d8dSChuck Lever 
8*4b386d8dSChuck Lever #include "nlm3xdr_gen.h"
9*4b386d8dSChuck Lever 
10*4b386d8dSChuck Lever static bool __maybe_unused
11*4b386d8dSChuck Lever xdrgen_decode_netobj(struct xdr_stream *xdr, netobj *ptr)
12*4b386d8dSChuck Lever {
13*4b386d8dSChuck Lever 	return xdrgen_decode_opaque(xdr, ptr, MAXNETOBJ_SZ);
14*4b386d8dSChuck Lever }
15*4b386d8dSChuck Lever 
16*4b386d8dSChuck Lever static bool __maybe_unused
17*4b386d8dSChuck Lever xdrgen_decode_nlm_stats(struct xdr_stream *xdr, nlm_stats *ptr)
18*4b386d8dSChuck Lever {
19*4b386d8dSChuck Lever 	__be32 raw;
20*4b386d8dSChuck Lever 	u32 val;
21*4b386d8dSChuck Lever 
22*4b386d8dSChuck Lever 	if (xdr_stream_decode_be32(xdr, &raw) < 0)
23*4b386d8dSChuck Lever 		return false;
24*4b386d8dSChuck Lever 	val = be32_to_cpu(raw);
25*4b386d8dSChuck Lever 	/* Compiler may optimize to a range check for dense enums */
26*4b386d8dSChuck Lever 	switch (val) {
27*4b386d8dSChuck Lever 	case LCK_GRANTED:
28*4b386d8dSChuck Lever 	case LCK_DENIED:
29*4b386d8dSChuck Lever 	case LCK_DENIED_NOLOCKS:
30*4b386d8dSChuck Lever 	case LCK_BLOCKED:
31*4b386d8dSChuck Lever 	case LCK_DENIED_GRACE_PERIOD:
32*4b386d8dSChuck Lever 		break;
33*4b386d8dSChuck Lever 	default:
34*4b386d8dSChuck Lever 		return false;
35*4b386d8dSChuck Lever 	}
36*4b386d8dSChuck Lever 	*ptr = raw;
37*4b386d8dSChuck Lever 	return true;
38*4b386d8dSChuck Lever }
39*4b386d8dSChuck Lever 
40*4b386d8dSChuck Lever static bool __maybe_unused
41*4b386d8dSChuck Lever xdrgen_decode_nlm_stat(struct xdr_stream *xdr, struct nlm_stat *ptr)
42*4b386d8dSChuck Lever {
43*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_stats(xdr, &ptr->stat))
44*4b386d8dSChuck Lever 		return false;
45*4b386d8dSChuck Lever 	return true;
46*4b386d8dSChuck Lever }
47*4b386d8dSChuck Lever 
48*4b386d8dSChuck Lever static bool __maybe_unused
49*4b386d8dSChuck Lever xdrgen_decode_nlm_res(struct xdr_stream *xdr, struct nlm_res *ptr)
50*4b386d8dSChuck Lever {
51*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
52*4b386d8dSChuck Lever 		return false;
53*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_stat(xdr, &ptr->stat))
54*4b386d8dSChuck Lever 		return false;
55*4b386d8dSChuck Lever 	return true;
56*4b386d8dSChuck Lever }
57*4b386d8dSChuck Lever 
58*4b386d8dSChuck Lever static bool __maybe_unused
59*4b386d8dSChuck Lever xdrgen_decode_nlm_holder(struct xdr_stream *xdr, struct nlm_holder *ptr)
60*4b386d8dSChuck Lever {
61*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->exclusive))
62*4b386d8dSChuck Lever 		return false;
63*4b386d8dSChuck Lever 	if (!xdrgen_decode_int(xdr, &ptr->uppid))
64*4b386d8dSChuck Lever 		return false;
65*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->oh))
66*4b386d8dSChuck Lever 		return false;
67*4b386d8dSChuck Lever 	if (!xdrgen_decode_unsigned_int(xdr, &ptr->l_offset))
68*4b386d8dSChuck Lever 		return false;
69*4b386d8dSChuck Lever 	if (!xdrgen_decode_unsigned_int(xdr, &ptr->l_len))
70*4b386d8dSChuck Lever 		return false;
71*4b386d8dSChuck Lever 	return true;
72*4b386d8dSChuck Lever }
73*4b386d8dSChuck Lever 
74*4b386d8dSChuck Lever static bool __maybe_unused
75*4b386d8dSChuck Lever xdrgen_decode_nlm_testrply(struct xdr_stream *xdr, struct nlm_testrply *ptr)
76*4b386d8dSChuck Lever {
77*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_stats(xdr, &ptr->stat))
78*4b386d8dSChuck Lever 		return false;
79*4b386d8dSChuck Lever 	switch (ptr->stat) {
80*4b386d8dSChuck Lever 	case __constant_cpu_to_be32(LCK_DENIED):
81*4b386d8dSChuck Lever 		if (!xdrgen_decode_nlm_holder(xdr, &ptr->u.holder))
82*4b386d8dSChuck Lever 			return false;
83*4b386d8dSChuck Lever 		break;
84*4b386d8dSChuck Lever 	default:
85*4b386d8dSChuck Lever 		break;
86*4b386d8dSChuck Lever 	}
87*4b386d8dSChuck Lever 	return true;
88*4b386d8dSChuck Lever }
89*4b386d8dSChuck Lever 
90*4b386d8dSChuck Lever static bool __maybe_unused
91*4b386d8dSChuck Lever xdrgen_decode_nlm_testres(struct xdr_stream *xdr, struct nlm_testres *ptr)
92*4b386d8dSChuck Lever {
93*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
94*4b386d8dSChuck Lever 		return false;
95*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_testrply(xdr, &ptr->test_stat))
96*4b386d8dSChuck Lever 		return false;
97*4b386d8dSChuck Lever 	return true;
98*4b386d8dSChuck Lever }
99*4b386d8dSChuck Lever 
100*4b386d8dSChuck Lever static bool __maybe_unused
101*4b386d8dSChuck Lever xdrgen_decode_nlm_lock(struct xdr_stream *xdr, struct nlm_lock *ptr)
102*4b386d8dSChuck Lever {
103*4b386d8dSChuck Lever 	if (!xdrgen_decode_string(xdr, (string *)ptr, LM_MAXSTRLEN))
104*4b386d8dSChuck Lever 		return false;
105*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->fh))
106*4b386d8dSChuck Lever 		return false;
107*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->oh))
108*4b386d8dSChuck Lever 		return false;
109*4b386d8dSChuck Lever 	if (!xdrgen_decode_int(xdr, &ptr->uppid))
110*4b386d8dSChuck Lever 		return false;
111*4b386d8dSChuck Lever 	if (!xdrgen_decode_unsigned_int(xdr, &ptr->l_offset))
112*4b386d8dSChuck Lever 		return false;
113*4b386d8dSChuck Lever 	if (!xdrgen_decode_unsigned_int(xdr, &ptr->l_len))
114*4b386d8dSChuck Lever 		return false;
115*4b386d8dSChuck Lever 	return true;
116*4b386d8dSChuck Lever }
117*4b386d8dSChuck Lever 
118*4b386d8dSChuck Lever static bool __maybe_unused
119*4b386d8dSChuck Lever xdrgen_decode_nlm_lockargs(struct xdr_stream *xdr, struct nlm_lockargs *ptr)
120*4b386d8dSChuck Lever {
121*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
122*4b386d8dSChuck Lever 		return false;
123*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->block))
124*4b386d8dSChuck Lever 		return false;
125*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->exclusive))
126*4b386d8dSChuck Lever 		return false;
127*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_lock(xdr, &ptr->alock))
128*4b386d8dSChuck Lever 		return false;
129*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->reclaim))
130*4b386d8dSChuck Lever 		return false;
131*4b386d8dSChuck Lever 	if (!xdrgen_decode_int(xdr, &ptr->state))
132*4b386d8dSChuck Lever 		return false;
133*4b386d8dSChuck Lever 	return true;
134*4b386d8dSChuck Lever }
135*4b386d8dSChuck Lever 
136*4b386d8dSChuck Lever static bool __maybe_unused
137*4b386d8dSChuck Lever xdrgen_decode_nlm_cancargs(struct xdr_stream *xdr, struct nlm_cancargs *ptr)
138*4b386d8dSChuck Lever {
139*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
140*4b386d8dSChuck Lever 		return false;
141*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->block))
142*4b386d8dSChuck Lever 		return false;
143*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->exclusive))
144*4b386d8dSChuck Lever 		return false;
145*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_lock(xdr, &ptr->alock))
146*4b386d8dSChuck Lever 		return false;
147*4b386d8dSChuck Lever 	return true;
148*4b386d8dSChuck Lever }
149*4b386d8dSChuck Lever 
150*4b386d8dSChuck Lever static bool __maybe_unused
151*4b386d8dSChuck Lever xdrgen_decode_nlm_testargs(struct xdr_stream *xdr, struct nlm_testargs *ptr)
152*4b386d8dSChuck Lever {
153*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
154*4b386d8dSChuck Lever 		return false;
155*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->exclusive))
156*4b386d8dSChuck Lever 		return false;
157*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_lock(xdr, &ptr->alock))
158*4b386d8dSChuck Lever 		return false;
159*4b386d8dSChuck Lever 	return true;
160*4b386d8dSChuck Lever }
161*4b386d8dSChuck Lever 
162*4b386d8dSChuck Lever static bool __maybe_unused
163*4b386d8dSChuck Lever xdrgen_decode_nlm_unlockargs(struct xdr_stream *xdr, struct nlm_unlockargs *ptr)
164*4b386d8dSChuck Lever {
165*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
166*4b386d8dSChuck Lever 		return false;
167*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_lock(xdr, &ptr->alock))
168*4b386d8dSChuck Lever 		return false;
169*4b386d8dSChuck Lever 	return true;
170*4b386d8dSChuck Lever }
171*4b386d8dSChuck Lever 
172*4b386d8dSChuck Lever static bool __maybe_unused
173*4b386d8dSChuck Lever xdrgen_decode_fsh_mode(struct xdr_stream *xdr, fsh_mode *ptr)
174*4b386d8dSChuck Lever {
175*4b386d8dSChuck Lever 	u32 val;
176*4b386d8dSChuck Lever 
177*4b386d8dSChuck Lever 	if (xdr_stream_decode_u32(xdr, &val) < 0)
178*4b386d8dSChuck Lever 		return false;
179*4b386d8dSChuck Lever 	/* Compiler may optimize to a range check for dense enums */
180*4b386d8dSChuck Lever 	switch (val) {
181*4b386d8dSChuck Lever 	case fsm_DN:
182*4b386d8dSChuck Lever 	case fsm_DR:
183*4b386d8dSChuck Lever 	case fsm_DW:
184*4b386d8dSChuck Lever 	case fsm_DRW:
185*4b386d8dSChuck Lever 		break;
186*4b386d8dSChuck Lever 	default:
187*4b386d8dSChuck Lever 		return false;
188*4b386d8dSChuck Lever 	}
189*4b386d8dSChuck Lever 	*ptr = val;
190*4b386d8dSChuck Lever 	return true;
191*4b386d8dSChuck Lever }
192*4b386d8dSChuck Lever 
193*4b386d8dSChuck Lever static bool __maybe_unused
194*4b386d8dSChuck Lever xdrgen_decode_fsh_access(struct xdr_stream *xdr, fsh_access *ptr)
195*4b386d8dSChuck Lever {
196*4b386d8dSChuck Lever 	u32 val;
197*4b386d8dSChuck Lever 
198*4b386d8dSChuck Lever 	if (xdr_stream_decode_u32(xdr, &val) < 0)
199*4b386d8dSChuck Lever 		return false;
200*4b386d8dSChuck Lever 	/* Compiler may optimize to a range check for dense enums */
201*4b386d8dSChuck Lever 	switch (val) {
202*4b386d8dSChuck Lever 	case fsa_NONE:
203*4b386d8dSChuck Lever 	case fsa_R:
204*4b386d8dSChuck Lever 	case fsa_W:
205*4b386d8dSChuck Lever 	case fsa_RW:
206*4b386d8dSChuck Lever 		break;
207*4b386d8dSChuck Lever 	default:
208*4b386d8dSChuck Lever 		return false;
209*4b386d8dSChuck Lever 	}
210*4b386d8dSChuck Lever 	*ptr = val;
211*4b386d8dSChuck Lever 	return true;
212*4b386d8dSChuck Lever }
213*4b386d8dSChuck Lever 
214*4b386d8dSChuck Lever static bool __maybe_unused
215*4b386d8dSChuck Lever xdrgen_decode_nlm_share(struct xdr_stream *xdr, struct nlm_share *ptr)
216*4b386d8dSChuck Lever {
217*4b386d8dSChuck Lever 	if (!xdrgen_decode_string(xdr, (string *)ptr, LM_MAXSTRLEN))
218*4b386d8dSChuck Lever 		return false;
219*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->fh))
220*4b386d8dSChuck Lever 		return false;
221*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->oh))
222*4b386d8dSChuck Lever 		return false;
223*4b386d8dSChuck Lever 	if (!xdrgen_decode_fsh_mode(xdr, &ptr->mode))
224*4b386d8dSChuck Lever 		return false;
225*4b386d8dSChuck Lever 	if (!xdrgen_decode_fsh_access(xdr, &ptr->access))
226*4b386d8dSChuck Lever 		return false;
227*4b386d8dSChuck Lever 	return true;
228*4b386d8dSChuck Lever }
229*4b386d8dSChuck Lever 
230*4b386d8dSChuck Lever static bool __maybe_unused
231*4b386d8dSChuck Lever xdrgen_decode_nlm_shareargs(struct xdr_stream *xdr, struct nlm_shareargs *ptr)
232*4b386d8dSChuck Lever {
233*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
234*4b386d8dSChuck Lever 		return false;
235*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_share(xdr, &ptr->share))
236*4b386d8dSChuck Lever 		return false;
237*4b386d8dSChuck Lever 	if (!xdrgen_decode_bool(xdr, &ptr->reclaim))
238*4b386d8dSChuck Lever 		return false;
239*4b386d8dSChuck Lever 	return true;
240*4b386d8dSChuck Lever }
241*4b386d8dSChuck Lever 
242*4b386d8dSChuck Lever static bool __maybe_unused
243*4b386d8dSChuck Lever xdrgen_decode_nlm_shareres(struct xdr_stream *xdr, struct nlm_shareres *ptr)
244*4b386d8dSChuck Lever {
245*4b386d8dSChuck Lever 	if (!xdrgen_decode_netobj(xdr, &ptr->cookie))
246*4b386d8dSChuck Lever 		return false;
247*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_stats(xdr, &ptr->stat))
248*4b386d8dSChuck Lever 		return false;
249*4b386d8dSChuck Lever 	if (!xdrgen_decode_int(xdr, &ptr->sequence))
250*4b386d8dSChuck Lever 		return false;
251*4b386d8dSChuck Lever 	return true;
252*4b386d8dSChuck Lever }
253*4b386d8dSChuck Lever 
254*4b386d8dSChuck Lever static bool __maybe_unused
255*4b386d8dSChuck Lever xdrgen_decode_nlm_notify(struct xdr_stream *xdr, struct nlm_notify *ptr)
256*4b386d8dSChuck Lever {
257*4b386d8dSChuck Lever 	if (!xdrgen_decode_string(xdr, (string *)ptr, LM_MAXNAMELEN))
258*4b386d8dSChuck Lever 		return false;
259*4b386d8dSChuck Lever 	if (!xdrgen_decode_long(xdr, &ptr->state))
260*4b386d8dSChuck Lever 		return false;
261*4b386d8dSChuck Lever 	return true;
262*4b386d8dSChuck Lever }
263*4b386d8dSChuck Lever 
264*4b386d8dSChuck Lever static bool __maybe_unused
265*4b386d8dSChuck Lever xdrgen_decode_nlm_notifyargs(struct xdr_stream *xdr, struct nlm_notifyargs *ptr)
266*4b386d8dSChuck Lever {
267*4b386d8dSChuck Lever 	if (!xdrgen_decode_nlm_notify(xdr, &ptr->notify))
268*4b386d8dSChuck Lever 		return false;
269*4b386d8dSChuck Lever 	if (xdr_stream_decode_opaque_fixed(xdr, ptr->private, SM_PRIV_SIZE) < 0)
270*4b386d8dSChuck Lever 		return false;
271*4b386d8dSChuck Lever 	return true;
272*4b386d8dSChuck Lever }
273*4b386d8dSChuck Lever 
274*4b386d8dSChuck Lever /**
275*4b386d8dSChuck Lever  * nlm_svc_decode_void - Decode a void argument
276*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
277*4b386d8dSChuck Lever  * @xdr: source XDR data stream
278*4b386d8dSChuck Lever  *
279*4b386d8dSChuck Lever  * Return values:
280*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
281*4b386d8dSChuck Lever  *   %false: decode failed
282*4b386d8dSChuck Lever  */
283*4b386d8dSChuck Lever bool nlm_svc_decode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
284*4b386d8dSChuck Lever {
285*4b386d8dSChuck Lever 	return xdrgen_decode_void(xdr);
286*4b386d8dSChuck Lever }
287*4b386d8dSChuck Lever 
288*4b386d8dSChuck Lever /**
289*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_testargs - Decode a nlm_testargs argument
290*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
291*4b386d8dSChuck Lever  * @xdr: source XDR data stream
292*4b386d8dSChuck Lever  *
293*4b386d8dSChuck Lever  * Return values:
294*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
295*4b386d8dSChuck Lever  *   %false: decode failed
296*4b386d8dSChuck Lever  */
297*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_testargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
298*4b386d8dSChuck Lever {
299*4b386d8dSChuck Lever 	struct nlm_testargs *argp = rqstp->rq_argp;
300*4b386d8dSChuck Lever 
301*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_testargs(xdr, argp);
302*4b386d8dSChuck Lever }
303*4b386d8dSChuck Lever 
304*4b386d8dSChuck Lever /**
305*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_lockargs - Decode a nlm_lockargs argument
306*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
307*4b386d8dSChuck Lever  * @xdr: source XDR data stream
308*4b386d8dSChuck Lever  *
309*4b386d8dSChuck Lever  * Return values:
310*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
311*4b386d8dSChuck Lever  *   %false: decode failed
312*4b386d8dSChuck Lever  */
313*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_lockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
314*4b386d8dSChuck Lever {
315*4b386d8dSChuck Lever 	struct nlm_lockargs *argp = rqstp->rq_argp;
316*4b386d8dSChuck Lever 
317*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_lockargs(xdr, argp);
318*4b386d8dSChuck Lever }
319*4b386d8dSChuck Lever 
320*4b386d8dSChuck Lever /**
321*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_cancargs - Decode a nlm_cancargs argument
322*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
323*4b386d8dSChuck Lever  * @xdr: source XDR data stream
324*4b386d8dSChuck Lever  *
325*4b386d8dSChuck Lever  * Return values:
326*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
327*4b386d8dSChuck Lever  *   %false: decode failed
328*4b386d8dSChuck Lever  */
329*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_cancargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
330*4b386d8dSChuck Lever {
331*4b386d8dSChuck Lever 	struct nlm_cancargs *argp = rqstp->rq_argp;
332*4b386d8dSChuck Lever 
333*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_cancargs(xdr, argp);
334*4b386d8dSChuck Lever }
335*4b386d8dSChuck Lever 
336*4b386d8dSChuck Lever /**
337*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_unlockargs - Decode a nlm_unlockargs argument
338*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
339*4b386d8dSChuck Lever  * @xdr: source XDR data stream
340*4b386d8dSChuck Lever  *
341*4b386d8dSChuck Lever  * Return values:
342*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
343*4b386d8dSChuck Lever  *   %false: decode failed
344*4b386d8dSChuck Lever  */
345*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_unlockargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
346*4b386d8dSChuck Lever {
347*4b386d8dSChuck Lever 	struct nlm_unlockargs *argp = rqstp->rq_argp;
348*4b386d8dSChuck Lever 
349*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_unlockargs(xdr, argp);
350*4b386d8dSChuck Lever }
351*4b386d8dSChuck Lever 
352*4b386d8dSChuck Lever /**
353*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_testres - Decode a nlm_testres argument
354*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
355*4b386d8dSChuck Lever  * @xdr: source XDR data stream
356*4b386d8dSChuck Lever  *
357*4b386d8dSChuck Lever  * Return values:
358*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
359*4b386d8dSChuck Lever  *   %false: decode failed
360*4b386d8dSChuck Lever  */
361*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
362*4b386d8dSChuck Lever {
363*4b386d8dSChuck Lever 	struct nlm_testres *argp = rqstp->rq_argp;
364*4b386d8dSChuck Lever 
365*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_testres(xdr, argp);
366*4b386d8dSChuck Lever }
367*4b386d8dSChuck Lever 
368*4b386d8dSChuck Lever /**
369*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_res - Decode a nlm_res argument
370*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
371*4b386d8dSChuck Lever  * @xdr: source XDR data stream
372*4b386d8dSChuck Lever  *
373*4b386d8dSChuck Lever  * Return values:
374*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
375*4b386d8dSChuck Lever  *   %false: decode failed
376*4b386d8dSChuck Lever  */
377*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
378*4b386d8dSChuck Lever {
379*4b386d8dSChuck Lever 	struct nlm_res *argp = rqstp->rq_argp;
380*4b386d8dSChuck Lever 
381*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_res(xdr, argp);
382*4b386d8dSChuck Lever }
383*4b386d8dSChuck Lever 
384*4b386d8dSChuck Lever /**
385*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_notifyargs - Decode a nlm_notifyargs argument
386*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
387*4b386d8dSChuck Lever  * @xdr: source XDR data stream
388*4b386d8dSChuck Lever  *
389*4b386d8dSChuck Lever  * Return values:
390*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
391*4b386d8dSChuck Lever  *   %false: decode failed
392*4b386d8dSChuck Lever  */
393*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_notifyargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
394*4b386d8dSChuck Lever {
395*4b386d8dSChuck Lever 	struct nlm_notifyargs *argp = rqstp->rq_argp;
396*4b386d8dSChuck Lever 
397*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_notifyargs(xdr, argp);
398*4b386d8dSChuck Lever }
399*4b386d8dSChuck Lever 
400*4b386d8dSChuck Lever /**
401*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_shareargs - Decode a nlm_shareargs argument
402*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
403*4b386d8dSChuck Lever  * @xdr: source XDR data stream
404*4b386d8dSChuck Lever  *
405*4b386d8dSChuck Lever  * Return values:
406*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
407*4b386d8dSChuck Lever  *   %false: decode failed
408*4b386d8dSChuck Lever  */
409*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_shareargs(struct svc_rqst *rqstp, struct xdr_stream *xdr)
410*4b386d8dSChuck Lever {
411*4b386d8dSChuck Lever 	struct nlm_shareargs *argp = rqstp->rq_argp;
412*4b386d8dSChuck Lever 
413*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_shareargs(xdr, argp);
414*4b386d8dSChuck Lever }
415*4b386d8dSChuck Lever 
416*4b386d8dSChuck Lever /**
417*4b386d8dSChuck Lever  * nlm_svc_decode_nlm_notify - Decode a nlm_notify argument
418*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
419*4b386d8dSChuck Lever  * @xdr: source XDR data stream
420*4b386d8dSChuck Lever  *
421*4b386d8dSChuck Lever  * Return values:
422*4b386d8dSChuck Lever  *   %true: procedure arguments decoded successfully
423*4b386d8dSChuck Lever  *   %false: decode failed
424*4b386d8dSChuck Lever  */
425*4b386d8dSChuck Lever bool nlm_svc_decode_nlm_notify(struct svc_rqst *rqstp, struct xdr_stream *xdr)
426*4b386d8dSChuck Lever {
427*4b386d8dSChuck Lever 	struct nlm_notify *argp = rqstp->rq_argp;
428*4b386d8dSChuck Lever 
429*4b386d8dSChuck Lever 	return xdrgen_decode_nlm_notify(xdr, argp);
430*4b386d8dSChuck Lever }
431*4b386d8dSChuck Lever 
432*4b386d8dSChuck Lever static bool __maybe_unused
433*4b386d8dSChuck Lever xdrgen_encode_netobj(struct xdr_stream *xdr, const netobj value)
434*4b386d8dSChuck Lever {
435*4b386d8dSChuck Lever 	return xdr_stream_encode_opaque(xdr, value.data, value.len) >= 0;
436*4b386d8dSChuck Lever }
437*4b386d8dSChuck Lever 
438*4b386d8dSChuck Lever static bool __maybe_unused
439*4b386d8dSChuck Lever xdrgen_encode_nlm_stats(struct xdr_stream *xdr, nlm_stats value)
440*4b386d8dSChuck Lever {
441*4b386d8dSChuck Lever 	return xdr_stream_encode_be32(xdr, value) == XDR_UNIT;
442*4b386d8dSChuck Lever }
443*4b386d8dSChuck Lever 
444*4b386d8dSChuck Lever static bool __maybe_unused
445*4b386d8dSChuck Lever xdrgen_encode_nlm_stat(struct xdr_stream *xdr, const struct nlm_stat *value)
446*4b386d8dSChuck Lever {
447*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_stats(xdr, value->stat))
448*4b386d8dSChuck Lever 		return false;
449*4b386d8dSChuck Lever 	return true;
450*4b386d8dSChuck Lever }
451*4b386d8dSChuck Lever 
452*4b386d8dSChuck Lever static bool __maybe_unused
453*4b386d8dSChuck Lever xdrgen_encode_nlm_res(struct xdr_stream *xdr, const struct nlm_res *value)
454*4b386d8dSChuck Lever {
455*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
456*4b386d8dSChuck Lever 		return false;
457*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_stat(xdr, &value->stat))
458*4b386d8dSChuck Lever 		return false;
459*4b386d8dSChuck Lever 	return true;
460*4b386d8dSChuck Lever }
461*4b386d8dSChuck Lever 
462*4b386d8dSChuck Lever static bool __maybe_unused
463*4b386d8dSChuck Lever xdrgen_encode_nlm_holder(struct xdr_stream *xdr, const struct nlm_holder *value)
464*4b386d8dSChuck Lever {
465*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->exclusive))
466*4b386d8dSChuck Lever 		return false;
467*4b386d8dSChuck Lever 	if (!xdrgen_encode_int(xdr, value->uppid))
468*4b386d8dSChuck Lever 		return false;
469*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->oh))
470*4b386d8dSChuck Lever 		return false;
471*4b386d8dSChuck Lever 	if (!xdrgen_encode_unsigned_int(xdr, value->l_offset))
472*4b386d8dSChuck Lever 		return false;
473*4b386d8dSChuck Lever 	if (!xdrgen_encode_unsigned_int(xdr, value->l_len))
474*4b386d8dSChuck Lever 		return false;
475*4b386d8dSChuck Lever 	return true;
476*4b386d8dSChuck Lever }
477*4b386d8dSChuck Lever 
478*4b386d8dSChuck Lever static bool __maybe_unused
479*4b386d8dSChuck Lever xdrgen_encode_nlm_testrply(struct xdr_stream *xdr, const struct nlm_testrply *ptr)
480*4b386d8dSChuck Lever {
481*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_stats(xdr, ptr->stat))
482*4b386d8dSChuck Lever 		return false;
483*4b386d8dSChuck Lever 	switch (ptr->stat) {
484*4b386d8dSChuck Lever 	case __constant_cpu_to_be32(LCK_DENIED):
485*4b386d8dSChuck Lever 		if (!xdrgen_encode_nlm_holder(xdr, &ptr->u.holder))
486*4b386d8dSChuck Lever 			return false;
487*4b386d8dSChuck Lever 		break;
488*4b386d8dSChuck Lever 	default:
489*4b386d8dSChuck Lever 		break;
490*4b386d8dSChuck Lever 	}
491*4b386d8dSChuck Lever 	return true;
492*4b386d8dSChuck Lever }
493*4b386d8dSChuck Lever 
494*4b386d8dSChuck Lever static bool __maybe_unused
495*4b386d8dSChuck Lever xdrgen_encode_nlm_testres(struct xdr_stream *xdr, const struct nlm_testres *value)
496*4b386d8dSChuck Lever {
497*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
498*4b386d8dSChuck Lever 		return false;
499*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_testrply(xdr, &value->test_stat))
500*4b386d8dSChuck Lever 		return false;
501*4b386d8dSChuck Lever 	return true;
502*4b386d8dSChuck Lever }
503*4b386d8dSChuck Lever 
504*4b386d8dSChuck Lever static bool __maybe_unused
505*4b386d8dSChuck Lever xdrgen_encode_nlm_lock(struct xdr_stream *xdr, const struct nlm_lock *value)
506*4b386d8dSChuck Lever {
507*4b386d8dSChuck Lever 	if (value->caller_name.len > LM_MAXSTRLEN)
508*4b386d8dSChuck Lever 		return false;
509*4b386d8dSChuck Lever 	if (xdr_stream_encode_opaque(xdr, value->caller_name.data, value->caller_name.len) < 0)
510*4b386d8dSChuck Lever 		return false;
511*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->fh))
512*4b386d8dSChuck Lever 		return false;
513*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->oh))
514*4b386d8dSChuck Lever 		return false;
515*4b386d8dSChuck Lever 	if (!xdrgen_encode_int(xdr, value->uppid))
516*4b386d8dSChuck Lever 		return false;
517*4b386d8dSChuck Lever 	if (!xdrgen_encode_unsigned_int(xdr, value->l_offset))
518*4b386d8dSChuck Lever 		return false;
519*4b386d8dSChuck Lever 	if (!xdrgen_encode_unsigned_int(xdr, value->l_len))
520*4b386d8dSChuck Lever 		return false;
521*4b386d8dSChuck Lever 	return true;
522*4b386d8dSChuck Lever }
523*4b386d8dSChuck Lever 
524*4b386d8dSChuck Lever static bool __maybe_unused
525*4b386d8dSChuck Lever xdrgen_encode_nlm_lockargs(struct xdr_stream *xdr, const struct nlm_lockargs *value)
526*4b386d8dSChuck Lever {
527*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
528*4b386d8dSChuck Lever 		return false;
529*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->block))
530*4b386d8dSChuck Lever 		return false;
531*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->exclusive))
532*4b386d8dSChuck Lever 		return false;
533*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_lock(xdr, &value->alock))
534*4b386d8dSChuck Lever 		return false;
535*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->reclaim))
536*4b386d8dSChuck Lever 		return false;
537*4b386d8dSChuck Lever 	if (!xdrgen_encode_int(xdr, value->state))
538*4b386d8dSChuck Lever 		return false;
539*4b386d8dSChuck Lever 	return true;
540*4b386d8dSChuck Lever }
541*4b386d8dSChuck Lever 
542*4b386d8dSChuck Lever static bool __maybe_unused
543*4b386d8dSChuck Lever xdrgen_encode_nlm_cancargs(struct xdr_stream *xdr, const struct nlm_cancargs *value)
544*4b386d8dSChuck Lever {
545*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
546*4b386d8dSChuck Lever 		return false;
547*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->block))
548*4b386d8dSChuck Lever 		return false;
549*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->exclusive))
550*4b386d8dSChuck Lever 		return false;
551*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_lock(xdr, &value->alock))
552*4b386d8dSChuck Lever 		return false;
553*4b386d8dSChuck Lever 	return true;
554*4b386d8dSChuck Lever }
555*4b386d8dSChuck Lever 
556*4b386d8dSChuck Lever static bool __maybe_unused
557*4b386d8dSChuck Lever xdrgen_encode_nlm_testargs(struct xdr_stream *xdr, const struct nlm_testargs *value)
558*4b386d8dSChuck Lever {
559*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
560*4b386d8dSChuck Lever 		return false;
561*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->exclusive))
562*4b386d8dSChuck Lever 		return false;
563*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_lock(xdr, &value->alock))
564*4b386d8dSChuck Lever 		return false;
565*4b386d8dSChuck Lever 	return true;
566*4b386d8dSChuck Lever }
567*4b386d8dSChuck Lever 
568*4b386d8dSChuck Lever static bool __maybe_unused
569*4b386d8dSChuck Lever xdrgen_encode_nlm_unlockargs(struct xdr_stream *xdr, const struct nlm_unlockargs *value)
570*4b386d8dSChuck Lever {
571*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
572*4b386d8dSChuck Lever 		return false;
573*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_lock(xdr, &value->alock))
574*4b386d8dSChuck Lever 		return false;
575*4b386d8dSChuck Lever 	return true;
576*4b386d8dSChuck Lever }
577*4b386d8dSChuck Lever 
578*4b386d8dSChuck Lever static bool __maybe_unused
579*4b386d8dSChuck Lever xdrgen_encode_fsh_mode(struct xdr_stream *xdr, fsh_mode value)
580*4b386d8dSChuck Lever {
581*4b386d8dSChuck Lever 	return xdr_stream_encode_u32(xdr, value) == XDR_UNIT;
582*4b386d8dSChuck Lever }
583*4b386d8dSChuck Lever 
584*4b386d8dSChuck Lever static bool __maybe_unused
585*4b386d8dSChuck Lever xdrgen_encode_fsh_access(struct xdr_stream *xdr, fsh_access value)
586*4b386d8dSChuck Lever {
587*4b386d8dSChuck Lever 	return xdr_stream_encode_u32(xdr, value) == XDR_UNIT;
588*4b386d8dSChuck Lever }
589*4b386d8dSChuck Lever 
590*4b386d8dSChuck Lever static bool __maybe_unused
591*4b386d8dSChuck Lever xdrgen_encode_nlm_share(struct xdr_stream *xdr, const struct nlm_share *value)
592*4b386d8dSChuck Lever {
593*4b386d8dSChuck Lever 	if (value->caller_name.len > LM_MAXSTRLEN)
594*4b386d8dSChuck Lever 		return false;
595*4b386d8dSChuck Lever 	if (xdr_stream_encode_opaque(xdr, value->caller_name.data, value->caller_name.len) < 0)
596*4b386d8dSChuck Lever 		return false;
597*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->fh))
598*4b386d8dSChuck Lever 		return false;
599*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->oh))
600*4b386d8dSChuck Lever 		return false;
601*4b386d8dSChuck Lever 	if (!xdrgen_encode_fsh_mode(xdr, value->mode))
602*4b386d8dSChuck Lever 		return false;
603*4b386d8dSChuck Lever 	if (!xdrgen_encode_fsh_access(xdr, value->access))
604*4b386d8dSChuck Lever 		return false;
605*4b386d8dSChuck Lever 	return true;
606*4b386d8dSChuck Lever }
607*4b386d8dSChuck Lever 
608*4b386d8dSChuck Lever static bool __maybe_unused
609*4b386d8dSChuck Lever xdrgen_encode_nlm_shareargs(struct xdr_stream *xdr, const struct nlm_shareargs *value)
610*4b386d8dSChuck Lever {
611*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
612*4b386d8dSChuck Lever 		return false;
613*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_share(xdr, &value->share))
614*4b386d8dSChuck Lever 		return false;
615*4b386d8dSChuck Lever 	if (!xdrgen_encode_bool(xdr, value->reclaim))
616*4b386d8dSChuck Lever 		return false;
617*4b386d8dSChuck Lever 	return true;
618*4b386d8dSChuck Lever }
619*4b386d8dSChuck Lever 
620*4b386d8dSChuck Lever static bool __maybe_unused
621*4b386d8dSChuck Lever xdrgen_encode_nlm_shareres(struct xdr_stream *xdr, const struct nlm_shareres *value)
622*4b386d8dSChuck Lever {
623*4b386d8dSChuck Lever 	if (!xdrgen_encode_netobj(xdr, value->cookie))
624*4b386d8dSChuck Lever 		return false;
625*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_stats(xdr, value->stat))
626*4b386d8dSChuck Lever 		return false;
627*4b386d8dSChuck Lever 	if (!xdrgen_encode_int(xdr, value->sequence))
628*4b386d8dSChuck Lever 		return false;
629*4b386d8dSChuck Lever 	return true;
630*4b386d8dSChuck Lever }
631*4b386d8dSChuck Lever 
632*4b386d8dSChuck Lever static bool __maybe_unused
633*4b386d8dSChuck Lever xdrgen_encode_nlm_notify(struct xdr_stream *xdr, const struct nlm_notify *value)
634*4b386d8dSChuck Lever {
635*4b386d8dSChuck Lever 	if (value->name.len > LM_MAXNAMELEN)
636*4b386d8dSChuck Lever 		return false;
637*4b386d8dSChuck Lever 	if (xdr_stream_encode_opaque(xdr, value->name.data, value->name.len) < 0)
638*4b386d8dSChuck Lever 		return false;
639*4b386d8dSChuck Lever 	if (!xdrgen_encode_long(xdr, value->state))
640*4b386d8dSChuck Lever 		return false;
641*4b386d8dSChuck Lever 	return true;
642*4b386d8dSChuck Lever }
643*4b386d8dSChuck Lever 
644*4b386d8dSChuck Lever static bool __maybe_unused
645*4b386d8dSChuck Lever xdrgen_encode_nlm_notifyargs(struct xdr_stream *xdr, const struct nlm_notifyargs *value)
646*4b386d8dSChuck Lever {
647*4b386d8dSChuck Lever 	if (!xdrgen_encode_nlm_notify(xdr, &value->notify))
648*4b386d8dSChuck Lever 		return false;
649*4b386d8dSChuck Lever 	if (xdr_stream_encode_opaque_fixed(xdr, value->private, SM_PRIV_SIZE) < 0)
650*4b386d8dSChuck Lever 		return false;
651*4b386d8dSChuck Lever 	return true;
652*4b386d8dSChuck Lever }
653*4b386d8dSChuck Lever 
654*4b386d8dSChuck Lever /**
655*4b386d8dSChuck Lever  * nlm_svc_encode_void - Encode a void result
656*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
657*4b386d8dSChuck Lever  * @xdr: target XDR data stream
658*4b386d8dSChuck Lever  *
659*4b386d8dSChuck Lever  * Return values:
660*4b386d8dSChuck Lever  *   %true: procedure results encoded successfully
661*4b386d8dSChuck Lever  *   %false: encode failed
662*4b386d8dSChuck Lever  */
663*4b386d8dSChuck Lever bool nlm_svc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr)
664*4b386d8dSChuck Lever {
665*4b386d8dSChuck Lever 	return xdrgen_encode_void(xdr);
666*4b386d8dSChuck Lever }
667*4b386d8dSChuck Lever 
668*4b386d8dSChuck Lever /**
669*4b386d8dSChuck Lever  * nlm_svc_encode_nlm_testres - Encode a nlm_testres result
670*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
671*4b386d8dSChuck Lever  * @xdr: target XDR data stream
672*4b386d8dSChuck Lever  *
673*4b386d8dSChuck Lever  * Return values:
674*4b386d8dSChuck Lever  *   %true: procedure results encoded successfully
675*4b386d8dSChuck Lever  *   %false: encode failed
676*4b386d8dSChuck Lever  */
677*4b386d8dSChuck Lever bool nlm_svc_encode_nlm_testres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
678*4b386d8dSChuck Lever {
679*4b386d8dSChuck Lever 	struct nlm_testres *resp = rqstp->rq_resp;
680*4b386d8dSChuck Lever 
681*4b386d8dSChuck Lever 	return xdrgen_encode_nlm_testres(xdr, resp);
682*4b386d8dSChuck Lever }
683*4b386d8dSChuck Lever 
684*4b386d8dSChuck Lever /**
685*4b386d8dSChuck Lever  * nlm_svc_encode_nlm_res - Encode a nlm_res result
686*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
687*4b386d8dSChuck Lever  * @xdr: target XDR data stream
688*4b386d8dSChuck Lever  *
689*4b386d8dSChuck Lever  * Return values:
690*4b386d8dSChuck Lever  *   %true: procedure results encoded successfully
691*4b386d8dSChuck Lever  *   %false: encode failed
692*4b386d8dSChuck Lever  */
693*4b386d8dSChuck Lever bool nlm_svc_encode_nlm_res(struct svc_rqst *rqstp, struct xdr_stream *xdr)
694*4b386d8dSChuck Lever {
695*4b386d8dSChuck Lever 	struct nlm_res *resp = rqstp->rq_resp;
696*4b386d8dSChuck Lever 
697*4b386d8dSChuck Lever 	return xdrgen_encode_nlm_res(xdr, resp);
698*4b386d8dSChuck Lever }
699*4b386d8dSChuck Lever 
700*4b386d8dSChuck Lever /**
701*4b386d8dSChuck Lever  * nlm_svc_encode_nlm_shareres - Encode a nlm_shareres result
702*4b386d8dSChuck Lever  * @rqstp: RPC transaction context
703*4b386d8dSChuck Lever  * @xdr: target XDR data stream
704*4b386d8dSChuck Lever  *
705*4b386d8dSChuck Lever  * Return values:
706*4b386d8dSChuck Lever  *   %true: procedure results encoded successfully
707*4b386d8dSChuck Lever  *   %false: encode failed
708*4b386d8dSChuck Lever  */
709*4b386d8dSChuck Lever bool nlm_svc_encode_nlm_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr)
710*4b386d8dSChuck Lever {
711*4b386d8dSChuck Lever 	struct nlm_shareres *resp = rqstp->rq_resp;
712*4b386d8dSChuck Lever 
713*4b386d8dSChuck Lever 	return xdrgen_encode_nlm_shareres(xdr, resp);
714*4b386d8dSChuck Lever }
715