xref: /csrg-svn/usr.sbin/amd/rpcx/mount_xdr.c (revision 61800)
144928Smckusick /*
244928Smckusick  * Copyright (c) 1989 Jan-Simon Pendry
344928Smckusick  * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4*61800Sbostic  * Copyright (c) 1989, 1993
5*61800Sbostic  *	The Regents of the University of California.  All rights reserved.
644928Smckusick  *
744928Smckusick  * This code is derived from software contributed to Berkeley by
844928Smckusick  * Jan-Simon Pendry at Imperial College, London.
944928Smckusick  *
1044928Smckusick  * %sccs.include.redist.c%
1144928Smckusick  *
12*61800Sbostic  *	@(#)mount_xdr.c	8.1 (Berkeley) 06/06/93
1349685Spendry  *
1452457Spendry  * $Id: mount_xdr.c,v 5.2.2.1 1992/02/09 15:09:28 jsp beta $
1549685Spendry  *
1644928Smckusick  */
1744928Smckusick 
1844928Smckusick #include "am.h"
1944928Smckusick #include "mount.h"
2044928Smckusick 
2144928Smckusick 
2244928Smckusick bool_t
xdr_fhandle(xdrs,objp)2344928Smckusick xdr_fhandle(xdrs, objp)
2444928Smckusick 	XDR *xdrs;
2544928Smckusick 	fhandle objp;
2644928Smckusick {
2744928Smckusick 	if (!xdr_opaque(xdrs, objp, FHSIZE)) {
2844928Smckusick 		return (FALSE);
2944928Smckusick 	}
3044928Smckusick 	return (TRUE);
3144928Smckusick }
3244928Smckusick 
3344928Smckusick 
3444928Smckusick 
3544928Smckusick 
3644928Smckusick bool_t
xdr_fhstatus(xdrs,objp)3744928Smckusick xdr_fhstatus(xdrs, objp)
3844928Smckusick 	XDR *xdrs;
3944928Smckusick 	fhstatus *objp;
4044928Smckusick {
4144928Smckusick 	if (!xdr_u_int(xdrs, &objp->fhs_status)) {
4244928Smckusick 		return (FALSE);
4344928Smckusick 	}
4444928Smckusick 	switch (objp->fhs_status) {
4544928Smckusick 	case 0:
4644928Smckusick 		if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) {
4744928Smckusick 			return (FALSE);
4844928Smckusick 		}
4944928Smckusick 		break;
5044928Smckusick 	}
5144928Smckusick 	return (TRUE);
5244928Smckusick }
5344928Smckusick 
5444928Smckusick 
5544928Smckusick 
5644928Smckusick 
5744928Smckusick bool_t
xdr_dirpath(xdrs,objp)5844928Smckusick xdr_dirpath(xdrs, objp)
5944928Smckusick 	XDR *xdrs;
6044928Smckusick 	dirpath *objp;
6144928Smckusick {
6244928Smckusick 	if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
6344928Smckusick 		return (FALSE);
6444928Smckusick 	}
6544928Smckusick 	return (TRUE);
6644928Smckusick }
6744928Smckusick 
6844928Smckusick 
6944928Smckusick 
7044928Smckusick 
7144928Smckusick bool_t
xdr_name(xdrs,objp)7244928Smckusick xdr_name(xdrs, objp)
7344928Smckusick 	XDR *xdrs;
7444928Smckusick 	name *objp;
7544928Smckusick {
7644928Smckusick 	if (!xdr_string(xdrs, objp, MNTNAMLEN)) {
7744928Smckusick 		return (FALSE);
7844928Smckusick 	}
7944928Smckusick 	return (TRUE);
8044928Smckusick }
8144928Smckusick 
8244928Smckusick 
8344928Smckusick 
8444928Smckusick 
8544928Smckusick bool_t
xdr_mountlist(xdrs,objp)8644928Smckusick xdr_mountlist(xdrs, objp)
8744928Smckusick 	XDR *xdrs;
8844928Smckusick 	mountlist *objp;
8944928Smckusick {
9044928Smckusick 	if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct mountbody), xdr_mountbody)) {
9144928Smckusick 		return (FALSE);
9244928Smckusick 	}
9344928Smckusick 	return (TRUE);
9444928Smckusick }
9544928Smckusick 
9644928Smckusick 
9744928Smckusick 
9844928Smckusick bool_t
xdr_mountbody(xdrs,objp)9944928Smckusick xdr_mountbody(xdrs, objp)
10044928Smckusick 	XDR *xdrs;
10144928Smckusick 	mountbody *objp;
10244928Smckusick {
10344928Smckusick 	if (!xdr_name(xdrs, &objp->ml_hostname)) {
10444928Smckusick 		return (FALSE);
10544928Smckusick 	}
10644928Smckusick 	if (!xdr_dirpath(xdrs, &objp->ml_directory)) {
10744928Smckusick 		return (FALSE);
10844928Smckusick 	}
10944928Smckusick 	if (!xdr_mountlist(xdrs, &objp->ml_next)) {
11044928Smckusick 		return (FALSE);
11144928Smckusick 	}
11244928Smckusick 	return (TRUE);
11344928Smckusick }
11444928Smckusick 
11544928Smckusick 
11644928Smckusick 
11744928Smckusick 
11844928Smckusick bool_t
xdr_groups(xdrs,objp)11944928Smckusick xdr_groups(xdrs, objp)
12044928Smckusick 	XDR *xdrs;
12144928Smckusick 	groups *objp;
12244928Smckusick {
12344928Smckusick 	if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), xdr_groupnode)) {
12444928Smckusick 		return (FALSE);
12544928Smckusick 	}
12644928Smckusick 	return (TRUE);
12744928Smckusick }
12844928Smckusick 
12944928Smckusick 
13044928Smckusick 
13144928Smckusick 
13244928Smckusick bool_t
xdr_groupnode(xdrs,objp)13344928Smckusick xdr_groupnode(xdrs, objp)
13444928Smckusick 	XDR *xdrs;
13544928Smckusick 	groupnode *objp;
13644928Smckusick {
13744928Smckusick 	if (!xdr_name(xdrs, &objp->gr_name)) {
13844928Smckusick 		return (FALSE);
13944928Smckusick 	}
14044928Smckusick 	if (!xdr_groups(xdrs, &objp->gr_next)) {
14144928Smckusick 		return (FALSE);
14244928Smckusick 	}
14344928Smckusick 	return (TRUE);
14444928Smckusick }
14544928Smckusick 
14644928Smckusick 
14744928Smckusick 
14844928Smckusick 
14944928Smckusick bool_t
xdr_exports(xdrs,objp)15044928Smckusick xdr_exports(xdrs, objp)
15144928Smckusick 	XDR *xdrs;
15244928Smckusick 	exports *objp;
15344928Smckusick {
15444928Smckusick 	if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), xdr_exportnode)) {
15544928Smckusick 		return (FALSE);
15644928Smckusick 	}
15744928Smckusick 	return (TRUE);
15844928Smckusick }
15944928Smckusick 
16044928Smckusick 
16144928Smckusick 
16244928Smckusick 
16344928Smckusick bool_t
xdr_exportnode(xdrs,objp)16444928Smckusick xdr_exportnode(xdrs, objp)
16544928Smckusick 	XDR *xdrs;
16644928Smckusick 	exportnode *objp;
16744928Smckusick {
16844928Smckusick 	if (!xdr_dirpath(xdrs, &objp->ex_dir)) {
16944928Smckusick 		return (FALSE);
17044928Smckusick 	}
17144928Smckusick 	if (!xdr_groups(xdrs, &objp->ex_groups)) {
17244928Smckusick 		return (FALSE);
17344928Smckusick 	}
17444928Smckusick 	if (!xdr_exports(xdrs, &objp->ex_next)) {
17544928Smckusick 		return (FALSE);
17644928Smckusick 	}
17744928Smckusick 	return (TRUE);
17844928Smckusick }
17944928Smckusick 
18044928Smckusick 
181