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  *	@(#)nfs_prot_xdr.c	8.1 (Berkeley) 06/06/93
1349685Spendry  *
1452457Spendry  * $Id: nfs_prot_xdr.c,v 5.2.2.1 1992/02/09 15:09:32 jsp beta $
1549685Spendry  *
1644928Smckusick  */
1744928Smckusick 
1844928Smckusick #include "am.h"
1944928Smckusick 
2044928Smckusick 
2144928Smckusick #ifndef xdr_nfsstat
2244928Smckusick bool_t
xdr_nfsstat(xdrs,objp)2344928Smckusick xdr_nfsstat(xdrs, objp)
2444928Smckusick 	XDR *xdrs;
2544928Smckusick 	nfsstat *objp;
2644928Smckusick {
2744928Smckusick 	if (!xdr_enum(xdrs, (enum_t *)objp)) {
2844928Smckusick 		return (FALSE);
2944928Smckusick 	}
3044928Smckusick 	return (TRUE);
3144928Smckusick }
3244928Smckusick #endif /* xdr_nfsstat */
3344928Smckusick 
3444928Smckusick 
3544928Smckusick 
3644928Smckusick #ifndef xdr_ftype
3744928Smckusick static bool_t
xdr_ftype(xdrs,objp)3844928Smckusick xdr_ftype(xdrs, objp)
3944928Smckusick 	XDR *xdrs;
4044928Smckusick 	ftype *objp;
4144928Smckusick {
4244928Smckusick 	if (!xdr_enum(xdrs, (enum_t *)objp)) {
4344928Smckusick 		return (FALSE);
4444928Smckusick 	}
4544928Smckusick 	return (TRUE);
4644928Smckusick }
4744928Smckusick #endif /* xdr_ftype */
4844928Smckusick 
4944928Smckusick 
5044928Smckusick 
5144928Smckusick bool_t
xdr_nfs_fh(xdrs,objp)5244928Smckusick xdr_nfs_fh(xdrs, objp)
5344928Smckusick 	XDR *xdrs;
5444928Smckusick 	nfs_fh *objp;
5544928Smckusick {
5644928Smckusick 	if (!xdr_opaque(xdrs, objp->data, NFS_FHSIZE)) {
5744928Smckusick 		return (FALSE);
5844928Smckusick 	}
5944928Smckusick 	return (TRUE);
6044928Smckusick }
6144928Smckusick 
6244928Smckusick 
6344928Smckusick 
6444928Smckusick 
6544928Smckusick static bool_t
xdr_nfstime(xdrs,objp)6644928Smckusick xdr_nfstime(xdrs, objp)
6744928Smckusick 	XDR *xdrs;
6844928Smckusick 	nfstime *objp;
6944928Smckusick {
7044928Smckusick 	if (!xdr_u_int(xdrs, &objp->seconds)) {
7144928Smckusick 		return (FALSE);
7244928Smckusick 	}
7344928Smckusick 	if (!xdr_u_int(xdrs, &objp->useconds)) {
7444928Smckusick 		return (FALSE);
7544928Smckusick 	}
7644928Smckusick 	return (TRUE);
7744928Smckusick }
7844928Smckusick 
7944928Smckusick 
8044928Smckusick 
8144928Smckusick 
8244928Smckusick static bool_t
xdr_fattr(xdrs,objp)8344928Smckusick xdr_fattr(xdrs, objp)
8444928Smckusick 	XDR *xdrs;
8544928Smckusick 	fattr *objp;
8644928Smckusick {
8744928Smckusick 	if (!xdr_ftype(xdrs, &objp->type)) {
8844928Smckusick 		return (FALSE);
8944928Smckusick 	}
9044928Smckusick 	if (!xdr_u_int(xdrs, &objp->mode)) {
9144928Smckusick 		return (FALSE);
9244928Smckusick 	}
9344928Smckusick 	if (!xdr_u_int(xdrs, &objp->nlink)) {
9444928Smckusick 		return (FALSE);
9544928Smckusick 	}
9644928Smckusick 	if (!xdr_u_int(xdrs, &objp->uid)) {
9744928Smckusick 		return (FALSE);
9844928Smckusick 	}
9944928Smckusick 	if (!xdr_u_int(xdrs, &objp->gid)) {
10044928Smckusick 		return (FALSE);
10144928Smckusick 	}
10244928Smckusick 	if (!xdr_u_int(xdrs, &objp->size)) {
10344928Smckusick 		return (FALSE);
10444928Smckusick 	}
10544928Smckusick 	if (!xdr_u_int(xdrs, &objp->blocksize)) {
10644928Smckusick 		return (FALSE);
10744928Smckusick 	}
10844928Smckusick 	if (!xdr_u_int(xdrs, &objp->rdev)) {
10944928Smckusick 		return (FALSE);
11044928Smckusick 	}
11144928Smckusick 	if (!xdr_u_int(xdrs, &objp->blocks)) {
11244928Smckusick 		return (FALSE);
11344928Smckusick 	}
11444928Smckusick 	if (!xdr_u_int(xdrs, &objp->fsid)) {
11544928Smckusick 		return (FALSE);
11644928Smckusick 	}
11744928Smckusick 	if (!xdr_u_int(xdrs, &objp->fileid)) {
11844928Smckusick 		return (FALSE);
11944928Smckusick 	}
12044928Smckusick 	if (!xdr_nfstime(xdrs, &objp->atime)) {
12144928Smckusick 		return (FALSE);
12244928Smckusick 	}
12344928Smckusick 	if (!xdr_nfstime(xdrs, &objp->mtime)) {
12444928Smckusick 		return (FALSE);
12544928Smckusick 	}
12644928Smckusick 	if (!xdr_nfstime(xdrs, &objp->ctime)) {
12744928Smckusick 		return (FALSE);
12844928Smckusick 	}
12944928Smckusick 	return (TRUE);
13044928Smckusick }
13144928Smckusick 
13244928Smckusick 
13344928Smckusick 
13444928Smckusick 
13544928Smckusick static bool_t
xdr_sattr(xdrs,objp)13644928Smckusick xdr_sattr(xdrs, objp)
13744928Smckusick 	XDR *xdrs;
13844928Smckusick 	sattr *objp;
13944928Smckusick {
14044928Smckusick 	if (!xdr_u_int(xdrs, &objp->mode)) {
14144928Smckusick 		return (FALSE);
14244928Smckusick 	}
14344928Smckusick 	if (!xdr_u_int(xdrs, &objp->uid)) {
14444928Smckusick 		return (FALSE);
14544928Smckusick 	}
14644928Smckusick 	if (!xdr_u_int(xdrs, &objp->gid)) {
14744928Smckusick 		return (FALSE);
14844928Smckusick 	}
14944928Smckusick 	if (!xdr_u_int(xdrs, &objp->size)) {
15044928Smckusick 		return (FALSE);
15144928Smckusick 	}
15244928Smckusick 	if (!xdr_nfstime(xdrs, &objp->atime)) {
15344928Smckusick 		return (FALSE);
15444928Smckusick 	}
15544928Smckusick 	if (!xdr_nfstime(xdrs, &objp->mtime)) {
15644928Smckusick 		return (FALSE);
15744928Smckusick 	}
15844928Smckusick 	return (TRUE);
15944928Smckusick }
16044928Smckusick 
16144928Smckusick 
16244928Smckusick 
16344928Smckusick 
16444928Smckusick static bool_t
xdr_filename(xdrs,objp)16544928Smckusick xdr_filename(xdrs, objp)
16644928Smckusick 	XDR *xdrs;
16744928Smckusick 	filename *objp;
16844928Smckusick {
16944928Smckusick 	if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN)) {
17044928Smckusick 		return (FALSE);
17144928Smckusick 	}
17244928Smckusick 	return (TRUE);
17344928Smckusick }
17444928Smckusick 
17544928Smckusick 
17644928Smckusick 
17744928Smckusick 
17844928Smckusick bool_t
xdr_nfspath(xdrs,objp)17944928Smckusick xdr_nfspath(xdrs, objp)
18044928Smckusick 	XDR *xdrs;
18144928Smckusick 	nfspath *objp;
18244928Smckusick {
18344928Smckusick 	if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN)) {
18444928Smckusick 		return (FALSE);
18544928Smckusick 	}
18644928Smckusick 	return (TRUE);
18744928Smckusick }
18844928Smckusick 
18944928Smckusick 
19044928Smckusick 
19144928Smckusick 
19244928Smckusick bool_t
xdr_attrstat(xdrs,objp)19344928Smckusick xdr_attrstat(xdrs, objp)
19444928Smckusick 	XDR *xdrs;
19544928Smckusick 	attrstat *objp;
19644928Smckusick {
19744928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
19844928Smckusick 		return (FALSE);
19944928Smckusick 	}
20044928Smckusick 	switch (objp->status) {
20144928Smckusick 	case NFS_OK:
20244928Smckusick 		if (!xdr_fattr(xdrs, &objp->attrstat_u.attributes)) {
20344928Smckusick 			return (FALSE);
20444928Smckusick 		}
20544928Smckusick 		break;
20644928Smckusick 	}
20744928Smckusick 	return (TRUE);
20844928Smckusick }
20944928Smckusick 
21044928Smckusick 
21144928Smckusick 
21244928Smckusick 
21344928Smckusick bool_t
xdr_sattrargs(xdrs,objp)21444928Smckusick xdr_sattrargs(xdrs, objp)
21544928Smckusick 	XDR *xdrs;
21644928Smckusick 	sattrargs *objp;
21744928Smckusick {
21844928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->file)) {
21944928Smckusick 		return (FALSE);
22044928Smckusick 	}
22144928Smckusick 	if (!xdr_sattr(xdrs, &objp->attributes)) {
22244928Smckusick 		return (FALSE);
22344928Smckusick 	}
22444928Smckusick 	return (TRUE);
22544928Smckusick }
22644928Smckusick 
22744928Smckusick 
22844928Smckusick 
22944928Smckusick 
23044928Smckusick bool_t
xdr_diropargs(xdrs,objp)23144928Smckusick xdr_diropargs(xdrs, objp)
23244928Smckusick 	XDR *xdrs;
23344928Smckusick 	diropargs *objp;
23444928Smckusick {
23544928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->dir)) {
23644928Smckusick 		return (FALSE);
23744928Smckusick 	}
23844928Smckusick 	if (!xdr_filename(xdrs, &objp->name)) {
23944928Smckusick 		return (FALSE);
24044928Smckusick 	}
24144928Smckusick 	return (TRUE);
24244928Smckusick }
24344928Smckusick 
24444928Smckusick 
24544928Smckusick 
24644928Smckusick 
24744928Smckusick bool_t
xdr_diropokres(xdrs,objp)24844928Smckusick xdr_diropokres(xdrs, objp)
24944928Smckusick 	XDR *xdrs;
25044928Smckusick 	diropokres *objp;
25144928Smckusick {
25244928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->file)) {
25344928Smckusick 		return (FALSE);
25444928Smckusick 	}
25544928Smckusick 	if (!xdr_fattr(xdrs, &objp->attributes)) {
25644928Smckusick 		return (FALSE);
25744928Smckusick 	}
25844928Smckusick 	return (TRUE);
25944928Smckusick }
26044928Smckusick 
26144928Smckusick 
26244928Smckusick 
26344928Smckusick 
26444928Smckusick bool_t
xdr_diropres(xdrs,objp)26544928Smckusick xdr_diropres(xdrs, objp)
26644928Smckusick 	XDR *xdrs;
26744928Smckusick 	diropres *objp;
26844928Smckusick {
26944928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
27044928Smckusick 		return (FALSE);
27144928Smckusick 	}
27244928Smckusick 	switch (objp->status) {
27344928Smckusick 	case NFS_OK:
27444928Smckusick 		if (!xdr_diropokres(xdrs, &objp->diropres_u.diropres)) {
27544928Smckusick 			return (FALSE);
27644928Smckusick 		}
27744928Smckusick 		break;
27844928Smckusick 	}
27944928Smckusick 	return (TRUE);
28044928Smckusick }
28144928Smckusick 
28244928Smckusick 
28344928Smckusick 
28444928Smckusick 
28544928Smckusick bool_t
xdr_readlinkres(xdrs,objp)28644928Smckusick xdr_readlinkres(xdrs, objp)
28744928Smckusick 	XDR *xdrs;
28844928Smckusick 	readlinkres *objp;
28944928Smckusick {
29044928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
29144928Smckusick 		return (FALSE);
29244928Smckusick 	}
29344928Smckusick 	switch (objp->status) {
29444928Smckusick 	case NFS_OK:
29544928Smckusick 		if (!xdr_nfspath(xdrs, &objp->readlinkres_u.data)) {
29644928Smckusick 			return (FALSE);
29744928Smckusick 		}
29844928Smckusick 		break;
29944928Smckusick 	}
30044928Smckusick 	return (TRUE);
30144928Smckusick }
30244928Smckusick 
30344928Smckusick 
30444928Smckusick 
30544928Smckusick 
30644928Smckusick bool_t
xdr_readargs(xdrs,objp)30744928Smckusick xdr_readargs(xdrs, objp)
30844928Smckusick 	XDR *xdrs;
30944928Smckusick 	readargs *objp;
31044928Smckusick {
31144928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->file)) {
31244928Smckusick 		return (FALSE);
31344928Smckusick 	}
31444928Smckusick 	if (!xdr_u_int(xdrs, &objp->offset)) {
31544928Smckusick 		return (FALSE);
31644928Smckusick 	}
31744928Smckusick 	if (!xdr_u_int(xdrs, &objp->count)) {
31844928Smckusick 		return (FALSE);
31944928Smckusick 	}
32044928Smckusick 	if (!xdr_u_int(xdrs, &objp->totalcount)) {
32144928Smckusick 		return (FALSE);
32244928Smckusick 	}
32344928Smckusick 	return (TRUE);
32444928Smckusick }
32544928Smckusick 
32644928Smckusick 
32744928Smckusick 
32844928Smckusick 
32944928Smckusick bool_t
xdr_readokres(xdrs,objp)33044928Smckusick xdr_readokres(xdrs, objp)
33144928Smckusick 	XDR *xdrs;
33244928Smckusick 	readokres *objp;
33344928Smckusick {
33444928Smckusick 	if (!xdr_fattr(xdrs, &objp->attributes)) {
33544928Smckusick 		return (FALSE);
33644928Smckusick 	}
33744928Smckusick 	if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA)) {
33844928Smckusick 		return (FALSE);
33944928Smckusick 	}
34044928Smckusick 	return (TRUE);
34144928Smckusick }
34244928Smckusick 
34344928Smckusick 
34444928Smckusick 
34544928Smckusick 
34644928Smckusick bool_t
xdr_readres(xdrs,objp)34744928Smckusick xdr_readres(xdrs, objp)
34844928Smckusick 	XDR *xdrs;
34944928Smckusick 	readres *objp;
35044928Smckusick {
35144928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
35244928Smckusick 		return (FALSE);
35344928Smckusick 	}
35444928Smckusick 	switch (objp->status) {
35544928Smckusick 	case NFS_OK:
35644928Smckusick 		if (!xdr_readokres(xdrs, &objp->readres_u.reply)) {
35744928Smckusick 			return (FALSE);
35844928Smckusick 		}
35944928Smckusick 		break;
36044928Smckusick 	}
36144928Smckusick 	return (TRUE);
36244928Smckusick }
36344928Smckusick 
36444928Smckusick 
36544928Smckusick 
36644928Smckusick 
36744928Smckusick bool_t
xdr_writeargs(xdrs,objp)36844928Smckusick xdr_writeargs(xdrs, objp)
36944928Smckusick 	XDR *xdrs;
37044928Smckusick 	writeargs *objp;
37144928Smckusick {
37244928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->file)) {
37344928Smckusick 		return (FALSE);
37444928Smckusick 	}
37544928Smckusick 	if (!xdr_u_int(xdrs, &objp->beginoffset)) {
37644928Smckusick 		return (FALSE);
37744928Smckusick 	}
37844928Smckusick 	if (!xdr_u_int(xdrs, &objp->offset)) {
37944928Smckusick 		return (FALSE);
38044928Smckusick 	}
38144928Smckusick 	if (!xdr_u_int(xdrs, &objp->totalcount)) {
38244928Smckusick 		return (FALSE);
38344928Smckusick 	}
38444928Smckusick 	if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA)) {
38544928Smckusick 		return (FALSE);
38644928Smckusick 	}
38744928Smckusick 	return (TRUE);
38844928Smckusick }
38944928Smckusick 
39044928Smckusick 
39144928Smckusick 
39244928Smckusick 
39344928Smckusick bool_t
xdr_createargs(xdrs,objp)39444928Smckusick xdr_createargs(xdrs, objp)
39544928Smckusick 	XDR *xdrs;
39644928Smckusick 	createargs *objp;
39744928Smckusick {
39844928Smckusick 	if (!xdr_diropargs(xdrs, &objp->where)) {
39944928Smckusick 		return (FALSE);
40044928Smckusick 	}
40144928Smckusick 	if (!xdr_sattr(xdrs, &objp->attributes)) {
40244928Smckusick 		return (FALSE);
40344928Smckusick 	}
40444928Smckusick 	return (TRUE);
40544928Smckusick }
40644928Smckusick 
40744928Smckusick 
40844928Smckusick 
40944928Smckusick 
41044928Smckusick bool_t
xdr_renameargs(xdrs,objp)41144928Smckusick xdr_renameargs(xdrs, objp)
41244928Smckusick 	XDR *xdrs;
41344928Smckusick 	renameargs *objp;
41444928Smckusick {
41544928Smckusick 	if (!xdr_diropargs(xdrs, &objp->from)) {
41644928Smckusick 		return (FALSE);
41744928Smckusick 	}
41844928Smckusick 	if (!xdr_diropargs(xdrs, &objp->to)) {
41944928Smckusick 		return (FALSE);
42044928Smckusick 	}
42144928Smckusick 	return (TRUE);
42244928Smckusick }
42344928Smckusick 
42444928Smckusick 
42544928Smckusick 
42644928Smckusick 
42744928Smckusick bool_t
xdr_linkargs(xdrs,objp)42844928Smckusick xdr_linkargs(xdrs, objp)
42944928Smckusick 	XDR *xdrs;
43044928Smckusick 	linkargs *objp;
43144928Smckusick {
43244928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->from)) {
43344928Smckusick 		return (FALSE);
43444928Smckusick 	}
43544928Smckusick 	if (!xdr_diropargs(xdrs, &objp->to)) {
43644928Smckusick 		return (FALSE);
43744928Smckusick 	}
43844928Smckusick 	return (TRUE);
43944928Smckusick }
44044928Smckusick 
44144928Smckusick 
44244928Smckusick 
44344928Smckusick 
44444928Smckusick bool_t
xdr_symlinkargs(xdrs,objp)44544928Smckusick xdr_symlinkargs(xdrs, objp)
44644928Smckusick 	XDR *xdrs;
44744928Smckusick 	symlinkargs *objp;
44844928Smckusick {
44944928Smckusick 	if (!xdr_diropargs(xdrs, &objp->from)) {
45044928Smckusick 		return (FALSE);
45144928Smckusick 	}
45244928Smckusick 	if (!xdr_nfspath(xdrs, &objp->to)) {
45344928Smckusick 		return (FALSE);
45444928Smckusick 	}
45544928Smckusick 	if (!xdr_sattr(xdrs, &objp->attributes)) {
45644928Smckusick 		return (FALSE);
45744928Smckusick 	}
45844928Smckusick 	return (TRUE);
45944928Smckusick }
46044928Smckusick 
46144928Smckusick 
46244928Smckusick 
46344928Smckusick 
46444928Smckusick static bool_t
xdr_nfscookie(xdrs,objp)46544928Smckusick xdr_nfscookie(xdrs, objp)
46644928Smckusick 	XDR *xdrs;
46744928Smckusick 	nfscookie objp;
46844928Smckusick {
46944928Smckusick 	if (!xdr_opaque(xdrs, objp, NFS_COOKIESIZE)) {
47044928Smckusick 		return (FALSE);
47144928Smckusick 	}
47244928Smckusick 	return (TRUE);
47344928Smckusick }
47444928Smckusick 
47544928Smckusick 
47644928Smckusick 
47744928Smckusick 
47844928Smckusick bool_t
xdr_readdirargs(xdrs,objp)47944928Smckusick xdr_readdirargs(xdrs, objp)
48044928Smckusick 	XDR *xdrs;
48144928Smckusick 	readdirargs *objp;
48244928Smckusick {
48344928Smckusick 	if (!xdr_nfs_fh(xdrs, &objp->dir)) {
48444928Smckusick 		return (FALSE);
48544928Smckusick 	}
48644928Smckusick 	if (!xdr_nfscookie(xdrs, objp->cookie)) {
48744928Smckusick 		return (FALSE);
48844928Smckusick 	}
48944928Smckusick 	if (!xdr_u_int(xdrs, &objp->count)) {
49044928Smckusick 		return (FALSE);
49144928Smckusick 	}
49244928Smckusick 	return (TRUE);
49344928Smckusick }
49444928Smckusick 
49544928Smckusick 
49644928Smckusick 
49744928Smckusick 
49844928Smckusick static bool_t
xdr_entry(xdrs,objp)49944928Smckusick xdr_entry(xdrs, objp)
50044928Smckusick 	XDR *xdrs;
50144928Smckusick 	entry *objp;
50244928Smckusick {
50344928Smckusick 	if (!xdr_u_int(xdrs, &objp->fileid)) {
50444928Smckusick 		return (FALSE);
50544928Smckusick 	}
50644928Smckusick 	if (!xdr_filename(xdrs, &objp->name)) {
50744928Smckusick 		return (FALSE);
50844928Smckusick 	}
50944928Smckusick 	if (!xdr_nfscookie(xdrs, objp->cookie)) {
51044928Smckusick 		return (FALSE);
51144928Smckusick 	}
51244928Smckusick 	if (!xdr_pointer(xdrs, (char **)&objp->nextentry, sizeof(entry), xdr_entry)) {
51344928Smckusick 		return (FALSE);
51444928Smckusick 	}
51544928Smckusick 	return (TRUE);
51644928Smckusick }
51744928Smckusick 
51844928Smckusick 
51944928Smckusick 
52044928Smckusick 
52144928Smckusick static bool_t
xdr_dirlist(xdrs,objp)52244928Smckusick xdr_dirlist(xdrs, objp)
52344928Smckusick 	XDR *xdrs;
52444928Smckusick 	dirlist *objp;
52544928Smckusick {
52644928Smckusick 	if (!xdr_pointer(xdrs, (char **)&objp->entries, sizeof(entry), xdr_entry)) {
52744928Smckusick 		return (FALSE);
52844928Smckusick 	}
52944928Smckusick 	if (!xdr_bool(xdrs, &objp->eof)) {
53044928Smckusick 		return (FALSE);
53144928Smckusick 	}
53244928Smckusick 	return (TRUE);
53344928Smckusick }
53444928Smckusick 
53544928Smckusick 
53644928Smckusick 
53744928Smckusick 
53844928Smckusick bool_t
xdr_readdirres(xdrs,objp)53944928Smckusick xdr_readdirres(xdrs, objp)
54044928Smckusick 	XDR *xdrs;
54144928Smckusick 	readdirres *objp;
54244928Smckusick {
54344928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
54444928Smckusick 		return (FALSE);
54544928Smckusick 	}
54644928Smckusick 	switch (objp->status) {
54744928Smckusick 	case NFS_OK:
54844928Smckusick 		if (!xdr_dirlist(xdrs, &objp->readdirres_u.reply)) {
54944928Smckusick 			return (FALSE);
55044928Smckusick 		}
55144928Smckusick 		break;
55244928Smckusick 	}
55344928Smckusick 	return (TRUE);
55444928Smckusick }
55544928Smckusick 
55644928Smckusick 
55744928Smckusick 
55844928Smckusick 
55944928Smckusick bool_t
xdr_statfsokres(xdrs,objp)56044928Smckusick xdr_statfsokres(xdrs, objp)
56144928Smckusick 	XDR *xdrs;
56244928Smckusick 	statfsokres *objp;
56344928Smckusick {
56444928Smckusick 	if (!xdr_u_int(xdrs, &objp->tsize)) {
56544928Smckusick 		return (FALSE);
56644928Smckusick 	}
56744928Smckusick 	if (!xdr_u_int(xdrs, &objp->bsize)) {
56844928Smckusick 		return (FALSE);
56944928Smckusick 	}
57044928Smckusick 	if (!xdr_u_int(xdrs, &objp->blocks)) {
57144928Smckusick 		return (FALSE);
57244928Smckusick 	}
57344928Smckusick 	if (!xdr_u_int(xdrs, &objp->bfree)) {
57444928Smckusick 		return (FALSE);
57544928Smckusick 	}
57644928Smckusick 	if (!xdr_u_int(xdrs, &objp->bavail)) {
57744928Smckusick 		return (FALSE);
57844928Smckusick 	}
57944928Smckusick 	return (TRUE);
58044928Smckusick }
58144928Smckusick 
58244928Smckusick 
58344928Smckusick 
58444928Smckusick 
58544928Smckusick bool_t
xdr_statfsres(xdrs,objp)58644928Smckusick xdr_statfsres(xdrs, objp)
58744928Smckusick 	XDR *xdrs;
58844928Smckusick 	statfsres *objp;
58944928Smckusick {
59044928Smckusick 	if (!xdr_nfsstat(xdrs, &objp->status)) {
59144928Smckusick 		return (FALSE);
59244928Smckusick 	}
59344928Smckusick 	switch (objp->status) {
59444928Smckusick 	case NFS_OK:
59544928Smckusick 		if (!xdr_statfsokres(xdrs, &objp->statfsres_u.reply)) {
59644928Smckusick 			return (FALSE);
59744928Smckusick 		}
59844928Smckusick 		break;
59944928Smckusick 	}
60044928Smckusick 	return (TRUE);
60144928Smckusick }
602