Imported Upstream version 3.1.0
[debian/amanda] / ndmp-src / ndmp3_xdr.c
1 /*
2  * Please do not edit this file.
3  * It was generated using rpcgen.
4  */
5
6 #include "ndmp3.h"
7 #ifndef NDMOS_OPTION_NO_NDMP3
8 #define ndmp3_u_quad unsigned long long
9 extern bool_t xdr_ndmp3_u_quad();
10
11 bool_t
12 xdr__ndmp3_u_quad (XDR *xdrs, _ndmp3_u_quad *objp)
13 {
14         if (!xdr_u_long (xdrs, &objp->high))
15                 return FALSE;
16         if (!xdr_u_long (xdrs, &objp->low))
17                 return FALSE;
18         return TRUE;
19 }
20
21 bool_t
22 xdr_ndmp3_pval (XDR *xdrs, ndmp3_pval *objp)
23 {
24         if (!xdr_string (xdrs, &objp->name, ~0))
25                 return FALSE;
26         if (!xdr_string (xdrs, &objp->value, ~0))
27                 return FALSE;
28         return TRUE;
29 }
30
31 bool_t
32 xdr_ndmp3_error (XDR *xdrs, ndmp3_error *objp)
33 {
34         if (!xdr_enum (xdrs, (enum_t *) objp))
35                 return FALSE;
36         return TRUE;
37 }
38
39 bool_t
40 xdr_ndmp3_header_message_type (XDR *xdrs, ndmp3_header_message_type *objp)
41 {
42         if (!xdr_enum (xdrs, (enum_t *) objp))
43                 return FALSE;
44         return TRUE;
45 }
46
47 bool_t
48 xdr_ndmp3_message (XDR *xdrs, ndmp3_message *objp)
49 {
50         if (!xdr_enum (xdrs, (enum_t *) objp))
51                 return FALSE;
52         return TRUE;
53 }
54
55 bool_t
56 xdr_ndmp3_header (XDR *xdrs, ndmp3_header *objp)
57 {
58         if (!xdr_u_long (xdrs, &objp->sequence))
59                 return FALSE;
60         if (!xdr_u_long (xdrs, &objp->time_stamp))
61                 return FALSE;
62         if (!xdr_ndmp3_header_message_type (xdrs, &objp->message_type))
63                 return FALSE;
64         if (!xdr_ndmp3_message (xdrs, &objp->message))
65                 return FALSE;
66         if (!xdr_u_long (xdrs, &objp->reply_sequence))
67                 return FALSE;
68         if (!xdr_ndmp3_error (xdrs, &objp->error))
69                 return FALSE;
70         return TRUE;
71 }
72
73 bool_t
74 xdr_ndmp3_connect_open_request (XDR *xdrs, ndmp3_connect_open_request *objp)
75 {
76         if (!xdr_u_short (xdrs, &objp->protocol_version))
77                 return FALSE;
78         return TRUE;
79 }
80
81 bool_t
82 xdr_ndmp3_connect_open_reply (XDR *xdrs, ndmp3_connect_open_reply *objp)
83 {
84         if (!xdr_ndmp3_error (xdrs, &objp->error))
85                 return FALSE;
86         return TRUE;
87 }
88
89 bool_t
90 xdr_ndmp3_auth_type (XDR *xdrs, ndmp3_auth_type *objp)
91 {
92         if (!xdr_enum (xdrs, (enum_t *) objp))
93                 return FALSE;
94         return TRUE;
95 }
96
97 bool_t
98 xdr_ndmp3_auth_text (XDR *xdrs, ndmp3_auth_text *objp)
99 {
100         if (!xdr_string (xdrs, &objp->auth_id, ~0))
101                 return FALSE;
102         if (!xdr_string (xdrs, &objp->auth_password, ~0))
103                 return FALSE;
104         return TRUE;
105 }
106
107 bool_t
108 xdr_ndmp3_auth_md5 (XDR *xdrs, ndmp3_auth_md5 *objp)
109 {
110         if (!xdr_string (xdrs, &objp->auth_id, ~0))
111                 return FALSE;
112         if (!xdr_opaque (xdrs, objp->auth_digest, 16))
113                 return FALSE;
114         return TRUE;
115 }
116
117 bool_t
118 xdr_ndmp3_auth_data (XDR *xdrs, ndmp3_auth_data *objp)
119 {
120         if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type))
121                 return FALSE;
122         switch (objp->auth_type) {
123         case NDMP3_AUTH_NONE:
124                 break;
125         case NDMP3_AUTH_TEXT:
126                 if (!xdr_ndmp3_auth_text (xdrs, &objp->ndmp3_auth_data_u.auth_text))
127                         return FALSE;
128                 break;
129         case NDMP3_AUTH_MD5:
130                 if (!xdr_ndmp3_auth_md5 (xdrs, &objp->ndmp3_auth_data_u.auth_md5))
131                         return FALSE;
132                 break;
133         default:
134                 return FALSE;
135         }
136         return TRUE;
137 }
138
139 bool_t
140 xdr_ndmp3_connect_client_auth_request (XDR *xdrs, ndmp3_connect_client_auth_request *objp)
141 {
142         if (!xdr_ndmp3_auth_data (xdrs, &objp->auth_data))
143                 return FALSE;
144         return TRUE;
145 }
146
147 bool_t
148 xdr_ndmp3_connect_client_auth_reply (XDR *xdrs, ndmp3_connect_client_auth_reply *objp)
149 {
150         if (!xdr_ndmp3_error (xdrs, &objp->error))
151                 return FALSE;
152         return TRUE;
153 }
154
155 bool_t
156 xdr_ndmp3_auth_attr (XDR *xdrs, ndmp3_auth_attr *objp)
157 {
158         if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type))
159                 return FALSE;
160         switch (objp->auth_type) {
161         case NDMP3_AUTH_NONE:
162                 break;
163         case NDMP3_AUTH_TEXT:
164                 break;
165         case NDMP3_AUTH_MD5:
166                 if (!xdr_opaque (xdrs, objp->ndmp3_auth_attr_u.challenge, 64))
167                         return FALSE;
168                 break;
169         default:
170                 return FALSE;
171         }
172         return TRUE;
173 }
174
175 bool_t
176 xdr_ndmp3_connect_server_auth_request (XDR *xdrs, ndmp3_connect_server_auth_request *objp)
177 {
178         if (!xdr_ndmp3_auth_attr (xdrs, &objp->client_attr))
179                 return FALSE;
180         return TRUE;
181 }
182
183 bool_t
184 xdr_ndmp3_connect_server_auth_reply (XDR *xdrs, ndmp3_connect_server_auth_reply *objp)
185 {
186         if (!xdr_ndmp3_error (xdrs, &objp->error))
187                 return FALSE;
188         if (!xdr_ndmp3_auth_data (xdrs, &objp->server_result))
189                 return FALSE;
190         return TRUE;
191 }
192
193 bool_t
194 xdr_ndmp3_config_get_host_info_reply (XDR *xdrs, ndmp3_config_get_host_info_reply *objp)
195 {
196         if (!xdr_ndmp3_error (xdrs, &objp->error))
197                 return FALSE;
198         if (!xdr_string (xdrs, &objp->hostname, ~0))
199                 return FALSE;
200         if (!xdr_string (xdrs, &objp->os_type, ~0))
201                 return FALSE;
202         if (!xdr_string (xdrs, &objp->os_vers, ~0))
203                 return FALSE;
204         if (!xdr_string (xdrs, &objp->hostid, ~0))
205                 return FALSE;
206         return TRUE;
207 }
208
209 bool_t
210 xdr_ndmp3_addr_type (XDR *xdrs, ndmp3_addr_type *objp)
211 {
212         if (!xdr_enum (xdrs, (enum_t *) objp))
213                 return FALSE;
214         return TRUE;
215 }
216
217 bool_t
218 xdr_ndmp3_config_get_connection_type_reply (XDR *xdrs, ndmp3_config_get_connection_type_reply *objp)
219 {
220         if (!xdr_ndmp3_error (xdrs, &objp->error))
221                 return FALSE;
222         if (!xdr_array (xdrs, (char **)&objp->addr_types.addr_types_val, (u_int *) &objp->addr_types.addr_types_len, ~0,
223                 sizeof (ndmp3_addr_type), (xdrproc_t) xdr_ndmp3_addr_type))
224                 return FALSE;
225         return TRUE;
226 }
227
228 bool_t
229 xdr_ndmp3_config_get_auth_attr_request (XDR *xdrs, ndmp3_config_get_auth_attr_request *objp)
230 {
231         if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type))
232                 return FALSE;
233         return TRUE;
234 }
235
236 bool_t
237 xdr_ndmp3_config_get_auth_attr_reply (XDR *xdrs, ndmp3_config_get_auth_attr_reply *objp)
238 {
239         if (!xdr_ndmp3_error (xdrs, &objp->error))
240                 return FALSE;
241         if (!xdr_ndmp3_auth_attr (xdrs, &objp->server_attr))
242                 return FALSE;
243         return TRUE;
244 }
245
246 bool_t
247 xdr_ndmp3_config_get_server_info_reply (XDR *xdrs, ndmp3_config_get_server_info_reply *objp)
248 {
249         if (!xdr_ndmp3_error (xdrs, &objp->error))
250                 return FALSE;
251         if (!xdr_string (xdrs, &objp->vendor_name, ~0))
252                 return FALSE;
253         if (!xdr_string (xdrs, &objp->product_name, ~0))
254                 return FALSE;
255         if (!xdr_string (xdrs, &objp->revision_number, ~0))
256                 return FALSE;
257         if (!xdr_array (xdrs, (char **)&objp->auth_type.auth_type_val, (u_int *) &objp->auth_type.auth_type_len, ~0,
258                 sizeof (ndmp3_auth_type), (xdrproc_t) xdr_ndmp3_auth_type))
259                 return FALSE;
260         return TRUE;
261 }
262
263 bool_t
264 xdr_ndmp3_butype_info (XDR *xdrs, ndmp3_butype_info *objp)
265 {
266         if (!xdr_string (xdrs, &objp->butype_name, ~0))
267                 return FALSE;
268         if (!xdr_array (xdrs, (char **)&objp->default_env.default_env_val, (u_int *) &objp->default_env.default_env_len, ~0,
269                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
270                 return FALSE;
271         if (!xdr_u_long (xdrs, &objp->attrs))
272                 return FALSE;
273         return TRUE;
274 }
275
276 bool_t
277 xdr_ndmp3_config_get_butype_info_reply (XDR *xdrs, ndmp3_config_get_butype_info_reply *objp)
278 {
279         if (!xdr_ndmp3_error (xdrs, &objp->error))
280                 return FALSE;
281         if (!xdr_array (xdrs, (char **)&objp->butype_info.butype_info_val, (u_int *) &objp->butype_info.butype_info_len, ~0,
282                 sizeof (ndmp3_butype_info), (xdrproc_t) xdr_ndmp3_butype_info))
283                 return FALSE;
284         return TRUE;
285 }
286
287 bool_t
288 xdr_ndmp3_fs_info (XDR *xdrs, ndmp3_fs_info *objp)
289 {
290         if (!xdr_u_long (xdrs, &objp->invalid))
291                 return FALSE;
292         if (!xdr_string (xdrs, &objp->fs_type, ~0))
293                 return FALSE;
294         if (!xdr_string (xdrs, &objp->fs_logical_device, ~0))
295                 return FALSE;
296         if (!xdr_string (xdrs, &objp->fs_physical_device, ~0))
297                 return FALSE;
298         if (!xdr_ndmp3_u_quad (xdrs, &objp->total_size))
299                 return FALSE;
300         if (!xdr_ndmp3_u_quad (xdrs, &objp->used_size))
301                 return FALSE;
302         if (!xdr_ndmp3_u_quad (xdrs, &objp->avail_size))
303                 return FALSE;
304         if (!xdr_ndmp3_u_quad (xdrs, &objp->total_inodes))
305                 return FALSE;
306         if (!xdr_ndmp3_u_quad (xdrs, &objp->used_inodes))
307                 return FALSE;
308         if (!xdr_array (xdrs, (char **)&objp->fs_env.fs_env_val, (u_int *) &objp->fs_env.fs_env_len, ~0,
309                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
310                 return FALSE;
311         if (!xdr_string (xdrs, &objp->fs_status, ~0))
312                 return FALSE;
313         return TRUE;
314 }
315
316 bool_t
317 xdr_ndmp3_config_get_fs_info_reply (XDR *xdrs, ndmp3_config_get_fs_info_reply *objp)
318 {
319         if (!xdr_ndmp3_error (xdrs, &objp->error))
320                 return FALSE;
321         if (!xdr_array (xdrs, (char **)&objp->fs_info.fs_info_val, (u_int *) &objp->fs_info.fs_info_len, ~0,
322                 sizeof (ndmp3_fs_info), (xdrproc_t) xdr_ndmp3_fs_info))
323                 return FALSE;
324         return TRUE;
325 }
326
327 bool_t
328 xdr_ndmp3_device_capability (XDR *xdrs, ndmp3_device_capability *objp)
329 {
330         if (!xdr_string (xdrs, &objp->device, ~0))
331                 return FALSE;
332         if (!xdr_u_long (xdrs, &objp->attr))
333                 return FALSE;
334         if (!xdr_array (xdrs, (char **)&objp->capability.capability_val, (u_int *) &objp->capability.capability_len, ~0,
335                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
336                 return FALSE;
337         return TRUE;
338 }
339
340 bool_t
341 xdr_ndmp3_device_info (XDR *xdrs, ndmp3_device_info *objp)
342 {
343         if (!xdr_string (xdrs, &objp->model, ~0))
344                 return FALSE;
345         if (!xdr_array (xdrs, (char **)&objp->caplist.caplist_val, (u_int *) &objp->caplist.caplist_len, ~0,
346                 sizeof (ndmp3_device_capability), (xdrproc_t) xdr_ndmp3_device_capability))
347                 return FALSE;
348         return TRUE;
349 }
350
351 bool_t
352 xdr_ndmp3_config_get_tape_info_reply (XDR *xdrs, ndmp3_config_get_tape_info_reply *objp)
353 {
354         if (!xdr_ndmp3_error (xdrs, &objp->error))
355                 return FALSE;
356         if (!xdr_array (xdrs, (char **)&objp->tape_info.tape_info_val, (u_int *) &objp->tape_info.tape_info_len, ~0,
357                 sizeof (ndmp3_device_info), (xdrproc_t) xdr_ndmp3_device_info))
358                 return FALSE;
359         return TRUE;
360 }
361
362 bool_t
363 xdr_ndmp3_config_get_scsi_info_reply (XDR *xdrs, ndmp3_config_get_scsi_info_reply *objp)
364 {
365         if (!xdr_ndmp3_error (xdrs, &objp->error))
366                 return FALSE;
367         if (!xdr_array (xdrs, (char **)&objp->scsi_info.scsi_info_val, (u_int *) &objp->scsi_info.scsi_info_len, ~0,
368                 sizeof (ndmp3_device_info), (xdrproc_t) xdr_ndmp3_device_info))
369                 return FALSE;
370         return TRUE;
371 }
372
373 bool_t
374 xdr_ndmp3_scsi_open_request (XDR *xdrs, ndmp3_scsi_open_request *objp)
375 {
376         if (!xdr_string (xdrs, &objp->device, ~0))
377                 return FALSE;
378         return TRUE;
379 }
380
381 bool_t
382 xdr_ndmp3_scsi_open_reply (XDR *xdrs, ndmp3_scsi_open_reply *objp)
383 {
384         if (!xdr_ndmp3_error (xdrs, &objp->error))
385                 return FALSE;
386         return TRUE;
387 }
388
389 bool_t
390 xdr_ndmp3_scsi_close_reply (XDR *xdrs, ndmp3_scsi_close_reply *objp)
391 {
392         if (!xdr_ndmp3_error (xdrs, &objp->error))
393                 return FALSE;
394         return TRUE;
395 }
396
397 bool_t
398 xdr_ndmp3_scsi_get_state_reply (XDR *xdrs, ndmp3_scsi_get_state_reply *objp)
399 {
400         if (!xdr_ndmp3_error (xdrs, &objp->error))
401                 return FALSE;
402         if (!xdr_short (xdrs, &objp->target_controller))
403                 return FALSE;
404         if (!xdr_short (xdrs, &objp->target_id))
405                 return FALSE;
406         if (!xdr_short (xdrs, &objp->target_lun))
407                 return FALSE;
408         return TRUE;
409 }
410
411 bool_t
412 xdr_ndmp3_scsi_set_target_request (XDR *xdrs, ndmp3_scsi_set_target_request *objp)
413 {
414         if (!xdr_string (xdrs, &objp->device, ~0))
415                 return FALSE;
416         if (!xdr_u_short (xdrs, &objp->target_controller))
417                 return FALSE;
418         if (!xdr_u_short (xdrs, &objp->target_id))
419                 return FALSE;
420         if (!xdr_u_short (xdrs, &objp->target_lun))
421                 return FALSE;
422         return TRUE;
423 }
424
425 bool_t
426 xdr_ndmp3_scsi_set_target_reply (XDR *xdrs, ndmp3_scsi_set_target_reply *objp)
427 {
428         if (!xdr_ndmp3_error (xdrs, &objp->error))
429                 return FALSE;
430         return TRUE;
431 }
432
433 bool_t
434 xdr_ndmp3_scsi_reset_device_reply (XDR *xdrs, ndmp3_scsi_reset_device_reply *objp)
435 {
436         if (!xdr_ndmp3_error (xdrs, &objp->error))
437                 return FALSE;
438         return TRUE;
439 }
440
441 bool_t
442 xdr_ndmp3_scsi_reset_bus_reply (XDR *xdrs, ndmp3_scsi_reset_bus_reply *objp)
443 {
444         if (!xdr_ndmp3_error (xdrs, &objp->error))
445                 return FALSE;
446         return TRUE;
447 }
448
449 bool_t
450 xdr_ndmp3_execute_cdb_request (XDR *xdrs, ndmp3_execute_cdb_request *objp)
451 {
452         register int32_t *buf;
453
454         if (xdrs->x_op == XDR_ENCODE) {
455                 buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
456                 if (buf == NULL) {
457                         if (!xdr_u_long (xdrs, &objp->flags))
458                                 return FALSE;
459                         if (!xdr_u_long (xdrs, &objp->timeout))
460                                 return FALSE;
461                         if (!xdr_u_long (xdrs, &objp->datain_len))
462                                 return FALSE;
463
464                 } else {
465                 IXDR_PUT_U_LONG(buf, objp->flags);
466                 IXDR_PUT_U_LONG(buf, objp->timeout);
467                 IXDR_PUT_U_LONG(buf, objp->datain_len);
468                 }
469                 if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
470                         return FALSE;
471                 if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
472                         return FALSE;
473                 return TRUE;
474         } else if (xdrs->x_op == XDR_DECODE) {
475                 buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
476                 if (buf == NULL) {
477                         if (!xdr_u_long (xdrs, &objp->flags))
478                                 return FALSE;
479                         if (!xdr_u_long (xdrs, &objp->timeout))
480                                 return FALSE;
481                         if (!xdr_u_long (xdrs, &objp->datain_len))
482                                 return FALSE;
483
484                 } else {
485                 objp->flags = IXDR_GET_U_LONG(buf);
486                 objp->timeout = IXDR_GET_U_LONG(buf);
487                 objp->datain_len = IXDR_GET_U_LONG(buf);
488                 }
489                 if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
490                         return FALSE;
491                 if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
492                         return FALSE;
493                 return TRUE;
494         }
495
496         if (!xdr_u_long (xdrs, &objp->flags))
497                 return FALSE;
498         if (!xdr_u_long (xdrs, &objp->timeout))
499                 return FALSE;
500         if (!xdr_u_long (xdrs, &objp->datain_len))
501                 return FALSE;
502         if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
503                 return FALSE;
504         if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
505                 return FALSE;
506         return TRUE;
507 }
508
509 bool_t
510 xdr_ndmp3_execute_cdb_reply (XDR *xdrs, ndmp3_execute_cdb_reply *objp)
511 {
512         if (!xdr_ndmp3_error (xdrs, &objp->error))
513                 return FALSE;
514         if (!xdr_u_char (xdrs, &objp->status))
515                 return FALSE;
516         if (!xdr_u_long (xdrs, &objp->dataout_len))
517                 return FALSE;
518         if (!xdr_bytes (xdrs, (char **)&objp->datain.datain_val, (u_int *) &objp->datain.datain_len, ~0))
519                 return FALSE;
520         if (!xdr_bytes (xdrs, (char **)&objp->ext_sense.ext_sense_val, (u_int *) &objp->ext_sense.ext_sense_len, ~0))
521                 return FALSE;
522         return TRUE;
523 }
524
525 bool_t
526 xdr_ndmp3_scsi_execute_cdb_request (XDR *xdrs, ndmp3_scsi_execute_cdb_request *objp)
527 {
528         if (!xdr_ndmp3_execute_cdb_request (xdrs, objp))
529                 return FALSE;
530         return TRUE;
531 }
532
533 bool_t
534 xdr_ndmp3_scsi_execute_cdb_reply (XDR *xdrs, ndmp3_scsi_execute_cdb_reply *objp)
535 {
536         if (!xdr_ndmp3_execute_cdb_reply (xdrs, objp))
537                 return FALSE;
538         return TRUE;
539 }
540
541 bool_t
542 xdr_ndmp3_tape_open_mode (XDR *xdrs, ndmp3_tape_open_mode *objp)
543 {
544         if (!xdr_enum (xdrs, (enum_t *) objp))
545                 return FALSE;
546         return TRUE;
547 }
548
549 bool_t
550 xdr_ndmp3_tape_open_request (XDR *xdrs, ndmp3_tape_open_request *objp)
551 {
552         if (!xdr_string (xdrs, &objp->device, ~0))
553                 return FALSE;
554         if (!xdr_ndmp3_tape_open_mode (xdrs, &objp->mode))
555                 return FALSE;
556         return TRUE;
557 }
558
559 bool_t
560 xdr_ndmp3_tape_open_reply (XDR *xdrs, ndmp3_tape_open_reply *objp)
561 {
562         if (!xdr_ndmp3_error (xdrs, &objp->error))
563                 return FALSE;
564         return TRUE;
565 }
566
567 bool_t
568 xdr_ndmp3_tape_close_reply (XDR *xdrs, ndmp3_tape_close_reply *objp)
569 {
570         if (!xdr_ndmp3_error (xdrs, &objp->error))
571                 return FALSE;
572         return TRUE;
573 }
574
575 bool_t
576 xdr_ndmp3_tape_get_state_reply (XDR *xdrs, ndmp3_tape_get_state_reply *objp)
577 {
578         register int32_t *buf;
579
580         if (xdrs->x_op == XDR_ENCODE) {
581                 if (!xdr_u_long (xdrs, &objp->invalid))
582                         return FALSE;
583                 if (!xdr_ndmp3_error (xdrs, &objp->error))
584                         return FALSE;
585                 buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
586                 if (buf == NULL) {
587                         if (!xdr_u_long (xdrs, &objp->flags))
588                                 return FALSE;
589                         if (!xdr_u_long (xdrs, &objp->file_num))
590                                 return FALSE;
591                         if (!xdr_u_long (xdrs, &objp->soft_errors))
592                                 return FALSE;
593                         if (!xdr_u_long (xdrs, &objp->block_size))
594                                 return FALSE;
595                         if (!xdr_u_long (xdrs, &objp->blockno))
596                                 return FALSE;
597
598                 } else {
599                 IXDR_PUT_U_LONG(buf, objp->flags);
600                 IXDR_PUT_U_LONG(buf, objp->file_num);
601                 IXDR_PUT_U_LONG(buf, objp->soft_errors);
602                 IXDR_PUT_U_LONG(buf, objp->block_size);
603                 IXDR_PUT_U_LONG(buf, objp->blockno);
604                 }
605                 if (!xdr_ndmp3_u_quad (xdrs, &objp->total_space))
606                         return FALSE;
607                 if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain))
608                         return FALSE;
609                 if (!xdr_u_long (xdrs, &objp->partition))
610                         return FALSE;
611                 return TRUE;
612         } else if (xdrs->x_op == XDR_DECODE) {
613                 if (!xdr_u_long (xdrs, &objp->invalid))
614                         return FALSE;
615                 if (!xdr_ndmp3_error (xdrs, &objp->error))
616                         return FALSE;
617                 buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
618                 if (buf == NULL) {
619                         if (!xdr_u_long (xdrs, &objp->flags))
620                                 return FALSE;
621                         if (!xdr_u_long (xdrs, &objp->file_num))
622                                 return FALSE;
623                         if (!xdr_u_long (xdrs, &objp->soft_errors))
624                                 return FALSE;
625                         if (!xdr_u_long (xdrs, &objp->block_size))
626                                 return FALSE;
627                         if (!xdr_u_long (xdrs, &objp->blockno))
628                                 return FALSE;
629
630                 } else {
631                 objp->flags = IXDR_GET_U_LONG(buf);
632                 objp->file_num = IXDR_GET_U_LONG(buf);
633                 objp->soft_errors = IXDR_GET_U_LONG(buf);
634                 objp->block_size = IXDR_GET_U_LONG(buf);
635                 objp->blockno = IXDR_GET_U_LONG(buf);
636                 }
637                 if (!xdr_ndmp3_u_quad (xdrs, &objp->total_space))
638                         return FALSE;
639                 if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain))
640                         return FALSE;
641                 if (!xdr_u_long (xdrs, &objp->partition))
642                         return FALSE;
643                 return TRUE;
644         }
645
646         if (!xdr_u_long (xdrs, &objp->invalid))
647                 return FALSE;
648         if (!xdr_ndmp3_error (xdrs, &objp->error))
649                 return FALSE;
650         if (!xdr_u_long (xdrs, &objp->flags))
651                 return FALSE;
652         if (!xdr_u_long (xdrs, &objp->file_num))
653                 return FALSE;
654         if (!xdr_u_long (xdrs, &objp->soft_errors))
655                 return FALSE;
656         if (!xdr_u_long (xdrs, &objp->block_size))
657                 return FALSE;
658         if (!xdr_u_long (xdrs, &objp->blockno))
659                 return FALSE;
660         if (!xdr_ndmp3_u_quad (xdrs, &objp->total_space))
661                 return FALSE;
662         if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain))
663                 return FALSE;
664         if (!xdr_u_long (xdrs, &objp->partition))
665                 return FALSE;
666         return TRUE;
667 }
668
669 bool_t
670 xdr_ndmp3_tape_mtio_op (XDR *xdrs, ndmp3_tape_mtio_op *objp)
671 {
672         if (!xdr_enum (xdrs, (enum_t *) objp))
673                 return FALSE;
674         return TRUE;
675 }
676
677 bool_t
678 xdr_ndmp3_tape_mtio_request (XDR *xdrs, ndmp3_tape_mtio_request *objp)
679 {
680         if (!xdr_ndmp3_tape_mtio_op (xdrs, &objp->tape_op))
681                 return FALSE;
682         if (!xdr_u_long (xdrs, &objp->count))
683                 return FALSE;
684         return TRUE;
685 }
686
687 bool_t
688 xdr_ndmp3_tape_mtio_reply (XDR *xdrs, ndmp3_tape_mtio_reply *objp)
689 {
690         if (!xdr_ndmp3_error (xdrs, &objp->error))
691                 return FALSE;
692         if (!xdr_u_long (xdrs, &objp->resid_count))
693                 return FALSE;
694         return TRUE;
695 }
696
697 bool_t
698 xdr_ndmp3_tape_write_request (XDR *xdrs, ndmp3_tape_write_request *objp)
699 {
700         if (!xdr_bytes (xdrs, (char **)&objp->data_out.data_out_val, (u_int *) &objp->data_out.data_out_len, ~0))
701                 return FALSE;
702         return TRUE;
703 }
704
705 bool_t
706 xdr_ndmp3_tape_write_reply (XDR *xdrs, ndmp3_tape_write_reply *objp)
707 {
708         if (!xdr_ndmp3_error (xdrs, &objp->error))
709                 return FALSE;
710         if (!xdr_u_long (xdrs, &objp->count))
711                 return FALSE;
712         return TRUE;
713 }
714
715 bool_t
716 xdr_ndmp3_tape_read_request (XDR *xdrs, ndmp3_tape_read_request *objp)
717 {
718         if (!xdr_u_long (xdrs, &objp->count))
719                 return FALSE;
720         return TRUE;
721 }
722
723 bool_t
724 xdr_ndmp3_tape_read_reply (XDR *xdrs, ndmp3_tape_read_reply *objp)
725 {
726         if (!xdr_ndmp3_error (xdrs, &objp->error))
727                 return FALSE;
728         if (!xdr_bytes (xdrs, (char **)&objp->data_in.data_in_val, (u_int *) &objp->data_in.data_in_len, ~0))
729                 return FALSE;
730         return TRUE;
731 }
732
733 bool_t
734 xdr_ndmp3_tape_execute_cdb_request (XDR *xdrs, ndmp3_tape_execute_cdb_request *objp)
735 {
736         if (!xdr_ndmp3_execute_cdb_request (xdrs, objp))
737                 return FALSE;
738         return TRUE;
739 }
740
741 bool_t
742 xdr_ndmp3_tape_execute_cdb_reply (XDR *xdrs, ndmp3_tape_execute_cdb_reply *objp)
743 {
744         if (!xdr_ndmp3_execute_cdb_reply (xdrs, objp))
745                 return FALSE;
746         return TRUE;
747 }
748
749 bool_t
750 xdr_ndmp3_mover_state (XDR *xdrs, ndmp3_mover_state *objp)
751 {
752         if (!xdr_enum (xdrs, (enum_t *) objp))
753                 return FALSE;
754         return TRUE;
755 }
756
757 bool_t
758 xdr_ndmp3_mover_pause_reason (XDR *xdrs, ndmp3_mover_pause_reason *objp)
759 {
760         if (!xdr_enum (xdrs, (enum_t *) objp))
761                 return FALSE;
762         return TRUE;
763 }
764
765 bool_t
766 xdr_ndmp3_mover_halt_reason (XDR *xdrs, ndmp3_mover_halt_reason *objp)
767 {
768         if (!xdr_enum (xdrs, (enum_t *) objp))
769                 return FALSE;
770         return TRUE;
771 }
772
773 bool_t
774 xdr_ndmp3_mover_mode (XDR *xdrs, ndmp3_mover_mode *objp)
775 {
776         if (!xdr_enum (xdrs, (enum_t *) objp))
777                 return FALSE;
778         return TRUE;
779 }
780
781 bool_t
782 xdr_ndmp3_tcp_addr (XDR *xdrs, ndmp3_tcp_addr *objp)
783 {
784         if (!xdr_u_long (xdrs, &objp->ip_addr))
785                 return FALSE;
786         if (!xdr_u_short (xdrs, &objp->port))
787                 return FALSE;
788         return TRUE;
789 }
790
791 bool_t
792 xdr_ndmp3_fc_addr (XDR *xdrs, ndmp3_fc_addr *objp)
793 {
794         if (!xdr_u_long (xdrs, &objp->loop_id))
795                 return FALSE;
796         return TRUE;
797 }
798
799 bool_t
800 xdr_ndmp3_ipc_addr (XDR *xdrs, ndmp3_ipc_addr *objp)
801 {
802         if (!xdr_bytes (xdrs, (char **)&objp->comm_data.comm_data_val, (u_int *) &objp->comm_data.comm_data_len, ~0))
803                 return FALSE;
804         return TRUE;
805 }
806
807 bool_t
808 xdr_ndmp3_addr (XDR *xdrs, ndmp3_addr *objp)
809 {
810         if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type))
811                 return FALSE;
812         switch (objp->addr_type) {
813         case NDMP3_ADDR_LOCAL:
814                 break;
815         case NDMP3_ADDR_TCP:
816                 if (!xdr_ndmp3_tcp_addr (xdrs, &objp->ndmp3_addr_u.tcp_addr))
817                         return FALSE;
818                 break;
819         case NDMP3_ADDR_FC:
820                 if (!xdr_ndmp3_fc_addr (xdrs, &objp->ndmp3_addr_u.fc_addr))
821                         return FALSE;
822                 break;
823         case NDMP3_ADDR_IPC:
824                 if (!xdr_ndmp3_ipc_addr (xdrs, &objp->ndmp3_addr_u.ipc_addr))
825                         return FALSE;
826                 break;
827         default:
828                 return FALSE;
829         }
830         return TRUE;
831 }
832
833 bool_t
834 xdr_ndmp3_mover_get_state_reply (XDR *xdrs, ndmp3_mover_get_state_reply *objp)
835 {
836         if (!xdr_ndmp3_error (xdrs, &objp->error))
837                 return FALSE;
838         if (!xdr_ndmp3_mover_state (xdrs, &objp->state))
839                 return FALSE;
840         if (!xdr_ndmp3_mover_pause_reason (xdrs, &objp->pause_reason))
841                 return FALSE;
842         if (!xdr_ndmp3_mover_halt_reason (xdrs, &objp->halt_reason))
843                 return FALSE;
844         if (!xdr_u_long (xdrs, &objp->record_size))
845                 return FALSE;
846         if (!xdr_u_long (xdrs, &objp->record_num))
847                 return FALSE;
848         if (!xdr_ndmp3_u_quad (xdrs, &objp->data_written))
849                 return FALSE;
850         if (!xdr_ndmp3_u_quad (xdrs, &objp->seek_position))
851                 return FALSE;
852         if (!xdr_ndmp3_u_quad (xdrs, &objp->bytes_left_to_read))
853                 return FALSE;
854         if (!xdr_ndmp3_u_quad (xdrs, &objp->window_offset))
855                 return FALSE;
856         if (!xdr_ndmp3_u_quad (xdrs, &objp->window_length))
857                 return FALSE;
858         if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr))
859                 return FALSE;
860         return TRUE;
861 }
862
863 bool_t
864 xdr_ndmp3_mover_listen_request (XDR *xdrs, ndmp3_mover_listen_request *objp)
865 {
866         if (!xdr_ndmp3_mover_mode (xdrs, &objp->mode))
867                 return FALSE;
868         if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type))
869                 return FALSE;
870         return TRUE;
871 }
872
873 bool_t
874 xdr_ndmp3_mover_listen_reply (XDR *xdrs, ndmp3_mover_listen_reply *objp)
875 {
876         if (!xdr_ndmp3_error (xdrs, &objp->error))
877                 return FALSE;
878         if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr))
879                 return FALSE;
880         return TRUE;
881 }
882
883 bool_t
884 xdr_ndmp3_mover_connect_request (XDR *xdrs, ndmp3_mover_connect_request *objp)
885 {
886         if (!xdr_ndmp3_mover_mode (xdrs, &objp->mode))
887                 return FALSE;
888         if (!xdr_ndmp3_addr (xdrs, &objp->addr))
889                 return FALSE;
890         return TRUE;
891 }
892
893 bool_t
894 xdr_ndmp3_mover_connect_reply (XDR *xdrs, ndmp3_mover_connect_reply *objp)
895 {
896         if (!xdr_ndmp3_error (xdrs, &objp->error))
897                 return FALSE;
898         return TRUE;
899 }
900
901 bool_t
902 xdr_ndmp3_mover_set_record_size_request (XDR *xdrs, ndmp3_mover_set_record_size_request *objp)
903 {
904         if (!xdr_u_long (xdrs, &objp->len))
905                 return FALSE;
906         return TRUE;
907 }
908
909 bool_t
910 xdr_ndmp3_mover_set_record_size_reply (XDR *xdrs, ndmp3_mover_set_record_size_reply *objp)
911 {
912         if (!xdr_ndmp3_error (xdrs, &objp->error))
913                 return FALSE;
914         return TRUE;
915 }
916
917 bool_t
918 xdr_ndmp3_mover_set_window_request (XDR *xdrs, ndmp3_mover_set_window_request *objp)
919 {
920         if (!xdr_ndmp3_u_quad (xdrs, &objp->offset))
921                 return FALSE;
922         if (!xdr_ndmp3_u_quad (xdrs, &objp->length))
923                 return FALSE;
924         return TRUE;
925 }
926
927 bool_t
928 xdr_ndmp3_mover_set_window_reply (XDR *xdrs, ndmp3_mover_set_window_reply *objp)
929 {
930         if (!xdr_ndmp3_error (xdrs, &objp->error))
931                 return FALSE;
932         return TRUE;
933 }
934
935 bool_t
936 xdr_ndmp3_mover_continue_reply (XDR *xdrs, ndmp3_mover_continue_reply *objp)
937 {
938         if (!xdr_ndmp3_error (xdrs, &objp->error))
939                 return FALSE;
940         return TRUE;
941 }
942
943 bool_t
944 xdr_ndmp3_mover_abort_reply (XDR *xdrs, ndmp3_mover_abort_reply *objp)
945 {
946         if (!xdr_ndmp3_error (xdrs, &objp->error))
947                 return FALSE;
948         return TRUE;
949 }
950
951 bool_t
952 xdr_ndmp3_mover_stop_reply (XDR *xdrs, ndmp3_mover_stop_reply *objp)
953 {
954         if (!xdr_ndmp3_error (xdrs, &objp->error))
955                 return FALSE;
956         return TRUE;
957 }
958
959 bool_t
960 xdr_ndmp3_mover_read_request (XDR *xdrs, ndmp3_mover_read_request *objp)
961 {
962         if (!xdr_ndmp3_u_quad (xdrs, &objp->offset))
963                 return FALSE;
964         if (!xdr_ndmp3_u_quad (xdrs, &objp->length))
965                 return FALSE;
966         return TRUE;
967 }
968
969 bool_t
970 xdr_ndmp3_mover_read_reply (XDR *xdrs, ndmp3_mover_read_reply *objp)
971 {
972         if (!xdr_ndmp3_error (xdrs, &objp->error))
973                 return FALSE;
974         return TRUE;
975 }
976
977 bool_t
978 xdr_ndmp3_mover_close_reply (XDR *xdrs, ndmp3_mover_close_reply *objp)
979 {
980         if (!xdr_ndmp3_error (xdrs, &objp->error))
981                 return FALSE;
982         return TRUE;
983 }
984
985 bool_t
986 xdr_ndmp3_data_operation (XDR *xdrs, ndmp3_data_operation *objp)
987 {
988         if (!xdr_enum (xdrs, (enum_t *) objp))
989                 return FALSE;
990         return TRUE;
991 }
992
993 bool_t
994 xdr_ndmp3_data_state (XDR *xdrs, ndmp3_data_state *objp)
995 {
996         if (!xdr_enum (xdrs, (enum_t *) objp))
997                 return FALSE;
998         return TRUE;
999 }
1000
1001 bool_t
1002 xdr_ndmp3_data_halt_reason (XDR *xdrs, ndmp3_data_halt_reason *objp)
1003 {
1004         if (!xdr_enum (xdrs, (enum_t *) objp))
1005                 return FALSE;
1006         return TRUE;
1007 }
1008
1009 bool_t
1010 xdr_ndmp3_data_get_state_reply (XDR *xdrs, ndmp3_data_get_state_reply *objp)
1011 {
1012         if (!xdr_u_long (xdrs, &objp->invalid))
1013                 return FALSE;
1014         if (!xdr_ndmp3_error (xdrs, &objp->error))
1015                 return FALSE;
1016         if (!xdr_ndmp3_data_operation (xdrs, &objp->operation))
1017                 return FALSE;
1018         if (!xdr_ndmp3_data_state (xdrs, &objp->state))
1019                 return FALSE;
1020         if (!xdr_ndmp3_data_halt_reason (xdrs, &objp->halt_reason))
1021                 return FALSE;
1022         if (!xdr_ndmp3_u_quad (xdrs, &objp->bytes_processed))
1023                 return FALSE;
1024         if (!xdr_ndmp3_u_quad (xdrs, &objp->est_bytes_remain))
1025                 return FALSE;
1026         if (!xdr_u_long (xdrs, &objp->est_time_remain))
1027                 return FALSE;
1028         if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr))
1029                 return FALSE;
1030         if (!xdr_ndmp3_u_quad (xdrs, &objp->read_offset))
1031                 return FALSE;
1032         if (!xdr_ndmp3_u_quad (xdrs, &objp->read_length))
1033                 return FALSE;
1034         return TRUE;
1035 }
1036
1037 bool_t
1038 xdr_ndmp3_data_start_backup_request (XDR *xdrs, ndmp3_data_start_backup_request *objp)
1039 {
1040         if (!xdr_string (xdrs, &objp->bu_type, ~0))
1041                 return FALSE;
1042         if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
1043                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
1044                 return FALSE;
1045         return TRUE;
1046 }
1047
1048 bool_t
1049 xdr_ndmp3_data_start_backup_reply (XDR *xdrs, ndmp3_data_start_backup_reply *objp)
1050 {
1051         if (!xdr_ndmp3_error (xdrs, &objp->error))
1052                 return FALSE;
1053         return TRUE;
1054 }
1055
1056 bool_t
1057 xdr_ndmp3_name (XDR *xdrs, ndmp3_name *objp)
1058 {
1059         if (!xdr_string (xdrs, &objp->original_path, ~0))
1060                 return FALSE;
1061         if (!xdr_string (xdrs, &objp->destination_dir, ~0))
1062                 return FALSE;
1063         if (!xdr_string (xdrs, &objp->new_name, ~0))
1064                 return FALSE;
1065         if (!xdr_string (xdrs, &objp->other_name, ~0))
1066                 return FALSE;
1067         if (!xdr_ndmp3_u_quad (xdrs, &objp->node))
1068                 return FALSE;
1069         if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info))
1070                 return FALSE;
1071         return TRUE;
1072 }
1073
1074 bool_t
1075 xdr_ndmp3_data_start_recover_request (XDR *xdrs, ndmp3_data_start_recover_request *objp)
1076 {
1077         if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
1078                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
1079                 return FALSE;
1080         if (!xdr_array (xdrs, (char **)&objp->nlist.nlist_val, (u_int *) &objp->nlist.nlist_len, ~0,
1081                 sizeof (ndmp3_name), (xdrproc_t) xdr_ndmp3_name))
1082                 return FALSE;
1083         if (!xdr_string (xdrs, &objp->bu_type, ~0))
1084                 return FALSE;
1085         return TRUE;
1086 }
1087
1088 bool_t
1089 xdr_ndmp3_data_start_recover_reply (XDR *xdrs, ndmp3_data_start_recover_reply *objp)
1090 {
1091         if (!xdr_ndmp3_error (xdrs, &objp->error))
1092                 return FALSE;
1093         return TRUE;
1094 }
1095
1096 bool_t
1097 xdr_ndmp3_data_start_recover_filehist_request (XDR *xdrs, ndmp3_data_start_recover_filehist_request *objp)
1098 {
1099         if (!xdr_ndmp3_data_start_recover_request (xdrs, objp))
1100                 return FALSE;
1101         return TRUE;
1102 }
1103
1104 bool_t
1105 xdr_ndmp3_data_start_recover_filehist_reply (XDR *xdrs, ndmp3_data_start_recover_filehist_reply *objp)
1106 {
1107         if (!xdr_ndmp3_data_start_recover_reply (xdrs, objp))
1108                 return FALSE;
1109         return TRUE;
1110 }
1111
1112 bool_t
1113 xdr_ndmp3_data_abort_reply (XDR *xdrs, ndmp3_data_abort_reply *objp)
1114 {
1115         if (!xdr_ndmp3_error (xdrs, &objp->error))
1116                 return FALSE;
1117         return TRUE;
1118 }
1119
1120 bool_t
1121 xdr_ndmp3_data_stop_reply (XDR *xdrs, ndmp3_data_stop_reply *objp)
1122 {
1123         if (!xdr_ndmp3_error (xdrs, &objp->error))
1124                 return FALSE;
1125         return TRUE;
1126 }
1127
1128 bool_t
1129 xdr_ndmp3_data_get_env_reply (XDR *xdrs, ndmp3_data_get_env_reply *objp)
1130 {
1131         if (!xdr_ndmp3_error (xdrs, &objp->error))
1132                 return FALSE;
1133         if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
1134                 sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval))
1135                 return FALSE;
1136         return TRUE;
1137 }
1138
1139 bool_t
1140 xdr_ndmp3_data_listen_request (XDR *xdrs, ndmp3_data_listen_request *objp)
1141 {
1142         if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type))
1143                 return FALSE;
1144         return TRUE;
1145 }
1146
1147 bool_t
1148 xdr_ndmp3_data_listen_reply (XDR *xdrs, ndmp3_data_listen_reply *objp)
1149 {
1150         if (!xdr_ndmp3_error (xdrs, &objp->error))
1151                 return FALSE;
1152         if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr))
1153                 return FALSE;
1154         return TRUE;
1155 }
1156
1157 bool_t
1158 xdr_ndmp3_data_connect_request (XDR *xdrs, ndmp3_data_connect_request *objp)
1159 {
1160         if (!xdr_ndmp3_addr (xdrs, &objp->addr))
1161                 return FALSE;
1162         return TRUE;
1163 }
1164
1165 bool_t
1166 xdr_ndmp3_data_connect_reply (XDR *xdrs, ndmp3_data_connect_reply *objp)
1167 {
1168         if (!xdr_ndmp3_error (xdrs, &objp->error))
1169                 return FALSE;
1170         return TRUE;
1171 }
1172
1173 bool_t
1174 xdr_ndmp3_notify_data_halted_request (XDR *xdrs, ndmp3_notify_data_halted_request *objp)
1175 {
1176         if (!xdr_ndmp3_data_halt_reason (xdrs, &objp->reason))
1177                 return FALSE;
1178         if (!xdr_string (xdrs, &objp->text_reason, ~0))
1179                 return FALSE;
1180         return TRUE;
1181 }
1182
1183 bool_t
1184 xdr_ndmp3_connect_reason (XDR *xdrs, ndmp3_connect_reason *objp)
1185 {
1186         if (!xdr_enum (xdrs, (enum_t *) objp))
1187                 return FALSE;
1188         return TRUE;
1189 }
1190
1191 bool_t
1192 xdr_ndmp3_notify_connected_request (XDR *xdrs, ndmp3_notify_connected_request *objp)
1193 {
1194         if (!xdr_ndmp3_connect_reason (xdrs, &objp->reason))
1195                 return FALSE;
1196         if (!xdr_u_short (xdrs, &objp->protocol_version))
1197                 return FALSE;
1198         if (!xdr_string (xdrs, &objp->text_reason, ~0))
1199                 return FALSE;
1200         return TRUE;
1201 }
1202
1203 bool_t
1204 xdr_ndmp3_notify_mover_paused_request (XDR *xdrs, ndmp3_notify_mover_paused_request *objp)
1205 {
1206         if (!xdr_ndmp3_mover_pause_reason (xdrs, &objp->reason))
1207                 return FALSE;
1208         if (!xdr_ndmp3_u_quad (xdrs, &objp->seek_position))
1209                 return FALSE;
1210         return TRUE;
1211 }
1212
1213 bool_t
1214 xdr_ndmp3_notify_mover_halted_request (XDR *xdrs, ndmp3_notify_mover_halted_request *objp)
1215 {
1216         if (!xdr_ndmp3_mover_halt_reason (xdrs, &objp->reason))
1217                 return FALSE;
1218         if (!xdr_string (xdrs, &objp->text_reason, ~0))
1219                 return FALSE;
1220         return TRUE;
1221 }
1222
1223 bool_t
1224 xdr_ndmp3_notify_data_read_request (XDR *xdrs, ndmp3_notify_data_read_request *objp)
1225 {
1226         if (!xdr_ndmp3_u_quad (xdrs, &objp->offset))
1227                 return FALSE;
1228         if (!xdr_ndmp3_u_quad (xdrs, &objp->length))
1229                 return FALSE;
1230         return TRUE;
1231 }
1232
1233 bool_t
1234 xdr_ndmp3_log_type (XDR *xdrs, ndmp3_log_type *objp)
1235 {
1236         if (!xdr_enum (xdrs, (enum_t *) objp))
1237                 return FALSE;
1238         return TRUE;
1239 }
1240
1241 bool_t
1242 xdr_ndmp3_log_message_request (XDR *xdrs, ndmp3_log_message_request *objp)
1243 {
1244         if (!xdr_ndmp3_log_type (xdrs, &objp->log_type))
1245                 return FALSE;
1246         if (!xdr_u_long (xdrs, &objp->message_id))
1247                 return FALSE;
1248         if (!xdr_string (xdrs, &objp->entry, ~0))
1249                 return FALSE;
1250         return TRUE;
1251 }
1252
1253 bool_t
1254 xdr_ndmp3_log_file_request (XDR *xdrs, ndmp3_log_file_request *objp)
1255 {
1256         if (!xdr_string (xdrs, &objp->name, ~0))
1257                 return FALSE;
1258         if (!xdr_ndmp3_error (xdrs, &objp->error))
1259                 return FALSE;
1260         return TRUE;
1261 }
1262
1263 bool_t
1264 xdr_ndmp3_fs_type (XDR *xdrs, ndmp3_fs_type *objp)
1265 {
1266         if (!xdr_enum (xdrs, (enum_t *) objp))
1267                 return FALSE;
1268         return TRUE;
1269 }
1270
1271 bool_t
1272 xdr_ndmp3_path (XDR *xdrs, ndmp3_path *objp)
1273 {
1274         if (!xdr_string (xdrs, objp, ~0))
1275                 return FALSE;
1276         return TRUE;
1277 }
1278
1279 bool_t
1280 xdr_ndmp3_nt_path (XDR *xdrs, ndmp3_nt_path *objp)
1281 {
1282         if (!xdr_ndmp3_path (xdrs, &objp->nt_path))
1283                 return FALSE;
1284         if (!xdr_ndmp3_path (xdrs, &objp->dos_path))
1285                 return FALSE;
1286         return TRUE;
1287 }
1288
1289 bool_t
1290 xdr_ndmp3_file_name (XDR *xdrs, ndmp3_file_name *objp)
1291 {
1292         if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type))
1293                 return FALSE;
1294         switch (objp->fs_type) {
1295         case NDMP3_FS_UNIX:
1296                 if (!xdr_ndmp3_path (xdrs, &objp->ndmp3_file_name_u.unix_name))
1297                         return FALSE;
1298                 break;
1299         case NDMP3_FS_NT:
1300                 if (!xdr_ndmp3_nt_path (xdrs, &objp->ndmp3_file_name_u.nt_name))
1301                         return FALSE;
1302                 break;
1303         default:
1304                 if (!xdr_ndmp3_path (xdrs, &objp->ndmp3_file_name_u.other_name))
1305                         return FALSE;
1306                 break;
1307         }
1308         return TRUE;
1309 }
1310
1311 bool_t
1312 xdr_ndmp3_file_type (XDR *xdrs, ndmp3_file_type *objp)
1313 {
1314         if (!xdr_enum (xdrs, (enum_t *) objp))
1315                 return FALSE;
1316         return TRUE;
1317 }
1318
1319 bool_t
1320 xdr_ndmp3_file_stat (XDR *xdrs, ndmp3_file_stat *objp)
1321 {
1322         register int32_t *buf;
1323
1324         if (xdrs->x_op == XDR_ENCODE) {
1325                 if (!xdr_u_long (xdrs, &objp->invalid))
1326                         return FALSE;
1327                 if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type))
1328                         return FALSE;
1329                 if (!xdr_ndmp3_file_type (xdrs, &objp->ftype))
1330                         return FALSE;
1331                 buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
1332                 if (buf == NULL) {
1333                         if (!xdr_u_long (xdrs, &objp->mtime))
1334                                 return FALSE;
1335                         if (!xdr_u_long (xdrs, &objp->atime))
1336                                 return FALSE;
1337                         if (!xdr_u_long (xdrs, &objp->ctime))
1338                                 return FALSE;
1339                         if (!xdr_u_long (xdrs, &objp->owner))
1340                                 return FALSE;
1341                         if (!xdr_u_long (xdrs, &objp->group))
1342                                 return FALSE;
1343                         if (!xdr_u_long (xdrs, &objp->fattr))
1344                                 return FALSE;
1345
1346                 } else {
1347                 IXDR_PUT_U_LONG(buf, objp->mtime);
1348                 IXDR_PUT_U_LONG(buf, objp->atime);
1349                 IXDR_PUT_U_LONG(buf, objp->ctime);
1350                 IXDR_PUT_U_LONG(buf, objp->owner);
1351                 IXDR_PUT_U_LONG(buf, objp->group);
1352                 IXDR_PUT_U_LONG(buf, objp->fattr);
1353                 }
1354                 if (!xdr_ndmp3_u_quad (xdrs, &objp->size))
1355                         return FALSE;
1356                 if (!xdr_u_long (xdrs, &objp->links))
1357                         return FALSE;
1358                 return TRUE;
1359         } else if (xdrs->x_op == XDR_DECODE) {
1360                 if (!xdr_u_long (xdrs, &objp->invalid))
1361                         return FALSE;
1362                 if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type))
1363                         return FALSE;
1364                 if (!xdr_ndmp3_file_type (xdrs, &objp->ftype))
1365                         return FALSE;
1366                 buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
1367                 if (buf == NULL) {
1368                         if (!xdr_u_long (xdrs, &objp->mtime))
1369                                 return FALSE;
1370                         if (!xdr_u_long (xdrs, &objp->atime))
1371                                 return FALSE;
1372                         if (!xdr_u_long (xdrs, &objp->ctime))
1373                                 return FALSE;
1374                         if (!xdr_u_long (xdrs, &objp->owner))
1375                                 return FALSE;
1376                         if (!xdr_u_long (xdrs, &objp->group))
1377                                 return FALSE;
1378                         if (!xdr_u_long (xdrs, &objp->fattr))
1379                                 return FALSE;
1380
1381                 } else {
1382                 objp->mtime = IXDR_GET_U_LONG(buf);
1383                 objp->atime = IXDR_GET_U_LONG(buf);
1384                 objp->ctime = IXDR_GET_U_LONG(buf);
1385                 objp->owner = IXDR_GET_U_LONG(buf);
1386                 objp->group = IXDR_GET_U_LONG(buf);
1387                 objp->fattr = IXDR_GET_U_LONG(buf);
1388                 }
1389                 if (!xdr_ndmp3_u_quad (xdrs, &objp->size))
1390                         return FALSE;
1391                 if (!xdr_u_long (xdrs, &objp->links))
1392                         return FALSE;
1393                 return TRUE;
1394         }
1395
1396         if (!xdr_u_long (xdrs, &objp->invalid))
1397                 return FALSE;
1398         if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type))
1399                 return FALSE;
1400         if (!xdr_ndmp3_file_type (xdrs, &objp->ftype))
1401                 return FALSE;
1402         if (!xdr_u_long (xdrs, &objp->mtime))
1403                 return FALSE;
1404         if (!xdr_u_long (xdrs, &objp->atime))
1405                 return FALSE;
1406         if (!xdr_u_long (xdrs, &objp->ctime))
1407                 return FALSE;
1408         if (!xdr_u_long (xdrs, &objp->owner))
1409                 return FALSE;
1410         if (!xdr_u_long (xdrs, &objp->group))
1411                 return FALSE;
1412         if (!xdr_u_long (xdrs, &objp->fattr))
1413                 return FALSE;
1414         if (!xdr_ndmp3_u_quad (xdrs, &objp->size))
1415                 return FALSE;
1416         if (!xdr_u_long (xdrs, &objp->links))
1417                 return FALSE;
1418         return TRUE;
1419 }
1420
1421 bool_t
1422 xdr_ndmp3_file (XDR *xdrs, ndmp3_file *objp)
1423 {
1424         if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0,
1425                 sizeof (ndmp3_file_name), (xdrproc_t) xdr_ndmp3_file_name))
1426                 return FALSE;
1427         if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0,
1428                 sizeof (ndmp3_file_stat), (xdrproc_t) xdr_ndmp3_file_stat))
1429                 return FALSE;
1430         if (!xdr_ndmp3_u_quad (xdrs, &objp->node))
1431                 return FALSE;
1432         if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info))
1433                 return FALSE;
1434         return TRUE;
1435 }
1436
1437 bool_t
1438 xdr_ndmp3_fh_add_file_request (XDR *xdrs, ndmp3_fh_add_file_request *objp)
1439 {
1440         if (!xdr_array (xdrs, (char **)&objp->files.files_val, (u_int *) &objp->files.files_len, ~0,
1441                 sizeof (ndmp3_file), (xdrproc_t) xdr_ndmp3_file))
1442                 return FALSE;
1443         return TRUE;
1444 }
1445
1446 bool_t
1447 xdr_ndmp3_dir (XDR *xdrs, ndmp3_dir *objp)
1448 {
1449         if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0,
1450                 sizeof (ndmp3_file_name), (xdrproc_t) xdr_ndmp3_file_name))
1451                 return FALSE;
1452         if (!xdr_ndmp3_u_quad (xdrs, &objp->node))
1453                 return FALSE;
1454         if (!xdr_ndmp3_u_quad (xdrs, &objp->parent))
1455                 return FALSE;
1456         return TRUE;
1457 }
1458
1459 bool_t
1460 xdr_ndmp3_fh_add_dir_request (XDR *xdrs, ndmp3_fh_add_dir_request *objp)
1461 {
1462         if (!xdr_array (xdrs, (char **)&objp->dirs.dirs_val, (u_int *) &objp->dirs.dirs_len, ~0,
1463                 sizeof (ndmp3_dir), (xdrproc_t) xdr_ndmp3_dir))
1464                 return FALSE;
1465         return TRUE;
1466 }
1467
1468 bool_t
1469 xdr_ndmp3_node (XDR *xdrs, ndmp3_node *objp)
1470 {
1471         if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0,
1472                 sizeof (ndmp3_file_stat), (xdrproc_t) xdr_ndmp3_file_stat))
1473                 return FALSE;
1474         if (!xdr_ndmp3_u_quad (xdrs, &objp->node))
1475                 return FALSE;
1476         if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info))
1477                 return FALSE;
1478         return TRUE;
1479 }
1480
1481 bool_t
1482 xdr_ndmp3_fh_add_node_request (XDR *xdrs, ndmp3_fh_add_node_request *objp)
1483 {
1484         if (!xdr_array (xdrs, (char **)&objp->nodes.nodes_val, (u_int *) &objp->nodes.nodes_len, ~0,
1485                 sizeof (ndmp3_node), (xdrproc_t) xdr_ndmp3_node))
1486                 return FALSE;
1487         return TRUE;
1488 }
1489 #endif /* !NDMOS_OPTION_NO_NDMP3 */