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