2010-05-20 08:10:15 +08:00
|
|
|
/*
|
|
|
|
* Please do not edit this file.
|
|
|
|
* It was generated using rpcgen.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "nfs.h"
|
|
|
|
/* This file is copied from RFC1813
|
|
|
|
* Copyright 1995 Sun Micrososystems (I assume)
|
|
|
|
*/
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_uint64(register XDR *xdrs, uint64 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_u_longlong_t(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_int64(register XDR *xdrs, int64 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_longlong_t(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_uint32(register XDR *xdrs, uint32 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_u_long(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_int32(register XDR *xdrs, int32 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_long(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_filename3(register XDR *xdrs, filename3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_string(xdrs, objp, ~0))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_nfspath3(register XDR *xdrs, nfspath3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_string(xdrs, objp, ~0))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_fileid3(register XDR *xdrs, fileid3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint64(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_cookie3(register XDR *xdrs, cookie3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint64(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_cookieverf3(register XDR *xdrs, cookieverf3 objp)
|
|
|
|
{
|
|
|
|
if (!xdr_opaque(xdrs, objp, NFS3_COOKIEVERFSIZE))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_createverf3(register XDR *xdrs, createverf3 objp)
|
|
|
|
{
|
|
|
|
if (!xdr_opaque(xdrs, objp, NFS3_CREATEVERFSIZE))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_writeverf3(register XDR *xdrs, writeverf3 objp)
|
|
|
|
{
|
|
|
|
if (!xdr_opaque(xdrs, objp, NFS3_WRITEVERFSIZE))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_uid3(register XDR *xdrs, uid3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_gid3(register XDR *xdrs, gid3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_size3(register XDR *xdrs, size3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint64(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_offset3(register XDR *xdrs, offset3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint64(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_mode3(register XDR *xdrs, mode3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_count3(register XDR *xdrs, count3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, objp))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_nfsstat3(register XDR *xdrs, nfsstat3 *objp)
|
|
|
|
{
|
|
|
|
int enum_objp;
|
|
|
|
enum_objp = *objp;
|
|
|
|
if (!xdr_enum(xdrs, (enum_t *)objp))
|
|
|
|
{
|
|
|
|
*objp = enum_objp;
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_ftype3(register XDR *xdrs, ftype3 *objp)
|
|
|
|
{
|
|
|
|
int enum_objp;
|
|
|
|
enum_objp = *objp;
|
|
|
|
if (!xdr_enum(xdrs, (enum_t *)objp))
|
|
|
|
{
|
|
|
|
*objp = enum_objp;
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_stable_how(register XDR *xdrs, stable_how *objp)
|
|
|
|
{
|
|
|
|
int enum_objp;
|
|
|
|
enum_objp = *objp;
|
|
|
|
if (!xdr_enum(xdrs, (enum_t *)objp))
|
|
|
|
{
|
|
|
|
*objp = enum_objp;
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_createmode3(register XDR *xdrs, createmode3 *objp)
|
|
|
|
{
|
|
|
|
int enum_objp;
|
|
|
|
enum_objp = *objp;
|
|
|
|
if (!xdr_enum(xdrs, (enum_t *)objp))
|
|
|
|
{
|
|
|
|
*objp = enum_objp;
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_specdata3(register XDR *xdrs, specdata3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, &objp->specdata1))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->specdata2))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_nfs_fh3(register XDR *xdrs, nfs_fh3 *objp)
|
|
|
|
{
|
2014-03-10 11:21:50 +08:00
|
|
|
if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (unsigned int *) &objp->data.data_len, NFS3_FHSIZE))
|
2010-05-20 08:10:15 +08:00
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_nfstime3(register XDR *xdrs, nfstime3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_uint32(xdrs, &objp->seconds))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->nseconds))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_fattr3(register XDR *xdrs, fattr3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_ftype3(xdrs, &objp->type))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_mode3(xdrs, &objp->mode))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->nlink))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uid3(xdrs, &objp->uid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_gid3(xdrs, &objp->gid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->size))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->used))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_specdata3(xdrs, &objp->rdev))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint64(xdrs, &objp->fsid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_fileid3(xdrs, &objp->fileid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->atime))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->mtime))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->ctime))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_post_op_attr(register XDR *xdrs, post_op_attr *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->attributes_follow))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->attributes_follow) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_fattr3(xdrs, &objp->post_op_attr_u.attributes))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case FALSE:
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_wcc_attr(register XDR *xdrs, wcc_attr *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_size3(xdrs, &objp->size))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->mtime))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->ctime))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_pre_op_attr(register XDR *xdrs, pre_op_attr *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->attributes_follow))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->attributes_follow) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_wcc_attr(xdrs, &objp->pre_op_attr_u.attributes))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case FALSE:
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_wcc_data(register XDR *xdrs, wcc_data *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_pre_op_attr(xdrs, &objp->before))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->after))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_post_op_fh3(register XDR *xdrs, post_op_fh3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->handle_follows))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->handle_follows) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->post_op_fh3_u.handle))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case FALSE:
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_time_how(register XDR *xdrs, time_how *objp)
|
|
|
|
{
|
|
|
|
int enum_objp;
|
|
|
|
enum_objp = *objp;
|
|
|
|
if (!xdr_enum(xdrs, (enum_t *)objp))
|
|
|
|
{
|
|
|
|
*objp = enum_objp;
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_mode3(register XDR *xdrs, set_mode3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_mode3(xdrs, &objp->set_mode3_u.mode))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_uid3(register XDR *xdrs, set_uid3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_uid3(xdrs, &objp->set_uid3_u.uid))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_gid3(register XDR *xdrs, set_gid3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_gid3(xdrs, &objp->set_gid3_u.gid))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_size3(register XDR *xdrs, set_size3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_size3(xdrs, &objp->set_size3_u.size))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_atime(register XDR *xdrs, set_atime *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_time_how(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case SET_TO_CLIENT_TIME:
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->set_atime_u.atime))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_set_mtime(register XDR *xdrs, set_mtime *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_time_how(xdrs, &objp->set_it))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->set_it) {
|
|
|
|
case SET_TO_CLIENT_TIME:
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->set_mtime_u.mtime))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_sattr3(register XDR *xdrs, sattr3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_set_mode3(xdrs, &objp->mode))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_set_uid3(xdrs, &objp->uid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_set_gid3(xdrs, &objp->gid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_set_size3(xdrs, &objp->size))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_set_atime(xdrs, &objp->atime))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_set_mtime(xdrs, &objp->mtime))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_diropargs3(register XDR *xdrs, diropargs3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->dir))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_filename3(xdrs, &objp->name))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_GETATTR3args(register XDR *xdrs, GETATTR3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_GETATTR3resok(register XDR *xdrs, GETATTR3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_fattr3(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_GETATTR3res(register XDR *xdrs, GETATTR3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_GETATTR3resok(xdrs, &objp->GETATTR3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_sattrguard3(register XDR *xdrs, sattrguard3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_bool(xdrs, &objp->check))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->check) {
|
|
|
|
case TRUE:
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->sattrguard3_u.obj_ctime))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case FALSE:
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SETATTR3args(register XDR *xdrs, SETATTR3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->new_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_sattrguard3(xdrs, &objp->guard))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SETATTR3resok(register XDR *xdrs, SETATTR3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->obj_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SETATTR3resfail(register XDR *xdrs, SETATTR3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->obj_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SETATTR3res(register XDR *xdrs, SETATTR3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_SETATTR3resok(xdrs, &objp->SETATTR3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_SETATTR3resfail(xdrs, &objp->SETATTR3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LOOKUP3args(register XDR *xdrs, LOOKUP3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->what))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LOOKUP3resok(register XDR *xdrs, LOOKUP3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LOOKUP3resfail(register XDR *xdrs, LOOKUP3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LOOKUP3res(register XDR *xdrs, LOOKUP3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_LOOKUP3resok(xdrs, &objp->LOOKUP3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_LOOKUP3resfail(xdrs, &objp->LOOKUP3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_ACCESS3args(register XDR *xdrs, ACCESS3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->access))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_ACCESS3resok(register XDR *xdrs, ACCESS3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->access))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_ACCESS3resfail(register XDR *xdrs, ACCESS3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_ACCESS3res(register XDR *xdrs, ACCESS3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_ACCESS3resok(xdrs, &objp->ACCESS3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_ACCESS3resfail(xdrs, &objp->ACCESS3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READLINK3args(register XDR *xdrs, READLINK3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->symlink))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READLINK3resok(register XDR *xdrs, READLINK3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->symlink_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfspath3(xdrs, &objp->data))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READLINK3resfail(register XDR *xdrs, READLINK3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->symlink_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READLINK3res(register XDR *xdrs, READLINK3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_READLINK3resok(xdrs, &objp->READLINK3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_READLINK3resfail(xdrs, &objp->READLINK3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READ3args(register XDR *xdrs, READ3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->file))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_offset3(xdrs, &objp->offset))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READ3resok(register XDR *xdrs, READ3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->file_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->eof))
|
|
|
|
return (FALSE);
|
2014-03-10 11:21:50 +08:00
|
|
|
if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (unsigned int *) &objp->data.data_len, ~0))
|
2010-05-20 08:10:15 +08:00
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READ3resfail(register XDR *xdrs, READ3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->file_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READ3res(register XDR *xdrs, READ3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_READ3resok(xdrs, &objp->READ3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_READ3resfail(xdrs, &objp->READ3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_WRITE3args(register XDR *xdrs, WRITE3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->file))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_offset3(xdrs, &objp->offset))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_stable_how(xdrs, &objp->stable))
|
|
|
|
return (FALSE);
|
2014-03-10 11:21:50 +08:00
|
|
|
if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (unsigned int *) &objp->data.data_len, ~0))
|
2010-05-20 08:10:15 +08:00
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_WRITE3resok(register XDR *xdrs, WRITE3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->file_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_stable_how(xdrs, &objp->committed))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_writeverf3(xdrs, objp->verf))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_WRITE3resfail(register XDR *xdrs, WRITE3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->file_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_WRITE3res(register XDR *xdrs, WRITE3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_WRITE3resok(xdrs, &objp->WRITE3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_WRITE3resfail(xdrs, &objp->WRITE3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_createhow3(register XDR *xdrs, createhow3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_createmode3(xdrs, &objp->mode))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->mode) {
|
|
|
|
case UNCHECKED:
|
|
|
|
case GUARDED:
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->createhow3_u.obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case EXCLUSIVE:
|
|
|
|
if (!xdr_createverf3(xdrs, objp->createhow3_u.verf))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return (FALSE);
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_CREATE3args(register XDR *xdrs, CREATE3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->where))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_createhow3(xdrs, &objp->how))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_CREATE3resok(register XDR *xdrs, CREATE3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_fh3(xdrs, &objp->obj))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_CREATE3resfail(register XDR *xdrs, CREATE3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_CREATE3res(register XDR *xdrs, CREATE3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_CREATE3resok(xdrs, &objp->CREATE3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_CREATE3resfail(xdrs, &objp->CREATE3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKDIR3args(register XDR *xdrs, MKDIR3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->where))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKDIR3resok(register XDR *xdrs, MKDIR3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_fh3(xdrs, &objp->obj))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKDIR3resfail(register XDR *xdrs, MKDIR3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKDIR3res(register XDR *xdrs, MKDIR3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_MKDIR3resok(xdrs, &objp->MKDIR3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_MKDIR3resfail(xdrs, &objp->MKDIR3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_symlinkdata3(register XDR *xdrs, symlinkdata3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->symlink_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfspath3(xdrs, &objp->symlink_data))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SYMLINK3args(register XDR *xdrs, SYMLINK3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->where))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_symlinkdata3(xdrs, &objp->symlink))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SYMLINK3resok(register XDR *xdrs, SYMLINK3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_fh3(xdrs, &objp->obj))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SYMLINK3resfail(register XDR *xdrs, SYMLINK3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_SYMLINK3res(register XDR *xdrs, SYMLINK3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_SYMLINK3resok(xdrs, &objp->SYMLINK3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_SYMLINK3resfail(xdrs, &objp->SYMLINK3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_devicedata3(register XDR *xdrs, devicedata3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->dev_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_specdata3(xdrs, &objp->spec))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_mknoddata3(register XDR *xdrs, mknoddata3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_ftype3(xdrs, &objp->type))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->type) {
|
|
|
|
case NFS3CHR:
|
|
|
|
case NFS3BLK:
|
|
|
|
if (!xdr_devicedata3(xdrs, &objp->mknoddata3_u.device))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
case NFS3SOCK:
|
|
|
|
case NFS3FIFO:
|
|
|
|
if (!xdr_sattr3(xdrs, &objp->mknoddata3_u.pipe_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKNOD3args(register XDR *xdrs, MKNOD3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->where))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_mknoddata3(xdrs, &objp->what))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKNOD3resok(register XDR *xdrs, MKNOD3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_fh3(xdrs, &objp->obj))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKNOD3resfail(register XDR *xdrs, MKNOD3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_MKNOD3res(register XDR *xdrs, MKNOD3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_MKNOD3resok(xdrs, &objp->MKNOD3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_MKNOD3resfail(xdrs, &objp->MKNOD3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_REMOVE3args(register XDR *xdrs, REMOVE3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_REMOVE3resok(register XDR *xdrs, REMOVE3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_REMOVE3resfail(register XDR *xdrs, REMOVE3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_REMOVE3res(register XDR *xdrs, REMOVE3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_REMOVE3resok(xdrs, &objp->REMOVE3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_REMOVE3resfail(xdrs, &objp->REMOVE3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RMDIR3args(register XDR *xdrs, RMDIR3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RMDIR3resok(register XDR *xdrs, RMDIR3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RMDIR3resfail(register XDR *xdrs, RMDIR3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->dir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RMDIR3res(register XDR *xdrs, RMDIR3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_RMDIR3resok(xdrs, &objp->RMDIR3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_RMDIR3resfail(xdrs, &objp->RMDIR3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RENAME3args(register XDR *xdrs, RENAME3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->from))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->to))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RENAME3resok(register XDR *xdrs, RENAME3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->fromdir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->todir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RENAME3resfail(register XDR *xdrs, RENAME3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->fromdir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->todir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_RENAME3res(register XDR *xdrs, RENAME3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_RENAME3resok(xdrs, &objp->RENAME3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_RENAME3resfail(xdrs, &objp->RENAME3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LINK3args(register XDR *xdrs, LINK3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->file))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_diropargs3(xdrs, &objp->link))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LINK3resok(register XDR *xdrs, LINK3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->file_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->linkdir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LINK3resfail(register XDR *xdrs, LINK3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->file_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->linkdir_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_LINK3res(register XDR *xdrs, LINK3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_LINK3resok(xdrs, &objp->LINK3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_LINK3resfail(xdrs, &objp->LINK3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIR3args(register XDR *xdrs, READDIR3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->dir))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookie3(xdrs, &objp->cookie))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookieverf3(xdrs, objp->cookieverf))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_entry3(register XDR *xdrs, entry3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_fileid3(xdrs, &objp->fileid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_filename3(xdrs, &objp->name))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookie3(xdrs, &objp->cookie))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_pointer(xdrs, (char **)&objp->nextentry, sizeof (entry3), (xdrproc_t) xdr_entry3))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_dirlist3(register XDR *xdrs, dirlist3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_pointer(xdrs, (char **)&objp->entries, sizeof (entry3), (xdrproc_t) xdr_entry3))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->eof))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIR3resok(register XDR *xdrs, READDIR3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookieverf3(xdrs, objp->cookieverf))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_dirlist3(xdrs, &objp->reply))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIR3resfail(register XDR *xdrs, READDIR3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIR3res(register XDR *xdrs, READDIR3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_READDIR3resok(xdrs, &objp->READDIR3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_READDIR3resfail(xdrs, &objp->READDIR3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIRPLUS3args(register XDR *xdrs, READDIRPLUS3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->dir))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookie3(xdrs, &objp->cookie))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookieverf3(xdrs, objp->cookieverf))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->dircount))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->maxcount))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_entryplus3(register XDR *xdrs, entryplus3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_fileid3(xdrs, &objp->fileid))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_filename3(xdrs, &objp->name))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookie3(xdrs, &objp->cookie))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->name_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_post_op_fh3(xdrs, &objp->name_handle))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_pointer(xdrs, (char **)&objp->nextentry, sizeof (entryplus3), (xdrproc_t) xdr_entryplus3))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_dirlistplus3(register XDR *xdrs, dirlistplus3 *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_pointer(xdrs, (char **)&objp->entries, sizeof (entryplus3), (xdrproc_t) xdr_entryplus3))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->eof))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIRPLUS3resok(register XDR *xdrs, READDIRPLUS3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_cookieverf3(xdrs, objp->cookieverf))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_dirlistplus3(xdrs, &objp->reply))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIRPLUS3resfail(register XDR *xdrs, READDIRPLUS3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_READDIRPLUS3res(register XDR *xdrs, READDIRPLUS3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_READDIRPLUS3resok(xdrs, &objp->READDIRPLUS3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_READDIRPLUS3resfail(xdrs, &objp->READDIRPLUS3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSSTAT3args(register XDR *xdrs, FSSTAT3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->fsroot))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSSTAT3resok(register XDR *xdrs, FSSTAT3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->tbytes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->fbytes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->abytes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->tfiles))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->ffiles))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->afiles))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->invarsec))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSSTAT3resfail(register XDR *xdrs, FSSTAT3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSSTAT3res(register XDR *xdrs, FSSTAT3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_FSSTAT3resok(xdrs, &objp->FSSTAT3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_FSSTAT3resfail(xdrs, &objp->FSSTAT3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSINFO3args(register XDR *xdrs, FSINFO3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->fsroot))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSINFO3resok(register XDR *xdrs, FSINFO3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->rtmax))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->rtpref))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->rtmult))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->wtmax))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->wtpref))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->wtmult))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->dtpref))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_size3(xdrs, &objp->maxfilesize))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_nfstime3(xdrs, &objp->time_delta))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->properties))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSINFO3resfail(register XDR *xdrs, FSINFO3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_FSINFO3res(register XDR *xdrs, FSINFO3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_FSINFO3resok(xdrs, &objp->FSINFO3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_FSINFO3resfail(xdrs, &objp->FSINFO3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_PATHCONF3args(register XDR *xdrs, PATHCONF3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->object))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_PATHCONF3resok(register XDR *xdrs, PATHCONF3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->linkmax))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_uint32(xdrs, &objp->name_max))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->no_trunc))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->chown_restricted))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->case_insensitive))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_bool(xdrs, &objp->case_preserving))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_PATHCONF3resfail(register XDR *xdrs, PATHCONF3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_PATHCONF3res(register XDR *xdrs, PATHCONF3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_PATHCONF3resok(xdrs, &objp->PATHCONF3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_PATHCONF3resfail(xdrs, &objp->PATHCONF3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_COMMIT3args(register XDR *xdrs, COMMIT3args *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfs_fh3(xdrs, &objp->file))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_offset3(xdrs, &objp->offset))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_count3(xdrs, &objp->count))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_COMMIT3resok(register XDR *xdrs, COMMIT3resok *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->file_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
if (!xdr_writeverf3(xdrs, objp->verf))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_COMMIT3resfail(register XDR *xdrs, COMMIT3resfail *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_wcc_data(xdrs, &objp->file_wcc))
|
|
|
|
return (FALSE);
|
|
|
|
return (TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool_t
|
|
|
|
xdr_COMMIT3res(register XDR *xdrs, COMMIT3res *objp)
|
|
|
|
{
|
|
|
|
if (!xdr_nfsstat3(xdrs, &objp->status))
|
|
|
|
return (FALSE);
|
|
|
|
switch (objp->status) {
|
|
|
|
case NFS3_OK:
|
|
|
|
if (!xdr_COMMIT3resok(xdrs, &objp->COMMIT3res_u.resok))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (!xdr_COMMIT3resfail(xdrs, &objp->COMMIT3res_u.resfail))
|
|
|
|
return (FALSE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return (TRUE);
|
|
|
|
}
|