1/*
2 * Please do not edit this file.
3 * It was generated using rpcgen.
4 */
5
6#include "xcom_vp.h"
7/* Copyright (c) 2010, 2021, Oracle and/or its affiliates.
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License, version 2.0,
11   as published by the Free Software Foundation.
12
13   This program is also distributed with certain software (including
14   but not limited to OpenSSL) that is licensed under separate terms,
15   as designated in a particular file or component or in included license
16   documentation.  The authors of MySQL hereby grant you an additional
17   permission to link the program and your derivative works with the
18   separately licensed software that they have included with MySQL.
19
20   This program is distributed in the hope that it will be useful,
21   but WITHOUT ANY WARRANTY; without even the implied warranty of
22   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23   GNU General Public License, version 2.0, for more details.
24
25   You should have received a copy of the GNU General Public License
26   along with this program; if not, write to the Free Software
27   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
28
29#include "xcom_vp_platform.h"
30
31bool_t
32xdr_xcom_proto (XDR *xdrs, xcom_proto *objp)
33{
34	register int32_t *buf;
35
36	 if (!xdr_enum (xdrs, (enum_t *) objp))
37		 return FALSE;
38	return TRUE;
39}
40
41bool_t
42xdr_x_proto_range (XDR *xdrs, x_proto_range *objp)
43{
44	register int32_t *buf;
45
46	 if (!xdr_xcom_proto (xdrs, &objp->min_proto))
47		 return FALSE;
48	 if (!xdr_xcom_proto (xdrs, &objp->max_proto))
49		 return FALSE;
50	return TRUE;
51}
52
53bool_t
54xdr_delivery_status (XDR *xdrs, delivery_status *objp)
55{
56	register int32_t *buf;
57
58	 if (!xdr_enum (xdrs, (enum_t *) objp))
59		 return FALSE;
60	return TRUE;
61}
62
63bool_t
64xdr_cons_type (XDR *xdrs, cons_type *objp)
65{
66	register int32_t *buf;
67
68	 if (!xdr_enum (xdrs, (enum_t *) objp))
69		 return FALSE;
70	return TRUE;
71}
72
73bool_t
74xdr_node_no (XDR *xdrs, node_no *objp)
75{
76	register int32_t *buf;
77
78	 if (!xdr_uint32_t (xdrs, objp))
79		 return FALSE;
80	return TRUE;
81}
82
83bool_t
84xdr_synode_no (XDR *xdrs, synode_no *objp)
85{
86	register int32_t *buf;
87
88	 if (!xdr_uint32_t (xdrs, &objp->group_id))
89		 return FALSE;
90	 if (!xdr_uint64_t (xdrs, &objp->msgno))
91		 return FALSE;
92	 if (!xdr_node_no (xdrs, &objp->node))
93		 return FALSE;
94	return TRUE;
95}
96
97bool_t
98xdr_trans_id (XDR *xdrs, trans_id *objp)
99{
100	register int32_t *buf;
101
102	 if (!xdr_synode_no (xdrs, &objp->cfg))
103		 return FALSE;
104	 if (!xdr_uint32_t (xdrs, &objp->pc))
105		 return FALSE;
106	return TRUE;
107}
108
109bool_t
110xdr_node_set (XDR *xdrs, node_set *objp)
111{
112	register int32_t *buf;
113
114	 if (!xdr_array (xdrs, (char **)&objp->node_set_val, (u_int *) &objp->node_set_len, 100,
115		sizeof (bool_t), (xdrproc_t) xdr_bool))
116		 return FALSE;
117	return TRUE;
118}
119
120bool_t
121xdr_blob (XDR *xdrs, blob *objp)
122{
123	register int32_t *buf;
124
125	 if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, 1024))
126		 return FALSE;
127	return TRUE;
128}
129
130bool_t
131xdr_node_address_1_0 (XDR *xdrs, node_address_1_0 *objp)
132{
133	register int32_t *buf;
134
135	 if (!xdr_string (xdrs, &objp->address, 1024))
136		 return FALSE;
137	 if (!xdr_blob (xdrs, &objp->uuid))
138		 return FALSE;
139	return TRUE;
140}
141
142bool_t
143xdr_node_list_1_0 (XDR *xdrs, node_list_1_0 *objp)
144{
145	register int32_t *buf;
146
147	 if (!xdr_array (xdrs, (char **)&objp->node_list_1_0_val, (u_int *) &objp->node_list_1_0_len, 100,
148		sizeof (node_address_1_0), (xdrproc_t) xdr_node_address_1_0))
149		 return FALSE;
150	return TRUE;
151}
152
153bool_t
154xdr_node_address (XDR *xdrs, node_address *objp)
155{
156	register int32_t *buf;
157
158	 if (!xdr_string (xdrs, &objp->address, 1024))
159		 return FALSE;
160	 if (!xdr_blob (xdrs, &objp->uuid))
161		 return FALSE;
162	 if (!xdr_x_proto_range (xdrs, &objp->proto))
163		 return FALSE;
164	return TRUE;
165}
166
167bool_t
168xdr_node_list (XDR *xdrs, node_list *objp)
169{
170	register int32_t *buf;
171
172	 if (!xdr_array (xdrs, (char **)&objp->node_list_val, (u_int *) &objp->node_list_len, 100,
173		sizeof (node_address), (xdrproc_t) xdr_node_address))
174		 return FALSE;
175	return TRUE;
176}
177/*
178	Custom xdr functions to coerce rpcgen into handling different protocol versions.
179	Protocol version is passed in an extended XDR object.
180*/
181
182#ifndef VERSION_CONTROL
183#define VERSION_CONTROL
184
185extern xcom_proto const my_min_xcom_version; /* The minimum protocol version I am able to understand */
186extern xcom_proto const my_xcom_version; /* The maximum protocol version I am able to understand */
187
188typedef node_list node_list_1_1; /* Alias for real type to avoid generating xdr call to xdr_node_list */
189
190extern bool_t xdr_node_list_1_1 (XDR *, node_list_1_1*);
191
192#endif
193#ifndef CHECKED_DATA
194#define CHECKED_DATA
195typedef struct {
196 u_int data_len;
197 char *data_val;
198} checked_data;
199extern bool_t xdr_checked_data (XDR *, checked_data*);
200#endif
201
202bool_t
203xdr_cargo_type (XDR *xdrs, cargo_type *objp)
204{
205	register int32_t *buf;
206
207	 if (!xdr_enum (xdrs, (enum_t *) objp))
208		 return FALSE;
209	return TRUE;
210}
211
212bool_t
213xdr_node_no_array (XDR *xdrs, node_no_array *objp)
214{
215	register int32_t *buf;
216
217	 if (!xdr_array (xdrs, (char **)&objp->node_no_array_val, (u_int *) &objp->node_no_array_len, 100,
218		sizeof (node_no), (xdrproc_t) xdr_node_no))
219		 return FALSE;
220	return TRUE;
221}
222
223bool_t
224xdr_synode_no_array (XDR *xdrs, synode_no_array *objp)
225{
226	register int32_t *buf;
227
228	 if (!xdr_array (xdrs, (char **)&objp->synode_no_array_val, (u_int *) &objp->synode_no_array_len, 1024,
229		sizeof (synode_no), (xdrproc_t) xdr_synode_no))
230		 return FALSE;
231	return TRUE;
232}
233
234bool_t
235xdr_uncommitted_list (XDR *xdrs, uncommitted_list *objp)
236{
237	register int32_t *buf;
238
239	 if (!xdr_uint32_t (xdrs, &objp->active))
240		 return FALSE;
241	 if (!xdr_synode_no_array (xdrs, &objp->vers))
242		 return FALSE;
243	return TRUE;
244}
245
246bool_t
247xdr_repository (XDR *xdrs, repository *objp)
248{
249	register int32_t *buf;
250
251	 if (!xdr_synode_no (xdrs, &objp->vers))
252		 return FALSE;
253	 if (!xdr_synode_no_array (xdrs, &objp->msg_list))
254		 return FALSE;
255	 if (!xdr_uncommitted_list (xdrs, &objp->u_list))
256		 return FALSE;
257	return TRUE;
258}
259
260bool_t
261xdr_x_error (XDR *xdrs, x_error *objp)
262{
263	register int32_t *buf;
264
265	 if (!xdr_int32_t (xdrs, &objp->nodeid))
266		 return FALSE;
267	 if (!xdr_int32_t (xdrs, &objp->code))
268		 return FALSE;
269	 if (!xdr_string (xdrs, &objp->message, 10240))
270		 return FALSE;
271	return TRUE;
272}
273
274bool_t
275xdr_trans_data (XDR *xdrs, trans_data *objp)
276{
277	register int32_t *buf;
278
279	 if (!xdr_trans_id (xdrs, &objp->tid))
280		 return FALSE;
281	 if (!xdr_int32_t (xdrs, &objp->pc))
282		 return FALSE;
283	 if (!xdr_string (xdrs, &objp->cluster_name, 1024))
284		 return FALSE;
285	 if (!xdr_x_error (xdrs, &objp->errmsg))
286		 return FALSE;
287	return TRUE;
288}
289
290bool_t
291xdr_app_u (XDR *xdrs, app_u *objp)
292{
293	register int32_t *buf;
294
295	 if (!xdr_cargo_type (xdrs, &objp->c_t))
296		 return FALSE;
297	switch (objp->c_t) {
298	case unified_boot_type:
299	case add_node_type:
300	case remove_node_type:
301	case force_config_type:
302	case xcom_boot_type:
303	case xcom_set_group:
304		 if (!xdr_node_list_1_1 (xdrs, &objp->app_u_u.nodes))
305			 return FALSE;
306		break;
307	case xcom_recover:
308		 if (!xdr_repository (xdrs, &objp->app_u_u.rep))
309			 return FALSE;
310		break;
311	case app_type:
312		 if (!xdr_checked_data (xdrs, &objp->app_u_u.data))
313			 return FALSE;
314		break;
315	case query_type:
316		break;
317	case query_next_log:
318		break;
319	case exit_type:
320	case reset_type:
321		break;
322	case remove_reset_type:
323		break;
324	case begin_trans:
325		break;
326	case prepared_trans:
327	case abort_trans:
328		 if (!xdr_trans_data (xdrs, &objp->app_u_u.td))
329			 return FALSE;
330		break;
331	case view_msg:
332		 if (!xdr_node_set (xdrs, &objp->app_u_u.present))
333			 return FALSE;
334		break;
335	case set_cache_limit:
336		if (!xdr_uint64_t(xdrs, &objp->app_u_u.cache_limit))
337			return (FALSE);
338		break;
339	default:
340		break;
341	}
342	return TRUE;
343}
344
345bool_t
346xdr_recover_action (XDR *xdrs, recover_action *objp)
347{
348	register int32_t *buf;
349
350	 if (!xdr_enum (xdrs, (enum_t *) objp))
351		 return FALSE;
352	return TRUE;
353}
354
355bool_t
356xdr_app_data (XDR *xdrs, app_data *objp)
357{
358	register int32_t *buf;
359
360
361	if (xdrs->x_op == XDR_ENCODE) {
362		 if (!xdr_synode_no (xdrs, &objp->unique_id))
363			 return FALSE;
364		 if (!xdr_uint32_t (xdrs, &objp->group_id))
365			 return FALSE;
366		 if (!xdr_uint64_t (xdrs, &objp->lsn))
367			 return FALSE;
368		 if (!xdr_synode_no (xdrs, &objp->app_key))
369			 return FALSE;
370		 if (!xdr_cons_type (xdrs, &objp->consensus))
371			 return FALSE;
372		 if (!xdr_double (xdrs, &objp->expiry_time))
373			 return FALSE;
374		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
375		if (buf == NULL) {
376			 if (!xdr_bool (xdrs, &objp->notused))
377				 return FALSE;
378			 if (!xdr_bool (xdrs, &objp->log_it))
379				 return FALSE;
380			 if (!xdr_bool (xdrs, &objp->chosen))
381				 return FALSE;
382
383		} else {
384		IXDR_PUT_BOOL(buf, objp->notused);
385		IXDR_PUT_BOOL(buf, objp->log_it);
386		IXDR_PUT_BOOL(buf, objp->chosen);
387		}
388		 if (!xdr_recover_action (xdrs, &objp->recover))
389			 return FALSE;
390		 if (!xdr_app_u (xdrs, &objp->body))
391			 return FALSE;
392		 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (app_data), (xdrproc_t) xdr_app_data))
393			 return FALSE;
394		return TRUE;
395	} else if (xdrs->x_op == XDR_DECODE) {
396		 if (!xdr_synode_no (xdrs, &objp->unique_id))
397			 return FALSE;
398		 if (!xdr_uint32_t (xdrs, &objp->group_id))
399			 return FALSE;
400		 if (!xdr_uint64_t (xdrs, &objp->lsn))
401			 return FALSE;
402		 if (!xdr_synode_no (xdrs, &objp->app_key))
403			 return FALSE;
404		 if (!xdr_cons_type (xdrs, &objp->consensus))
405			 return FALSE;
406		 if (!xdr_double (xdrs, &objp->expiry_time))
407			 return FALSE;
408		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
409		if (buf == NULL) {
410			 if (!xdr_bool (xdrs, &objp->notused))
411				 return FALSE;
412			 if (!xdr_bool (xdrs, &objp->log_it))
413				 return FALSE;
414			 if (!xdr_bool (xdrs, &objp->chosen))
415				 return FALSE;
416
417		} else {
418		objp->notused = IXDR_GET_BOOL(buf);
419		objp->log_it = IXDR_GET_BOOL(buf);
420		objp->chosen = IXDR_GET_BOOL(buf);
421		}
422		 if (!xdr_recover_action (xdrs, &objp->recover))
423			 return FALSE;
424		 if (!xdr_app_u (xdrs, &objp->body))
425			 return FALSE;
426		 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (app_data), (xdrproc_t) xdr_app_data))
427			 return FALSE;
428	 return TRUE;
429	}
430
431	 if (!xdr_synode_no (xdrs, &objp->unique_id))
432		 return FALSE;
433	 if (!xdr_uint32_t (xdrs, &objp->group_id))
434		 return FALSE;
435	 if (!xdr_uint64_t (xdrs, &objp->lsn))
436		 return FALSE;
437	 if (!xdr_synode_no (xdrs, &objp->app_key))
438		 return FALSE;
439	 if (!xdr_cons_type (xdrs, &objp->consensus))
440		 return FALSE;
441	 if (!xdr_double (xdrs, &objp->expiry_time))
442		 return FALSE;
443	 if (!xdr_bool (xdrs, &objp->notused))
444		 return FALSE;
445	 if (!xdr_bool (xdrs, &objp->log_it))
446		 return FALSE;
447	 if (!xdr_bool (xdrs, &objp->chosen))
448		 return FALSE;
449	 if (!xdr_recover_action (xdrs, &objp->recover))
450		 return FALSE;
451	 if (!xdr_app_u (xdrs, &objp->body))
452		 return FALSE;
453	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (app_data), (xdrproc_t) xdr_app_data))
454		 return FALSE;
455	return TRUE;
456}
457
458bool_t
459xdr_app_data_ptr (XDR *xdrs, app_data_ptr *objp)
460{
461	register int32_t *buf;
462
463	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (app_data), (xdrproc_t) xdr_app_data))
464		 return FALSE;
465	return TRUE;
466}
467
468bool_t
469xdr_app_data_ptr_array (XDR *xdrs, app_data_ptr_array *objp)
470{
471	register int32_t *buf;
472
473	 if (!xdr_array (xdrs, (char **)&objp->app_data_ptr_array_val, (u_int *) &objp->app_data_ptr_array_len, 1024,
474		sizeof (app_data_ptr), (xdrproc_t) xdr_app_data_ptr))
475		 return FALSE;
476	return TRUE;
477}
478
479bool_t
480xdr_app_data_list (XDR *xdrs, app_data_list *objp)
481{
482	register int32_t *buf;
483
484	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (app_data_ptr), (xdrproc_t) xdr_app_data_ptr))
485		 return FALSE;
486	return TRUE;
487}
488
489bool_t
490xdr_key_range (XDR *xdrs, key_range *objp)
491{
492	register int32_t *buf;
493
494	 if (!xdr_synode_no (xdrs, &objp->k1))
495		 return FALSE;
496	 if (!xdr_synode_no (xdrs, &objp->k2))
497		 return FALSE;
498	return TRUE;
499}
500
501bool_t
502xdr_bit_mask (XDR *xdrs, bit_mask *objp)
503{
504	register int32_t *buf;
505
506	 if (!xdr_uint32_t (xdrs, objp))
507		 return FALSE;
508	return TRUE;
509}
510
511#define BITS_PER_BYTE 8
512#define MASK_BITS ((uint32_t)(sizeof (bit_mask) * BITS_PER_BYTE)) /* bits per mask */
513#define howmany_words(x, y) (((x)+((y)-1))/(y))
514
515
516bool_t
517xdr_bit_set (XDR *xdrs, bit_set *objp)
518{
519	register int32_t *buf;
520
521	 if (!xdr_array (xdrs, (char **)&objp->bits.bits_val, (u_int *) &objp->bits.bits_len, 100,
522		sizeof (bit_mask), (xdrproc_t) xdr_bit_mask))
523		 return FALSE;
524	return TRUE;
525}
526#define BIT_OP(__n, __p, __op, __inv) ((__p)->bits.bits_val[(__n)/MASK_BITS] __op __inv (1u << ((__n) % MASK_BITS)))
527#define BIT_XOR(__n, __p) BIT_OP(__n, __p, ^=, )
528#define BIT_SET(__n, __p) BIT_OP(__n, __p, |=, )
529#define BIT_CLR(__n, __p) BIT_OP(__n, __p, &=, ~)
530#define BIT_ISSET(__n, __p) (BIT_OP(__n, __p, &, ) != 0ul)
531#define BIT_ZERO(__p) memset((__p)->bits.bits_val, 0, (__p)->bits.bits_len * sizeof(*(__p)->bits.bits_val))
532extern bit_set *new_bit_set(uint32_t bits);
533extern bit_set *clone_bit_set(bit_set *orig);
534extern void free_bit_set(bit_set *bs);
535
536bool_t
537xdr_ballot (XDR *xdrs, ballot *objp)
538{
539	register int32_t *buf;
540
541	 if (!xdr_int32_t (xdrs, &objp->cnt))
542		 return FALSE;
543	 if (!xdr_node_no (xdrs, &objp->node))
544		 return FALSE;
545	return TRUE;
546}
547
548bool_t
549xdr_pax_op (XDR *xdrs, pax_op *objp)
550{
551	register int32_t *buf;
552
553	 if (!xdr_enum (xdrs, (enum_t *) objp))
554		 return FALSE;
555	return TRUE;
556}
557
558bool_t
559xdr_pax_msg_type (XDR *xdrs, pax_msg_type *objp)
560{
561	register int32_t *buf;
562
563	 if (!xdr_enum (xdrs, (enum_t *) objp))
564		 return FALSE;
565	return TRUE;
566}
567
568bool_t
569xdr_start_t (XDR *xdrs, start_t *objp)
570{
571	register int32_t *buf;
572
573	 if (!xdr_enum (xdrs, (enum_t *) objp))
574		 return FALSE;
575	return TRUE;
576}
577
578bool_t
579xdr_snapshot (XDR *xdrs, snapshot *objp)
580{
581	register int32_t *buf;
582
583	 if (!xdr_synode_no (xdrs, &objp->vers))
584		 return FALSE;
585	 if (!xdr_app_data_ptr_array (xdrs, &objp->snap))
586		 return FALSE;
587	 if (!xdr_uncommitted_list (xdrs, &objp->u_list))
588		 return FALSE;
589	return TRUE;
590}
591
592bool_t
593xdr_config (XDR *xdrs, config *objp)
594{
595	register int32_t *buf;
596
597	 if (!xdr_synode_no (xdrs, &objp->start))
598		 return FALSE;
599	 if (!xdr_synode_no (xdrs, &objp->boot_key))
600		 return FALSE;
601	 if (!xdr_node_list_1_1 (xdrs, &objp->nodes))
602		 return FALSE;
603	return TRUE;
604}
605
606bool_t
607xdr_config_ptr (XDR *xdrs, config_ptr *objp)
608{
609	register int32_t *buf;
610
611	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (config), (xdrproc_t) xdr_config))
612		 return FALSE;
613	return TRUE;
614}
615
616bool_t
617xdr_configs (XDR *xdrs, configs *objp)
618{
619	register int32_t *buf;
620
621	 if (!xdr_array (xdrs, (char **)&objp->configs_val, (u_int *) &objp->configs_len, 100,
622		sizeof (config_ptr), (xdrproc_t) xdr_config_ptr))
623		 return FALSE;
624	return TRUE;
625}
626
627bool_t
628xdr_gcs_snapshot (XDR *xdrs, gcs_snapshot *objp)
629{
630	register int32_t *buf;
631
632	 if (!xdr_synode_no (xdrs, &objp->log_start))
633		 return FALSE;
634	 if (!xdr_configs (xdrs, &objp->cfg))
635		 return FALSE;
636	 if (!xdr_blob (xdrs, &objp->app_snap))
637		 return FALSE;
638	return TRUE;
639}
640
641bool_t
642xdr_client_reply_code (XDR *xdrs, client_reply_code *objp)
643{
644	register int32_t *buf;
645
646	 if (!xdr_enum (xdrs, (enum_t *) objp))
647		 return FALSE;
648	return TRUE;
649}
650
651bool_t
652xdr_pax_msg_1_1(register XDR *xdrs, pax_msg_1_1 *objp)
653{
654	register int32_t *buf;
655
656	 if (!xdr_node_no (xdrs, &objp->to))
657		 return FALSE;
658	 if (!xdr_node_no (xdrs, &objp->from))
659		 return FALSE;
660	 if (!xdr_uint32_t (xdrs, &objp->group_id))
661		 return FALSE;
662	 if (!xdr_synode_no (xdrs, &objp->max_synode))
663		 return FALSE;
664	 if (!xdr_start_t (xdrs, &objp->start_type))
665		 return FALSE;
666	 if (!xdr_ballot (xdrs, &objp->reply_to))
667		 return FALSE;
668	 if (!xdr_ballot (xdrs, &objp->proposal))
669		 return FALSE;
670	 if (!xdr_pax_op (xdrs, &objp->op))
671		 return FALSE;
672	 if (!xdr_synode_no (xdrs, &objp->synode))
673		 return FALSE;
674	 if (!xdr_pax_msg_type (xdrs, &objp->msg_type))
675		 return FALSE;
676	 if (!xdr_pointer (xdrs, (char **)&objp->receivers, sizeof (bit_set), (xdrproc_t) xdr_bit_set))
677		 return FALSE;
678	 if (!xdr_pointer (xdrs, (char **)&objp->a, sizeof (app_data), (xdrproc_t) xdr_app_data))
679		 return FALSE;
680	 if (!xdr_pointer (xdrs, (char **)&objp->snap, sizeof (snapshot), (xdrproc_t) xdr_snapshot))
681		 return FALSE;
682	 if (!xdr_pointer (xdrs, (char **)&objp->gcs_snap, sizeof (gcs_snapshot), (xdrproc_t) xdr_gcs_snapshot))
683		 return FALSE;
684	 if (!xdr_client_reply_code (xdrs, &objp->cli_err))
685		 return FALSE;
686 	 if (!xdr_bool (xdrs, &objp->force_delivery))
687		 return FALSE;
688 	 if (!xdr_int32_t (xdrs, &objp->refcnt))
689		 return FALSE;
690	return TRUE;
691}
692
693bool_t
694xdr_pax_msg_1_2(register XDR *xdrs, pax_msg_1_2 *objp)
695{
696	register int32_t *buf;
697
698	 if (!xdr_node_no (xdrs, &objp->to))
699		 return FALSE;
700	 if (!xdr_node_no (xdrs, &objp->from))
701		 return FALSE;
702	 if (!xdr_uint32_t (xdrs, &objp->group_id))
703		 return FALSE;
704	 if (!xdr_synode_no (xdrs, &objp->max_synode))
705		 return FALSE;
706	 if (!xdr_start_t (xdrs, &objp->start_type))
707		 return FALSE;
708	 if (!xdr_ballot (xdrs, &objp->reply_to))
709		 return FALSE;
710	 if (!xdr_ballot (xdrs, &objp->proposal))
711		 return FALSE;
712	 if (!xdr_pax_op (xdrs, &objp->op))
713		 return FALSE;
714	 if (!xdr_synode_no (xdrs, &objp->synode))
715		 return FALSE;
716	 if (!xdr_pax_msg_type (xdrs, &objp->msg_type))
717		 return FALSE;
718	 if (!xdr_pointer (xdrs, (char **)&objp->receivers, sizeof (bit_set), (xdrproc_t) xdr_bit_set))
719		 return FALSE;
720	 if (!xdr_pointer (xdrs, (char **)&objp->a, sizeof (app_data), (xdrproc_t) xdr_app_data))
721		 return FALSE;
722	 if (!xdr_pointer (xdrs, (char **)&objp->snap, sizeof (snapshot), (xdrproc_t) xdr_snapshot))
723		 return FALSE;
724	 if (!xdr_pointer (xdrs, (char **)&objp->gcs_snap, sizeof (gcs_snapshot), (xdrproc_t) xdr_gcs_snapshot))
725		 return FALSE;
726	 if (!xdr_client_reply_code (xdrs, &objp->cli_err))
727		 return FALSE;
728	 if (!xdr_bool (xdrs, &objp->force_delivery))
729		 return FALSE;
730	 if (!xdr_int32_t (xdrs, &objp->refcnt))
731		 return FALSE;
732	 if (!xdr_synode_no (xdrs, &objp->delivered_msg))
733		 return FALSE;
734
735	return TRUE;
736}
737#ifndef PAX_MSG_TYPEDEF
738#define PAX_MSG_TYPEDEF
739typedef pax_msg_1_2 pax_msg;
740extern  bool_t xdr_pax_msg (XDR *, pax_msg*);
741#endif
742
743bool_t
744xdr_file_name (XDR *xdrs, file_name *objp)
745{
746	register int32_t *buf;
747
748	 if (!xdr_string (xdrs, objp, 1024))
749		 return FALSE;
750	return TRUE;
751}
752
753bool_t
754xdr_file_name_array (XDR *xdrs, file_name_array *objp)
755{
756	register int32_t *buf;
757
758	 if (!xdr_array (xdrs, (char **)&objp->file_name_array_val, (u_int *) &objp->file_name_array_len, 1024,
759		sizeof (file_name), (xdrproc_t) xdr_file_name))
760		 return FALSE;
761	return TRUE;
762}
763
764bool_t
765xdr_file_copy_data (XDR *xdrs, file_copy_data *objp)
766{
767	register int32_t *buf;
768
769	 if (!xdr_string (xdrs, &objp->clustername, 1024))
770		 return FALSE;
771	 if (!xdr_string (xdrs, &objp->copydir, 1024))
772		 return FALSE;
773	 if (!xdr_string (xdrs, &objp->server, 1024))
774		 return FALSE;
775	 if (!xdr_int32_t (xdrs, &objp->copy_port))
776		 return FALSE;
777	return TRUE;
778}
779