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