2 * Copyright (c) 1997-2014 Erez Zadok
3 * Copyright (c) 1990 Jan-Simon Pendry
4 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
5 * Copyright (c) 1990 The Regents of the University of California.
8 * This code is derived from software contributed to Berkeley by
9 * Jan-Simon Pendry at Imperial College, London.
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of the University nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * File: am-utils/include/am_xdr_func.h
42 #define AM_MOUNTVERS3 ((unsigned long)(3))
44 #define AM_FHSIZE3 64 /* size in bytes of a file handle (v3) */
45 #define AM_NFS3_WRITEVERFSIZE 8
46 #define AM_NFS3_CREATEVERFSIZE 8
47 #define AM_NFS3_COOKIEVERFSIZE 8
48 #define AM_ACCESS3_READ 0x0001
49 #define AM_ACCESS3_LOOKUP 0x0002
50 #define AM_ACCESS3_MODIFY 0x0004
51 #define AM_ACCESS3_EXTEND 0x0008
52 #define AM_ACCESS3_DELETE 0x0010
53 #define AM_ACCESS3_EXECUTE 0x0020
54 #define AM_FSF3_LINK 0x0001
55 #define AM_FSF3_SYMLINK 0x0002
56 #define AM_FSF3_HOMOGENEOUS 0x0008
57 #define AM_FSF3_CANSETTIME 0x0010
59 typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE];
61 typedef uint64 am_cookie3;
66 char am_fh3_data[AM_FHSIZE3];
68 typedef struct am_nfs_fh3 am_nfs_fh3;
70 #define AM_NFSPROC3_LOOKUP ((u_long) 3)
77 AM_NFS3ERR_ACCES = 13,
78 AM_NFS3ERR_EXIST = 17,
80 AM_NFS3ERR_NODEV = 19,
81 AM_NFS3ERR_NOTDIR = 20,
82 AM_NFS3ERR_ISDIR = 21,
83 AM_NFS3ERR_INVAL = 22,
85 AM_NFS3ERR_NOSPC = 28,
87 AM_NFS3ERR_MLINK = 31,
88 AM_NFS3ERR_NAMETOOLONG = 63,
89 AM_NFS3ERR_NOTEMPTY = 66,
90 AM_NFS3ERR_DQUOT = 69,
91 AM_NFS3ERR_STALE = 70,
92 AM_NFS3ERR_REMOTE = 71,
93 AM_NFS3ERR_BADHANDLE = 10001,
94 AM_NFS3ERR_NOT_SYNC = 10002,
95 AM_NFS3ERR_BAD_COOKIE = 10003,
96 AM_NFS3ERR_NOTSUPP = 10004,
97 AM_NFS3ERR_TOOSMALL = 10005,
98 AM_NFS3ERR_SERVERFAULT = 10006,
99 AM_NFS3ERR_BADTYPE = 10007,
100 AM_NFS3ERR_JUKEBOX = 10008
102 typedef enum am_nfsstat3 am_nfsstat3;
112 AM_MNT3ERR_NOENT = 2,
114 AM_MNT3ERR_ACCES = 13,
115 AM_MNT3ERR_NOTDIR = 20,
116 AM_MNT3ERR_INVAL = 22,
117 AM_MNT3ERR_NAMETOOLONG = 63,
118 AM_MNT3ERR_NOTSUPP = 10004,
119 AM_MNT3ERR_SERVERFAULT = 10006
121 typedef enum am_mountstat3 am_mountstat3;
123 struct am_mountres3_ok {
126 u_int auth_flavors_len;
127 int *auth_flavors_val;
130 typedef struct am_mountres3_ok am_mountres3_ok;
132 struct am_mountres3 {
133 am_mountstat3 fhs_status;
135 am_mountres3_ok mountinfo;
138 typedef struct am_mountres3 am_mountres3;
140 typedef char *am_filename3;
142 struct am_diropargs3 {
146 typedef struct am_diropargs3 am_diropargs3;
157 typedef enum am_ftype3 am_ftype3;
159 typedef u_int am_mode3;
161 typedef u_int am_uid3;
163 typedef u_int am_gid3;
165 typedef uint64 am_size3;
167 typedef uint64 am_fileid3;
169 struct am_specdata3 {
173 typedef struct am_specdata3 am_specdata3;
179 typedef struct am_nfstime3 am_nfstime3;
196 typedef struct am_fattr3 am_fattr3;
198 struct am_post_op_attr {
199 bool_t attributes_follow;
201 am_fattr3 attributes;
204 typedef struct am_post_op_attr am_post_op_attr;
211 typedef enum am_stable_how am_stable_how;
213 typedef uint64 am_offset3;
215 typedef u_int am_count3;
222 typedef struct am_wcc_attr am_wcc_attr;
224 struct am_pre_op_attr {
225 bool_t attributes_follow;
227 am_wcc_attr attributes;
230 typedef struct am_pre_op_attr am_pre_op_attr;
233 am_pre_op_attr before;
234 am_post_op_attr after;
236 typedef struct am_wcc_data am_wcc_data;
238 struct am_WRITE3args {
242 am_stable_how stable;
248 typedef struct am_WRITE3args am_WRITE3args;
250 typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE];
252 struct am_WRITE3resok {
253 am_wcc_data file_wcc;
255 am_stable_how committed;
258 typedef struct am_WRITE3resok am_WRITE3resok;
260 struct am_WRITE3resfail {
261 am_wcc_data file_wcc;
263 typedef struct am_WRITE3resfail am_WRITE3resfail;
265 struct am_WRITE3res {
269 am_WRITE3resfail fail;
272 typedef struct am_WRITE3res am_WRITE3res;
274 struct am_LOOKUP3args {
277 typedef struct am_LOOKUP3args am_LOOKUP3args;
279 struct am_LOOKUP3resok {
281 am_post_op_attr obj_attributes;
282 am_post_op_attr dir_attributes;
284 typedef struct am_LOOKUP3resok am_LOOKUP3resok;
286 struct am_LOOKUP3resfail {
287 am_post_op_attr dir_attributes;
289 typedef struct am_LOOKUP3resfail am_LOOKUP3resfail;
291 struct am_LOOKUP3res {
295 am_LOOKUP3resfail fail;
298 typedef struct am_LOOKUP3res am_LOOKUP3res;
300 struct am_COMMIT3args {
305 typedef struct am_COMMIT3args am_COMMIT3args;
307 struct am_COMMIT3resok {
308 am_wcc_data file_wcc;
311 typedef struct am_COMMIT3resok am_COMMIT3resok;
313 struct am_COMMIT3resfail {
314 am_wcc_data file_wcc;
316 typedef struct am_COMMIT3resfail am_COMMIT3resfail;
318 struct am_COMMIT3res {
322 am_COMMIT3resfail fail;
325 typedef struct am_COMMIT3res am_COMMIT3res;
327 struct am_ACCESS3args {
331 typedef struct am_ACCESS3args am_ACCESS3args;
333 struct am_ACCESS3resok {
334 am_post_op_attr obj_attributes;
337 typedef struct am_ACCESS3resok am_ACCESS3resok;
339 struct am_ACCESS3resfail {
340 am_post_op_attr obj_attributes;
342 typedef struct am_ACCESS3resfail am_ACCESS3resfail;
344 struct am_ACCESS3res {
348 am_ACCESS3resfail fail;
351 typedef struct am_ACCESS3res am_ACCESS3res;
353 struct am_GETATTR3args {
356 typedef struct am_GETATTR3args am_GETATTR3args;
358 struct am_GETATTR3resok {
359 am_fattr3 obj_attributes;
361 typedef struct am_GETATTR3resok am_GETATTR3resok;
363 struct am_GETATTR3res {
369 typedef struct am_GETATTR3res am_GETATTR3res;
373 AM_SET_TO_SERVER_TIME = 1,
374 AM_SET_TO_CLIENT_TIME = 2,
376 typedef enum am_time_how am_time_how;
378 struct am_set_mode3 {
384 typedef struct am_set_mode3 am_set_mode3;
392 typedef struct am_set_uid3 am_set_uid3;
400 typedef struct am_set_gid3 am_set_gid3;
402 struct am_set_size3 {
408 typedef struct am_set_size3 am_set_size3;
410 struct am_set_atime {
416 typedef struct am_set_atime am_set_atime;
418 struct am_set_mtime {
424 typedef struct am_set_mtime am_set_mtime;
434 typedef struct am_sattr3 am_sattr3;
436 enum am_createmode3 {
441 typedef enum am_createmode3 am_createmode3;
443 typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE];
445 struct am_createhow3 {
448 am_sattr3 obj_attributes;
449 am_sattr3 g_obj_attributes;
453 typedef struct am_createhow3 am_createhow3;
455 struct am_CREATE3args {
459 typedef struct am_CREATE3args am_CREATE3args;
461 struct am_post_op_fh3 {
462 bool_t handle_follows;
467 typedef struct am_post_op_fh3 am_post_op_fh3;
469 struct am_CREATE3resok {
471 am_post_op_attr obj_attributes;
474 typedef struct am_CREATE3resok am_CREATE3resok;
476 struct am_CREATE3resfail {
479 typedef struct am_CREATE3resfail am_CREATE3resfail;
481 struct am_CREATE3res {
485 am_CREATE3resfail fail;
488 typedef struct am_CREATE3res am_CREATE3res;
490 struct am_REMOVE3args {
491 am_diropargs3 object;
493 typedef struct am_REMOVE3args am_REMOVE3args;
495 struct am_REMOVE3resok {
498 typedef struct am_REMOVE3resok am_REMOVE3resok;
500 struct am_REMOVE3resfail {
503 typedef struct am_REMOVE3resfail am_REMOVE3resfail;
505 struct am_REMOVE3res {
509 am_REMOVE3resfail fail;
512 typedef struct am_REMOVE3res am_REMOVE3res;
514 struct am_READ3args {
519 typedef struct am_READ3args am_READ3args;
521 struct am_READ3resok {
522 am_post_op_attr file_attributes;
530 typedef struct am_READ3resok am_READ3resok;
532 struct am_READ3resfail {
533 am_post_op_attr file_attributes;
535 typedef struct am_READ3resfail am_READ3resfail;
541 am_READ3resfail fail;
544 typedef struct am_READ3res am_READ3res;
546 struct am_FSINFO3args {
549 typedef struct am_FSINFO3args am_FSINFO3args;
551 struct am_FSINFO3resok {
552 am_post_op_attr obj_attributes;
560 am_size3 maxfilesize;
561 am_nfstime3 time_delta;
564 typedef struct am_FSINFO3resok am_FSINFO3resok;
566 struct am_FSINFO3resfail {
567 am_post_op_attr obj_attributes;
569 typedef struct am_FSINFO3resfail am_FSINFO3resfail;
571 struct am_FSINFO3res {
575 am_FSINFO3resfail fail;
578 typedef struct am_FSINFO3res am_FSINFO3res;
580 struct am_FSSTAT3args {
583 typedef struct am_FSSTAT3args am_FSSTAT3args;
585 struct am_FSSTAT3resok {
586 am_post_op_attr obj_attributes;
595 typedef struct am_FSSTAT3resok am_FSSTAT3resok;
597 struct am_FSSTAT3resfail {
598 am_post_op_attr obj_attributes;
600 typedef struct am_FSSTAT3resfail am_FSSTAT3resfail;
602 struct am_FSSTAT3res {
606 am_FSSTAT3resfail fail;
609 typedef struct am_FSSTAT3res am_FSSTAT3res;
611 struct am_PATHCONF3args {
614 typedef struct am_PATHCONF3args am_PATHCONF3args;
616 struct am_PATHCONF3resok {
617 am_post_op_attr obj_attributes;
621 bool_t chown_restricted;
622 bool_t case_insensitive;
623 bool_t case_preserving;
625 typedef struct am_PATHCONF3resok am_PATHCONF3resok;
627 struct am_PATHCONF3resfail {
628 am_post_op_attr obj_attributes;
630 typedef struct am_PATHCONF3resfail am_PATHCONF3resfail;
632 struct am_PATHCONF3res {
635 am_PATHCONF3resok ok;
636 am_PATHCONF3resfail fail;
639 typedef struct am_PATHCONF3res am_PATHCONF3res;
641 typedef char *am_nfspath3;
643 struct am_symlinkdata3 {
644 am_sattr3 symlink_attributes;
645 am_nfspath3 symlink_data;
647 typedef struct am_symlinkdata3 am_symlinkdata3;
649 struct am_SYMLINK3args {
651 am_symlinkdata3 symlink;
653 typedef struct am_SYMLINK3args am_SYMLINK3args;
655 struct am_SYMLINK3resok {
657 am_post_op_attr obj_attributes;
660 typedef struct am_SYMLINK3resok am_SYMLINK3resok;
662 struct am_SYMLINK3resfail {
665 typedef struct am_SYMLINK3resfail am_SYMLINK3resfail;
667 struct am_SYMLINK3res {
671 am_SYMLINK3resfail fail;
674 typedef struct am_SYMLINK3res am_SYMLINK3res;
676 struct am_READLINK3args {
679 typedef struct am_READLINK3args am_READLINK3args;
681 struct am_READLINK3resok {
682 am_post_op_attr symlink_attributes;
685 typedef struct am_READLINK3resok am_READLINK3resok;
687 struct am_READLINK3resfail {
688 am_post_op_attr symlink_attributes;
690 typedef struct am_READLINK3resfail am_READLINK3resfail;
692 struct am_READLINK3res {
695 am_READLINK3resok ok;
696 am_READLINK3resfail fail;
699 typedef struct am_READLINK3res am_READLINK3res;
701 struct am_devicedata3 {
702 am_sattr3 dev_attributes;
705 typedef struct am_devicedata3 am_devicedata3;
707 struct am_mknoddata3 {
710 am_devicedata3 chr_device;
711 am_devicedata3 blk_device;
712 am_sattr3 sock_attributes;
713 am_sattr3 pipe_attributes;
716 typedef struct am_mknoddata3 am_mknoddata3;
718 struct am_MKNOD3args {
722 typedef struct am_MKNOD3args am_MKNOD3args;
724 struct am_MKNOD3resok {
726 am_post_op_attr obj_attributes;
729 typedef struct am_MKNOD3resok am_MKNOD3resok;
731 struct am_MKNOD3resfail {
734 typedef struct am_MKNOD3resfail am_MKNOD3resfail;
736 struct am_MKNOD3res {
740 am_MKNOD3resfail fail;
743 typedef struct am_MKNOD3res am_MKNOD3res;
745 struct am_MKDIR3args {
747 am_sattr3 attributes;
749 typedef struct am_MKDIR3args am_MKDIR3args;
751 struct am_MKDIR3resok {
753 am_post_op_attr obj_attributes;
756 typedef struct am_MKDIR3resok am_MKDIR3resok;
758 struct am_MKDIR3resfail {
761 typedef struct am_MKDIR3resfail am_MKDIR3resfail;
763 struct am_MKDIR3res {
767 am_MKDIR3resfail fail;
770 typedef struct am_MKDIR3res am_MKDIR3res;
772 struct am_RMDIR3args {
773 am_diropargs3 object;
775 typedef struct am_RMDIR3args am_RMDIR3args;
777 struct am_RMDIR3resok {
780 typedef struct am_RMDIR3resok am_RMDIR3resok;
782 struct am_RMDIR3resfail {
785 typedef struct am_RMDIR3resfail am_RMDIR3resfail;
787 struct am_RMDIR3res {
791 am_RMDIR3resfail fail;
794 typedef struct am_RMDIR3res am_RMDIR3res;
796 struct am_RENAME3args {
800 typedef struct am_RENAME3args am_RENAME3args;
802 struct am_RENAME3resok {
803 am_wcc_data fromdir_wcc;
804 am_wcc_data todir_wcc;
806 typedef struct am_RENAME3resok am_RENAME3resok;
808 struct am_RENAME3resfail {
809 am_wcc_data fromdir_wcc;
810 am_wcc_data todir_wcc;
812 typedef struct am_RENAME3resfail am_RENAME3resfail;
814 struct am_RENAME3res {
818 am_RENAME3resfail fail;
821 typedef struct am_RENAME3res am_RENAME3res;
823 struct am_READDIRPLUS3args {
826 am_cookieverf3 cookieverf;
830 typedef struct am_READDIRPLUS3args am_READDIRPLUS3args;
832 struct am_entryplus3 {
836 am_post_op_attr name_attributes;
837 am_post_op_fh3 name_handle;
838 struct am_entryplus3 *nextentry;
840 typedef struct am_entryplus3 am_entryplus3;
842 struct am_dirlistplus3 {
843 am_entryplus3 *entries;
846 typedef struct am_dirlistplus3 am_dirlistplus3;
848 struct am_READDIRPLUS3resok {
849 am_post_op_attr dir_attributes;
850 am_cookieverf3 cookieverf;
851 am_dirlistplus3 reply;
853 typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok;
855 struct am_READDIRPLUS3resfail {
856 am_post_op_attr dir_attributes;
858 typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail;
860 struct am_READDIRPLUS3res {
863 am_READDIRPLUS3resok ok;
864 am_READDIRPLUS3resfail fail;
867 typedef struct am_READDIRPLUS3res am_READDIRPLUS3res;
869 struct am_READDIR3args {
872 am_cookieverf3 cookieverf;
875 typedef struct am_READDIR3args am_READDIR3args;
881 struct am_entry3 *nextentry;
883 typedef struct am_entry3 am_entry3;
889 typedef struct am_dirlist3 am_dirlist3;
891 struct am_READDIR3resok {
892 am_post_op_attr dir_attributes;
893 am_cookieverf3 cookieverf;
896 typedef struct am_READDIR3resok am_READDIR3resok;
898 struct am_READDIR3resfail {
899 am_post_op_attr dir_attributes;
901 typedef struct am_READDIR3resfail am_READDIR3resfail;
903 struct am_READDIR3res {
907 am_READDIR3resfail fail;
910 typedef struct am_READDIR3res am_READDIR3res;
912 struct am_LINK3args {
916 typedef struct am_LINK3args am_LINK3args;
918 struct am_LINK3resok {
919 am_post_op_attr file_attributes;
920 am_wcc_data linkdir_wcc;
922 typedef struct am_LINK3resok am_LINK3resok;
924 struct am_LINK3resfail {
925 am_post_op_attr file_attributes;
926 am_wcc_data linkdir_wcc;
928 typedef struct am_LINK3resfail am_LINK3resfail;
934 am_LINK3resfail fail;
937 typedef struct am_LINK3res am_LINK3res;
939 struct am_sattrguard3 {
942 am_nfstime3 obj_ctime;
945 typedef struct am_sattrguard3 am_sattrguard3;
947 struct am_SETATTR3args {
949 am_sattr3 new_attributes;
950 am_sattrguard3 guard;
952 typedef struct am_SETATTR3args am_SETATTR3args;
954 struct am_SETATTR3resok {
957 typedef struct am_SETATTR3resok am_SETATTR3resok;
959 struct am_SETATTR3resfail {
962 typedef struct am_SETATTR3resfail am_SETATTR3resfail;
964 struct am_SETATTR3res {
968 am_SETATTR3resfail fail;
971 typedef struct am_SETATTR3res am_SETATTR3res;
972 #endif /* HAVE_FS_NFS3 */
975 * Multi-protocol NFS file handle
977 union am_nfs_handle {
978 /* placeholder for V4 file handle */
980 am_nfs_fh3 v3; /* NFS version 3 handle */
981 #endif /* HAVE_FS_NFS3 */
982 am_nfs_fh v2; /* NFS version 2 handle */
984 typedef union am_nfs_handle am_nfs_handle_t;
988 * Definitions of all possible xdr functions that are otherwise
989 * not defined elsewhere.
992 #ifndef _AM_XDR_FUNC_H
993 #define _AM_XDR_FUNC_H
995 #ifndef HAVE_XDR_ATTRSTAT
996 bool_t xdr_attrstat(XDR *xdrs, nfsattrstat *objp);
997 #endif /* not HAVE_XDR_ATTRSTAT */
998 #ifndef HAVE_XDR_CREATEARGS
999 bool_t xdr_createargs(XDR *xdrs, nfscreateargs *objp);
1000 #endif /* not HAVE_XDR_CREATEARGS */
1001 #ifndef HAVE_XDR_DIRLIST
1002 bool_t xdr_dirlist(XDR *xdrs, nfsdirlist *objp);
1003 #endif /* not HAVE_XDR_DIRLIST */
1004 #ifndef HAVE_XDR_DIROPARGS
1005 bool_t xdr_diropargs(XDR *xdrs, nfsdiropargs *objp);
1006 #endif /* not HAVE_XDR_DIROPARGS */
1007 #ifndef HAVE_XDR_DIROPOKRES
1008 bool_t xdr_diropokres(XDR *xdrs, nfsdiropokres *objp);
1009 #endif /* not HAVE_XDR_DIROPOKRES */
1010 #ifndef HAVE_XDR_DIROPRES
1011 bool_t xdr_diropres(XDR *xdrs, nfsdiropres *objp);
1012 #endif /* not HAVE_XDR_DIROPRES */
1013 #ifndef HAVE_XDR_DIRPATH
1014 bool_t xdr_dirpath(XDR *xdrs, dirpath *objp);
1015 #endif /* not HAVE_XDR_DIRPATH */
1016 #ifndef HAVE_XDR_ENTRY
1017 bool_t xdr_entry(XDR *xdrs, nfsentry *objp);
1018 #endif /* not HAVE_XDR_ENTRY */
1019 #ifndef HAVE_XDR_EXPORTNODE
1020 bool_t xdr_exportnode(XDR *xdrs, exportnode *objp);
1021 #endif /* not HAVE_XDR_EXPORTNODE */
1022 #ifndef HAVE_XDR_EXPORTS
1023 bool_t xdr_exports(XDR *xdrs, exports *objp);
1024 #endif /* not HAVE_XDR_EXPORTS */
1025 #ifndef HAVE_XDR_FATTR
1026 bool_t xdr_fattr(XDR *xdrs, nfsfattr *objp);
1027 #endif /* not HAVE_XDR_FATTR */
1028 #ifndef HAVE_XDR_FHANDLE
1029 bool_t xdr_fhandle(XDR *xdrs, fhandle objp);
1030 #endif /* not HAVE_XDR_FHANDLE */
1031 #ifndef HAVE_XDR_FHSTATUS
1032 bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp);
1033 #endif /* not HAVE_XDR_FHSTATUS */
1034 #ifndef HAVE_XDR_FILENAME
1035 bool_t xdr_filename(XDR *xdrs, filename *objp);
1036 #endif /* not HAVE_XDR_FILENAME */
1037 #ifndef HAVE_XDR_FTYPE
1038 bool_t xdr_ftype(XDR *xdrs, nfsftype *objp);
1039 #endif /* not HAVE_XDR_FTYPE */
1040 #ifndef HAVE_XDR_GROUPNODE
1041 bool_t xdr_groupnode(XDR *xdrs, groupnode *objp);
1042 #endif /* not HAVE_XDR_GROUPNODE */
1043 #ifndef HAVE_XDR_GROUPS
1044 bool_t xdr_groups(XDR *xdrs, groups *objp);
1045 #endif /* not HAVE_XDR_GROUPS */
1046 #ifndef HAVE_XDR_LINKARGS
1047 bool_t xdr_linkargs(XDR *xdrs, nfslinkargs *objp);
1048 #endif /* not HAVE_XDR_LINKARGS */
1049 #ifndef HAVE_XDR_MOUNTBODY
1050 bool_t xdr_mountbody(XDR *xdrs, mountbody *objp);
1051 #endif /* not HAVE_XDR_MOUNTBODY */
1052 #ifndef HAVE_XDR_MOUNTLIST
1053 bool_t xdr_mountlist(XDR *xdrs, mountlist *objp);
1054 #endif /* not HAVE_XDR_MOUNTLIST */
1055 #ifndef HAVE_XDR_NAME
1056 bool_t xdr_name(XDR *xdrs, name *objp);
1057 #endif /* not HAVE_XDR_NAME */
1058 #ifndef HAVE_XDR_NFS_FH
1059 bool_t xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp);
1060 #endif /* not HAVE_XDR_NFS_FH */
1061 #ifndef HAVE_XDR_NFSCOOKIE
1062 bool_t xdr_nfscookie(XDR *xdrs, nfscookie objp);
1063 #endif /* not HAVE_XDR_NFSCOOKIE */
1064 #ifndef HAVE_XDR_NFSPATH
1065 bool_t xdr_nfspath(XDR *xdrs, nfspath *objp);
1066 #endif /* not HAVE_XDR_NFSPATH */
1067 #ifndef HAVE_XDR_NFSSTAT
1068 bool_t xdr_nfsstat(XDR *xdrs, nfsstat *objp);
1069 #endif /* not HAVE_XDR_NFSSTAT */
1070 #ifndef HAVE_XDR_NFSTIME
1071 bool_t xdr_nfstime(XDR *xdrs, nfstime *objp);
1072 #endif /* not HAVE_XDR_NFSTIME */
1073 #ifndef HAVE_XDR_POINTER
1074 bool_t xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj);
1075 #endif /* not HAVE_XDR_POINTER */
1076 #ifndef HAVE_XDR_READARGS
1077 bool_t xdr_readargs(XDR *xdrs, nfsreadargs *objp);
1078 #endif /* not HAVE_XDR_READARGS */
1079 #ifndef HAVE_XDR_READDIRARGS
1080 bool_t xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp);
1081 #endif /* not HAVE_XDR_READDIRARGS */
1082 #ifndef HAVE_XDR_READDIRRES
1083 bool_t xdr_readdirres(XDR *xdrs, nfsreaddirres *objp);
1084 #endif /* not HAVE_XDR_READDIRRES */
1085 #ifndef HAVE_XDR_READLINKRES
1086 bool_t xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp);
1087 #endif /* not HAVE_XDR_READLINKRES */
1088 #ifndef HAVE_XDR_READOKRES
1089 bool_t xdr_readokres(XDR *xdrs, nfsreadokres *objp);
1090 #endif /* not HAVE_XDR_READOKRES */
1091 #ifndef HAVE_XDR_READRES
1092 bool_t xdr_readres(XDR *xdrs, nfsreadres *objp);
1093 #endif /* not HAVE_XDR_READRES */
1094 #ifndef HAVE_XDR_RENAMEARGS
1095 bool_t xdr_renameargs(XDR *xdrs, nfsrenameargs *objp);
1096 #endif /* not HAVE_XDR_RENAMEARGS */
1097 #ifndef HAVE_XDR_SATTR
1098 bool_t xdr_sattr(XDR *xdrs, nfssattr *objp);
1099 #endif /* not HAVE_XDR_SATTR */
1100 #ifndef HAVE_XDR_SATTRARGS
1101 bool_t xdr_sattrargs(XDR *xdrs, nfssattrargs *objp);
1102 #endif /* not HAVE_XDR_SATTRARGS */
1103 #ifndef HAVE_XDR_STATFSOKRES
1104 bool_t xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp);
1105 #endif /* not HAVE_XDR_STATFSOKRES */
1106 #ifndef HAVE_XDR_STATFSRES
1107 bool_t xdr_statfsres(XDR *xdrs, nfsstatfsres *objp);
1108 #endif /* not HAVE_XDR_STATFSRES */
1109 #ifndef HAVE_XDR_SYMLINKARGS
1110 bool_t xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp);
1111 #endif /* not HAVE_XDR_SYMLINKARGS */
1112 #ifndef HAVE_XDR_WRITEARGS
1113 bool_t xdr_writeargs(XDR *xdrs, nfswriteargs *objp);
1114 #endif /* not HAVE_XDR_WRITEARGS */
1117 * NFS3 XDR FUNCTIONS:
1120 #define AM_NFS3_NULL 0
1121 void * am_nfs3_null_3(void *, CLIENT *);
1122 void * am_nfs3_null_3_svc(void *, struct svc_req *);
1123 #define AM_NFS3_GETATTR 1
1124 am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *);
1125 am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *);
1126 #define AM_NFS3_SETATTR 2
1127 am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *);
1128 am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *);
1129 #define AM_NFS3_LOOKUP 3
1130 am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *);
1131 am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *);
1132 #define AM_NFS3_ACCESS 4
1133 am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *);
1134 am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *);
1135 #define AM_NFS3_READLINK 5
1136 am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *);
1137 am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *);
1138 #define AM_NFS3_READ 6
1139 am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *);
1140 am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *);
1141 #define AM_NFS3_WRITE 7
1142 am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *);
1143 am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *);
1144 #define AM_NFS3_CREATE 8
1145 am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *);
1146 am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *);
1147 #define AM_NFS3_MKDIR 9
1148 am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *);
1149 am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *);
1150 #define AM_NFS3_SYMLINK 10
1151 am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *);
1152 am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *);
1153 #define AM_NFS3_MKNOD 11
1154 am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *);
1155 am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *);
1156 #define AM_NFS3_REMOVE 12
1157 am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *);
1158 am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *);
1159 #define AM_NFS3_RMDIR 13
1160 am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *);
1161 am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *);
1162 #define AM_NFS3_RENAME 14
1163 am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *);
1164 am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *);
1165 #define AM_NFS3_LINK 15
1166 am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *);
1167 am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *);
1168 #define AM_NFS3_READDIR 16
1169 am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *);
1170 am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *);
1171 #define AM_NFS3_READDIRPLUS 17
1172 am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *);
1173 am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *);
1174 #define AM_NFS3_FSSTAT 18
1175 am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *);
1176 am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *);
1177 #define AM_NFS3_FSINFO 19
1178 am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *);
1179 am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *);
1180 #define AM_NFS3_PATHCONF 20
1181 am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *);
1182 am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *);
1183 #define AM_NFS3_COMMIT 21
1184 am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *);
1185 am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *);
1186 int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
1188 bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp);
1189 bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp);
1190 bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp);
1191 bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp);
1192 bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp);
1193 bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp);
1194 bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp);
1195 bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp);
1196 bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp);
1197 bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp);
1198 bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp);
1199 bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp);
1200 bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3);
1201 bool_t xdr_uint64 (XDR *, uint64*);
1202 bool_t xdr_am_cookie3 (XDR *, am_cookie3*);
1203 bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*);
1204 bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*);
1205 bool_t xdr_am_filename3 (XDR *, am_filename3*);
1206 bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*);
1207 bool_t xdr_am_ftype3 (XDR *, am_ftype3*);
1208 bool_t xdr_am_mode3 (XDR *, am_mode3*);
1209 bool_t xdr_am_uid3 (XDR *, am_uid3*);
1210 bool_t xdr_am_gid3 (XDR *, am_gid3*);
1211 bool_t xdr_am_size3 (XDR *, am_size3*);
1212 bool_t xdr_am_fileid3 (XDR *, am_fileid3*);
1213 bool_t xdr_am_specdata3 (XDR *, am_specdata3*);
1214 bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*);
1215 bool_t xdr_am_fattr3 (XDR *, am_fattr3*);
1216 bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*);
1217 bool_t xdr_am_stable_how (XDR *, am_stable_how*);
1218 bool_t xdr_am_offset3 (XDR *, am_offset3*);
1219 bool_t xdr_am_count3 (XDR *, am_count3*);
1220 bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*);
1221 bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*);
1222 bool_t xdr_am_wcc_data (XDR *, am_wcc_data*);
1223 bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*);
1224 bool_t xdr_am_writeverf3 (XDR *, am_writeverf3);
1225 bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*);
1226 bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*);
1227 bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*);
1228 bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*);
1229 bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*);
1230 bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*);
1231 bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*);
1232 bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*);
1233 bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*);
1234 bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*);
1235 bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*);
1236 bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*);
1237 bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*);
1238 bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*);
1239 bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*);
1240 bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*);
1241 bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*);
1242 bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*);
1243 bool_t xdr_am_time_how (XDR *, am_time_how*);
1244 bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*);
1245 bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*);
1246 bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*);
1247 bool_t xdr_am_set_size3 (XDR *, am_set_size3*);
1248 bool_t xdr_am_set_atime (XDR *, am_set_atime*);
1249 bool_t xdr_am_set_mtime (XDR *, am_set_mtime*);
1250 bool_t xdr_am_sattr3 (XDR *, am_sattr3*);
1251 bool_t xdr_am_createmode3 (XDR *, am_createmode3*);
1252 bool_t xdr_am_createverf3 (XDR *, am_createverf3);
1253 bool_t xdr_am_createhow3 (XDR *, am_createhow3*);
1254 bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*);
1255 bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*);
1256 bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*);
1257 bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*);
1258 bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*);
1259 bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*);
1260 bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*);
1261 bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*);
1262 bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*);
1263 bool_t xdr_am_READ3args (XDR *, am_READ3args*);
1264 bool_t xdr_am_READ3resok (XDR *, am_READ3resok*);
1265 bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*);
1266 bool_t xdr_am_READ3res (XDR *, am_READ3res*);
1267 bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*);
1268 bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*);
1269 bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*);
1270 bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*);
1271 bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*);
1272 bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*);
1273 bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*);
1274 bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*);
1275 bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*);
1276 bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*);
1277 bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*);
1278 bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*);
1279 bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*);
1280 bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*);
1281 bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*);
1282 bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*);
1283 bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*);
1284 bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*);
1285 bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*);
1286 bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*);
1287 bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*);
1288 bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*);
1289 bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*);
1290 bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*);
1291 bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*);
1292 bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*);
1293 bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*);
1294 bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*);
1295 bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*);
1296 bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*);
1297 bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*);
1298 bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*);
1299 bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*);
1300 bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*);
1301 bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*);
1302 bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*);
1303 bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*);
1304 bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*);
1305 bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*);
1306 bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*);
1307 bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*);
1308 bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*);
1309 bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*);
1310 bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*);
1311 bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*);
1312 bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*);
1313 bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*);
1314 bool_t xdr_am_entry3 (XDR *, am_entry3*);
1315 bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*);
1316 bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*);
1317 bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*);
1318 bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*);
1319 bool_t xdr_am_LINK3args (XDR *, am_LINK3args*);
1320 bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*);
1321 bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*);
1322 bool_t xdr_am_LINK3res (XDR *, am_LINK3res*);
1323 bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*);
1324 bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*);
1325 bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*);
1326 bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*);
1327 bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*);
1328 #endif /* HAVE_FS_NFS3 */
1330 #endif /* not _AM_XDR_FUNC_H */