1 /*
2 * Copyright (c) 1989 Jan-Simon Pendry
3 * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4 * Copyright (c) 1989, 1993
5 * The Regents of the University of California. All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * Jan-Simon Pendry at Imperial College, London.
9 *
10 * %sccs.include.redist.c%
11 *
12 * @(#)mount_xdr.c 8.1 (Berkeley) 06/06/93
13 *
14 * $Id: mount_xdr.c,v 5.2.2.1 1992/02/09 15:09:28 jsp beta $
15 *
16 */
17
18 #include "am.h"
19 #include "mount.h"
20
21
22 bool_t
xdr_fhandle(xdrs,objp)23 xdr_fhandle(xdrs, objp)
24 XDR *xdrs;
25 fhandle objp;
26 {
27 if (!xdr_opaque(xdrs, objp, FHSIZE)) {
28 return (FALSE);
29 }
30 return (TRUE);
31 }
32
33
34
35
36 bool_t
xdr_fhstatus(xdrs,objp)37 xdr_fhstatus(xdrs, objp)
38 XDR *xdrs;
39 fhstatus *objp;
40 {
41 if (!xdr_u_int(xdrs, &objp->fhs_status)) {
42 return (FALSE);
43 }
44 switch (objp->fhs_status) {
45 case 0:
46 if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) {
47 return (FALSE);
48 }
49 break;
50 }
51 return (TRUE);
52 }
53
54
55
56
57 bool_t
xdr_dirpath(xdrs,objp)58 xdr_dirpath(xdrs, objp)
59 XDR *xdrs;
60 dirpath *objp;
61 {
62 if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
63 return (FALSE);
64 }
65 return (TRUE);
66 }
67
68
69
70
71 bool_t
xdr_name(xdrs,objp)72 xdr_name(xdrs, objp)
73 XDR *xdrs;
74 name *objp;
75 {
76 if (!xdr_string(xdrs, objp, MNTNAMLEN)) {
77 return (FALSE);
78 }
79 return (TRUE);
80 }
81
82
83
84
85 bool_t
xdr_mountlist(xdrs,objp)86 xdr_mountlist(xdrs, objp)
87 XDR *xdrs;
88 mountlist *objp;
89 {
90 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct mountbody), xdr_mountbody)) {
91 return (FALSE);
92 }
93 return (TRUE);
94 }
95
96
97
98 bool_t
xdr_mountbody(xdrs,objp)99 xdr_mountbody(xdrs, objp)
100 XDR *xdrs;
101 mountbody *objp;
102 {
103 if (!xdr_name(xdrs, &objp->ml_hostname)) {
104 return (FALSE);
105 }
106 if (!xdr_dirpath(xdrs, &objp->ml_directory)) {
107 return (FALSE);
108 }
109 if (!xdr_mountlist(xdrs, &objp->ml_next)) {
110 return (FALSE);
111 }
112 return (TRUE);
113 }
114
115
116
117
118 bool_t
xdr_groups(xdrs,objp)119 xdr_groups(xdrs, objp)
120 XDR *xdrs;
121 groups *objp;
122 {
123 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), xdr_groupnode)) {
124 return (FALSE);
125 }
126 return (TRUE);
127 }
128
129
130
131
132 bool_t
xdr_groupnode(xdrs,objp)133 xdr_groupnode(xdrs, objp)
134 XDR *xdrs;
135 groupnode *objp;
136 {
137 if (!xdr_name(xdrs, &objp->gr_name)) {
138 return (FALSE);
139 }
140 if (!xdr_groups(xdrs, &objp->gr_next)) {
141 return (FALSE);
142 }
143 return (TRUE);
144 }
145
146
147
148
149 bool_t
xdr_exports(xdrs,objp)150 xdr_exports(xdrs, objp)
151 XDR *xdrs;
152 exports *objp;
153 {
154 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), xdr_exportnode)) {
155 return (FALSE);
156 }
157 return (TRUE);
158 }
159
160
161
162
163 bool_t
xdr_exportnode(xdrs,objp)164 xdr_exportnode(xdrs, objp)
165 XDR *xdrs;
166 exportnode *objp;
167 {
168 if (!xdr_dirpath(xdrs, &objp->ex_dir)) {
169 return (FALSE);
170 }
171 if (!xdr_groups(xdrs, &objp->ex_groups)) {
172 return (FALSE);
173 }
174 if (!xdr_exports(xdrs, &objp->ex_next)) {
175 return (FALSE);
176 }
177 return (TRUE);
178 }
179
180
181