138494Sobrien/* 2174294Sobrien * Copyright (c) 1997-2006 Erez Zadok 338494Sobrien * Copyright (c) 1990 Jan-Simon Pendry 438494Sobrien * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 538494Sobrien * Copyright (c) 1990 The Regents of the University of California. 638494Sobrien * All rights reserved. 738494Sobrien * 838494Sobrien * This code is derived from software contributed to Berkeley by 938494Sobrien * Jan-Simon Pendry at Imperial College, London. 1038494Sobrien * 1138494Sobrien * Redistribution and use in source and binary forms, with or without 1238494Sobrien * modification, are permitted provided that the following conditions 1338494Sobrien * are met: 1438494Sobrien * 1. Redistributions of source code must retain the above copyright 1538494Sobrien * notice, this list of conditions and the following disclaimer. 1638494Sobrien * 2. Redistributions in binary form must reproduce the above copyright 1738494Sobrien * notice, this list of conditions and the following disclaimer in the 1838494Sobrien * documentation and/or other materials provided with the distribution. 1938494Sobrien * 3. All advertising materials mentioning features or use of this software 2042629Sobrien * must display the following acknowledgment: 2138494Sobrien * This product includes software developed by the University of 2238494Sobrien * California, Berkeley and its contributors. 2338494Sobrien * 4. Neither the name of the University nor the names of its contributors 2438494Sobrien * may be used to endorse or promote products derived from this software 2538494Sobrien * without specific prior written permission. 2638494Sobrien * 2738494Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2838494Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2938494Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 3038494Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 3138494Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3238494Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3338494Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3438494Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3538494Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3638494Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3738494Sobrien * SUCH DAMAGE. 3838494Sobrien * 3938494Sobrien * 40174294Sobrien * File: am-utils/libamu/xdr_func.c 4138494Sobrien * 4238494Sobrien */ 4338494Sobrien 4438494Sobrien/* 4538494Sobrien * Complete list of all possible xdr functions which may be needed. 4638494Sobrien */ 4738494Sobrien#ifdef HAVE_CONFIG_H 4838494Sobrien# include <config.h> 4938494Sobrien#endif /* HAVE_CONFIG_H */ 5038494Sobrien#include <am_defs.h> 5138494Sobrien#include <amu.h> 5238494Sobrien 53174294Sobrien#ifdef __RPCSVC_MOUNT_H__ 54174294Sobrien# error IRIX6 should not include rpcsvc/mount.h 55174294Sobrien#endif /* __RPCSVC_MOUNT_H__ */ 5682794Sobrien 5738494Sobrien/* 5838494Sobrien * MACROS: 5938494Sobrien */ 60174294Sobrien#ifdef HAVE_FS_AUTOFS 61174294Sobrien# ifndef AUTOFS_MAXCOMPONENTLEN 62174294Sobrien# define AUTOFS_MAXCOMPONENTLEN 255 63174294Sobrien# endif /* not AUTOFS_MAXCOMPONENTLEN */ 64174294Sobrien# ifndef AUTOFS_MAXOPTSLEN 65174294Sobrien# define AUTOFS_MAXOPTSLEN 255 66174294Sobrien# endif /* not AUTOFS_MAXOPTSLEN */ 67174294Sobrien# ifndef AUTOFS_MAXPATHLEN 68174294Sobrien# define AUTOFS_MAXPATHLEN 1024 69174294Sobrien# endif /* not AUTOFS_MAXPATHLEN */ 70174294Sobrien#endif /* HAVE_FS_AUTOFS */ 7138494Sobrien 7238494Sobrien/* forward definitions, are they needed? */ 7338494Sobrienextern bool_t xdr_exportnode(XDR *xdrs, exportnode *objp); 7438494Sobrienextern bool_t xdr_groupnode(XDR *xdrs, groupnode *objp); 7538494Sobrienextern bool_t xdr_name(XDR *xdrs, name *objp); 7638494Sobrien 7738494Sobrien 7838494Sobrien#ifndef HAVE_XDR_ATTRSTAT 7938494Sobrienbool_t 8038494Sobrienxdr_attrstat(XDR *xdrs, nfsattrstat *objp) 8138494Sobrien{ 82174294Sobrien if (amuDebug(D_XDRTRACE)) 8338494Sobrien plog(XLOG_DEBUG, "xdr_attrstat:"); 8438494Sobrien 8538494Sobrien if (!xdr_nfsstat(xdrs, &objp->ns_status)) { 8638494Sobrien return (FALSE); 8738494Sobrien } 8838494Sobrien switch (objp->ns_status) { 8938494Sobrien case NFS_OK: 9038494Sobrien if (!xdr_fattr(xdrs, &objp->ns_u.ns_attr_u)) { 9138494Sobrien return (FALSE); 9238494Sobrien } 9338494Sobrien break; 9438494Sobrien default: 9538494Sobrien break; 9638494Sobrien } 9738494Sobrien return (TRUE); 9838494Sobrien} 9938494Sobrien#endif /* not HAVE_XDR_ATTRSTAT */ 10038494Sobrien 10138494Sobrien 10238494Sobrien#ifndef HAVE_XDR_CREATEARGS 10338494Sobrienbool_t 10438494Sobrienxdr_createargs(XDR *xdrs, nfscreateargs *objp) 10538494Sobrien{ 106174294Sobrien if (amuDebug(D_XDRTRACE)) 10738494Sobrien plog(XLOG_DEBUG, "xdr_createargs:"); 10838494Sobrien 10938494Sobrien if (!xdr_diropargs(xdrs, &objp->ca_where)) { 11038494Sobrien return (FALSE); 11138494Sobrien } 11238494Sobrien if (!xdr_sattr(xdrs, &objp->ca_attributes)) { 11338494Sobrien return (FALSE); 11438494Sobrien } 11538494Sobrien return (TRUE); 11638494Sobrien} 11738494Sobrien#endif /* not HAVE_XDR_CREATEARGS */ 11838494Sobrien 11938494Sobrien 12038494Sobrien#ifndef HAVE_XDR_DIRLIST 12138494Sobrienbool_t 12238494Sobrienxdr_dirlist(XDR *xdrs, nfsdirlist *objp) 12338494Sobrien{ 124174294Sobrien if (amuDebug(D_XDRTRACE)) 12538494Sobrien plog(XLOG_DEBUG, "xdr_dirlist:"); 12638494Sobrien 12738494Sobrien if (!xdr_pointer(xdrs, (char **) &objp->dl_entries, sizeof(nfsentry), (XDRPROC_T_TYPE) xdr_entry)) { 12838494Sobrien return (FALSE); 12938494Sobrien } 13038494Sobrien if (!xdr_bool(xdrs, &objp->dl_eof)) { 13138494Sobrien return (FALSE); 13238494Sobrien } 13338494Sobrien return (TRUE); 13438494Sobrien} 13538494Sobrien#endif /* not HAVE_XDR_DIRLIST */ 13638494Sobrien 13738494Sobrien 13838494Sobrien#ifndef HAVE_XDR_DIROPARGS 13938494Sobrienbool_t 14038494Sobrienxdr_diropargs(XDR *xdrs, nfsdiropargs *objp) 14138494Sobrien{ 142174294Sobrien if (amuDebug(D_XDRTRACE)) 14338494Sobrien plog(XLOG_DEBUG, "xdr_diropargs:"); 14438494Sobrien 14538494Sobrien if (!xdr_nfs_fh(xdrs, &objp->da_fhandle)) { 14638494Sobrien return (FALSE); 14738494Sobrien } 14838494Sobrien if (!xdr_filename(xdrs, &objp->da_name)) { 14938494Sobrien return (FALSE); 15038494Sobrien } 15138494Sobrien return (TRUE); 15238494Sobrien} 15338494Sobrien#endif /* not HAVE_XDR_DIROPARGS */ 15438494Sobrien 15538494Sobrien 15638494Sobrien#ifndef HAVE_XDR_DIROPOKRES 15738494Sobrienbool_t 15838494Sobrienxdr_diropokres(XDR *xdrs, nfsdiropokres *objp) 15938494Sobrien{ 160174294Sobrien if (amuDebug(D_XDRTRACE)) 16138494Sobrien plog(XLOG_DEBUG, "xdr_diropokres:"); 16238494Sobrien 16338494Sobrien if (!xdr_nfs_fh(xdrs, &objp->drok_fhandle)) { 16438494Sobrien return (FALSE); 16538494Sobrien } 16638494Sobrien if (!xdr_fattr(xdrs, &objp->drok_attributes)) { 16738494Sobrien return (FALSE); 16838494Sobrien } 16938494Sobrien return (TRUE); 17038494Sobrien} 17138494Sobrien#endif /* not HAVE_XDR_DIROPOKRES */ 17238494Sobrien 17338494Sobrien 17438494Sobrien#ifndef HAVE_XDR_DIROPRES 17538494Sobrienbool_t 17638494Sobrienxdr_diropres(XDR *xdrs, nfsdiropres *objp) 17738494Sobrien{ 178174294Sobrien if (amuDebug(D_XDRTRACE)) 17938494Sobrien plog(XLOG_DEBUG, "xdr_diropres:"); 18038494Sobrien 18138494Sobrien if (!xdr_nfsstat(xdrs, &objp->dr_status)) { 18238494Sobrien return (FALSE); 18338494Sobrien } 18438494Sobrien switch (objp->dr_status) { 18538494Sobrien case NFS_OK: 18638494Sobrien if (!xdr_diropokres(xdrs, &objp->dr_u.dr_drok_u)) { 18738494Sobrien return (FALSE); 18838494Sobrien } 18938494Sobrien break; 19038494Sobrien default: 19138494Sobrien break; 19238494Sobrien } 19338494Sobrien return (TRUE); 19438494Sobrien} 19538494Sobrien#endif /* not HAVE_XDR_DIROPRES */ 19638494Sobrien 19738494Sobrien 19838494Sobrien#ifndef HAVE_XDR_DIRPATH 19938494Sobrienbool_t 20038494Sobrienxdr_dirpath(XDR *xdrs, dirpath *objp) 20138494Sobrien{ 202174294Sobrien if (amuDebug(D_XDRTRACE)) 20338494Sobrien plog(XLOG_DEBUG, "xdr_dirpath:"); 20438494Sobrien 20538494Sobrien if (!xdr_string(xdrs, objp, MNTPATHLEN)) { 20638494Sobrien return (FALSE); 20738494Sobrien } 20838494Sobrien return (TRUE); 20938494Sobrien} 21038494Sobrien#endif /* not HAVE_XDR_DIRPATH */ 21138494Sobrien 21238494Sobrien 21338494Sobrien#ifndef HAVE_XDR_ENTRY 21438494Sobrienbool_t 21538494Sobrienxdr_entry(XDR *xdrs, nfsentry *objp) 21638494Sobrien{ 217174294Sobrien if (amuDebug(D_XDRTRACE)) 21838494Sobrien plog(XLOG_DEBUG, "xdr_entry:"); 21938494Sobrien 22038494Sobrien if (!xdr_u_int(xdrs, &objp->ne_fileid)) { 22138494Sobrien return (FALSE); 22238494Sobrien } 22338494Sobrien if (!xdr_filename(xdrs, &objp->ne_name)) { 22438494Sobrien return (FALSE); 22538494Sobrien } 22638494Sobrien if (!xdr_nfscookie(xdrs, objp->ne_cookie)) { 22738494Sobrien return (FALSE); 22838494Sobrien } 22938494Sobrien if (!xdr_pointer(xdrs, (char **) &objp->ne_nextentry, sizeof(nfsentry), (XDRPROC_T_TYPE) xdr_entry)) { 23038494Sobrien return (FALSE); 23138494Sobrien } 23238494Sobrien return (TRUE); 23338494Sobrien} 23438494Sobrien#endif /* not HAVE_XDR_ENTRY */ 23538494Sobrien 23638494Sobrien 23738494Sobrien#ifndef HAVE_XDR_EXPORTNODE 23838494Sobrienbool_t 23938494Sobrienxdr_exportnode(XDR *xdrs, exportnode *objp) 24038494Sobrien{ 241174294Sobrien if (amuDebug(D_XDRTRACE)) 24238494Sobrien plog(XLOG_DEBUG, "xdr_exportnode:"); 24338494Sobrien 24438494Sobrien if (!xdr_dirpath(xdrs, &objp->ex_dir)) { 24538494Sobrien return (FALSE); 24638494Sobrien } 24782794Sobrien if (!xdr_groups(xdrs, &objp->ex_groups)) { 24838494Sobrien return (FALSE); 24938494Sobrien } 25038494Sobrien if (!xdr_exports(xdrs, &objp->ex_next)) { 25138494Sobrien return (FALSE); 25238494Sobrien } 25338494Sobrien return (TRUE); 25438494Sobrien} 25538494Sobrien#endif /* not HAVE_XDR_EXPORTNODE */ 25638494Sobrien 25738494Sobrien 25838494Sobrien#ifndef HAVE_XDR_EXPORTS 25938494Sobrienbool_t 26038494Sobrienxdr_exports(XDR *xdrs, exports *objp) 26138494Sobrien{ 262174294Sobrien if (amuDebug(D_XDRTRACE)) 26338494Sobrien plog(XLOG_DEBUG, "xdr_exports:"); 26438494Sobrien 26538494Sobrien if (!xdr_pointer(xdrs, (char **) objp, sizeof(exportnode), (XDRPROC_T_TYPE) xdr_exportnode)) { 26638494Sobrien return (FALSE); 26738494Sobrien } 26838494Sobrien return (TRUE); 26938494Sobrien} 27038494Sobrien#endif /* not HAVE_XDR_EXPORTS */ 27138494Sobrien 27238494Sobrien 27338494Sobrien#ifndef HAVE_XDR_FATTR 27438494Sobrienbool_t 27538494Sobrienxdr_fattr(XDR *xdrs, nfsfattr *objp) 27638494Sobrien{ 277174294Sobrien if (amuDebug(D_XDRTRACE)) 27838494Sobrien plog(XLOG_DEBUG, "xdr_fattr:"); 27938494Sobrien 28038494Sobrien if (!xdr_ftype(xdrs, &objp->na_type)) { 28138494Sobrien return (FALSE); 28238494Sobrien } 28338494Sobrien if (!xdr_u_int(xdrs, &objp->na_mode)) { 28438494Sobrien return (FALSE); 28538494Sobrien } 28638494Sobrien if (!xdr_u_int(xdrs, &objp->na_nlink)) { 28738494Sobrien return (FALSE); 28838494Sobrien } 28938494Sobrien if (!xdr_u_int(xdrs, &objp->na_uid)) { 29038494Sobrien return (FALSE); 29138494Sobrien } 29238494Sobrien if (!xdr_u_int(xdrs, &objp->na_gid)) { 29338494Sobrien return (FALSE); 29438494Sobrien } 29538494Sobrien if (!xdr_u_int(xdrs, &objp->na_size)) { 29638494Sobrien return (FALSE); 29738494Sobrien } 29838494Sobrien if (!xdr_u_int(xdrs, &objp->na_blocksize)) { 29938494Sobrien return (FALSE); 30038494Sobrien } 30138494Sobrien if (!xdr_u_int(xdrs, &objp->na_rdev)) { 30238494Sobrien return (FALSE); 30338494Sobrien } 30438494Sobrien if (!xdr_u_int(xdrs, &objp->na_blocks)) { 30538494Sobrien return (FALSE); 30638494Sobrien } 30738494Sobrien if (!xdr_u_int(xdrs, &objp->na_fsid)) { 30838494Sobrien return (FALSE); 30938494Sobrien } 31038494Sobrien if (!xdr_u_int(xdrs, &objp->na_fileid)) { 31138494Sobrien return (FALSE); 31238494Sobrien } 31338494Sobrien if (!xdr_nfstime(xdrs, &objp->na_atime)) { 31438494Sobrien return (FALSE); 31538494Sobrien } 31638494Sobrien if (!xdr_nfstime(xdrs, &objp->na_mtime)) { 31738494Sobrien return (FALSE); 31838494Sobrien } 31938494Sobrien if (!xdr_nfstime(xdrs, &objp->na_ctime)) { 32038494Sobrien return (FALSE); 32138494Sobrien } 32238494Sobrien return (TRUE); 32338494Sobrien} 32438494Sobrien#endif /* not HAVE_XDR_FATTR */ 32538494Sobrien 32638494Sobrien 32738494Sobrien#ifndef HAVE_XDR_FHANDLE 32838494Sobrienbool_t 32938494Sobrienxdr_fhandle(XDR *xdrs, fhandle objp) 33038494Sobrien{ 331174294Sobrien if (amuDebug(D_XDRTRACE)) 33238494Sobrien plog(XLOG_DEBUG, "xdr_fhandle:"); 33338494Sobrien 33438494Sobrien if (!xdr_opaque(xdrs, objp, NFS_FHSIZE)) { 33538494Sobrien return (FALSE); 33638494Sobrien } 33738494Sobrien return (TRUE); 33838494Sobrien} 33938494Sobrien#endif /* not HAVE_XDR_FHANDLE */ 34038494Sobrien 34138494Sobrien 34238494Sobrien#ifndef HAVE_XDR_FHSTATUS 34338494Sobrienbool_t 34438494Sobrienxdr_fhstatus(XDR *xdrs, fhstatus *objp) 34538494Sobrien{ 346174294Sobrien if (amuDebug(D_XDRTRACE)) 34738494Sobrien plog(XLOG_DEBUG, "xdr_fhstatus:"); 34838494Sobrien 34938494Sobrien if (!xdr_u_int(xdrs, &objp->fhs_status)) { 35038494Sobrien return (FALSE); 35138494Sobrien } 35238494Sobrien if (objp->fhs_status == 0 && !xdr_fhandle(xdrs, objp->fhs_fh)) { 35338494Sobrien return (FALSE); 35438494Sobrien } 35538494Sobrien return (TRUE); 35638494Sobrien} 35738494Sobrien#endif /* not HAVE_XDR_FHSTATUS */ 35838494Sobrien 35938494Sobrien 36038494Sobrien#ifndef HAVE_XDR_FILENAME 36138494Sobrienbool_t 36238494Sobrienxdr_filename(XDR *xdrs, filename *objp) 36338494Sobrien{ 364174294Sobrien if (amuDebug(D_XDRTRACE)) 36538494Sobrien plog(XLOG_DEBUG, "xdr_filename:"); 36638494Sobrien 36738494Sobrien if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN)) { 36838494Sobrien return (FALSE); 36938494Sobrien } 37038494Sobrien return (TRUE); 37138494Sobrien} 37238494Sobrien#endif /* not HAVE_XDR_FILENAME */ 37338494Sobrien 37438494Sobrien 37538494Sobrien#ifndef HAVE_XDR_FTYPE 37638494Sobrienbool_t 37738494Sobrienxdr_ftype(XDR *xdrs, nfsftype *objp) 37838494Sobrien{ 379174294Sobrien enum_t local_obj = *objp; 380174294Sobrien 381174294Sobrien if (amuDebug(D_XDRTRACE)) 38238494Sobrien plog(XLOG_DEBUG, "xdr_ftype:"); 38338494Sobrien 384174294Sobrien if (!xdr_enum(xdrs, &local_obj)) { 38538494Sobrien return (FALSE); 38638494Sobrien } 38738494Sobrien return (TRUE); 38838494Sobrien} 38938494Sobrien#endif /* not HAVE_XDR_FTYPE */ 39038494Sobrien 39138494Sobrien 39238494Sobrien#ifndef HAVE_XDR_GROUPNODE 39338494Sobrienbool_t 39438494Sobrienxdr_groupnode(XDR *xdrs, groupnode *objp) 39538494Sobrien{ 396174294Sobrien if (amuDebug(D_XDRTRACE)) 39738494Sobrien plog(XLOG_DEBUG, "xdr_groupnode:"); 39838494Sobrien 39938494Sobrien if (!xdr_name(xdrs, &objp->gr_name)) { 40038494Sobrien return (FALSE); 40138494Sobrien } 40282794Sobrien if (!xdr_groups(xdrs, &objp->gr_next)) { 40338494Sobrien return (FALSE); 40438494Sobrien } 40538494Sobrien return (TRUE); 40638494Sobrien} 40738494Sobrien#endif /* not HAVE_XDR_GROUPNODE */ 40838494Sobrien 40938494Sobrien 41038494Sobrien#ifndef HAVE_XDR_GROUPS 41138494Sobrienbool_t 41282794Sobrienxdr_groups(XDR *xdrs, groups *objp) 41338494Sobrien{ 414174294Sobrien if (amuDebug(D_XDRTRACE)) 41538494Sobrien plog(XLOG_DEBUG, "xdr_groups:"); 41638494Sobrien 41738494Sobrien if (!xdr_pointer(xdrs, (char **) objp, sizeof(groupnode), (XDRPROC_T_TYPE) xdr_groupnode)) { 41838494Sobrien return (FALSE); 41938494Sobrien } 42038494Sobrien return (TRUE); 42138494Sobrien} 42238494Sobrien#endif /* not HAVE_XDR_GROUPS */ 42338494Sobrien 42438494Sobrien 42538494Sobrien#ifndef HAVE_XDR_LINKARGS 42638494Sobrienbool_t 42738494Sobrienxdr_linkargs(XDR *xdrs, nfslinkargs *objp) 42838494Sobrien{ 429174294Sobrien if (amuDebug(D_XDRTRACE)) 43038494Sobrien plog(XLOG_DEBUG, "xdr_linkargs:"); 43138494Sobrien 43238494Sobrien if (!xdr_nfs_fh(xdrs, &objp->la_fhandle)) { 43338494Sobrien return (FALSE); 43438494Sobrien } 43538494Sobrien if (!xdr_diropargs(xdrs, &objp->la_to)) { 43638494Sobrien return (FALSE); 43738494Sobrien } 43838494Sobrien return (TRUE); 43938494Sobrien} 44038494Sobrien#endif /* not HAVE_XDR_LINKARGS */ 44138494Sobrien 44238494Sobrien 44338494Sobrien#ifndef HAVE_XDR_MOUNTBODY 44438494Sobrienbool_t 44538494Sobrienxdr_mountbody(XDR *xdrs, mountbody *objp) 44638494Sobrien{ 447174294Sobrien if (amuDebug(D_XDRTRACE)) 44838494Sobrien plog(XLOG_DEBUG, "xdr_mountbody:"); 44938494Sobrien 45038494Sobrien if (!xdr_name(xdrs, &objp->ml_hostname)) { 45138494Sobrien return (FALSE); 45238494Sobrien } 45338494Sobrien if (!xdr_dirpath(xdrs, &objp->ml_directory)) { 45438494Sobrien return (FALSE); 45538494Sobrien } 45638494Sobrien if (!xdr_mountlist(xdrs, &objp->ml_next)) { 45738494Sobrien return (FALSE); 45838494Sobrien } 45938494Sobrien return (TRUE); 46038494Sobrien} 46138494Sobrien#endif /* not HAVE_XDR_MOUNTBODY */ 46238494Sobrien 46338494Sobrien 46438494Sobrien#ifndef HAVE_XDR_MOUNTLIST 46538494Sobrienbool_t 46638494Sobrienxdr_mountlist(XDR *xdrs, mountlist *objp) 46738494Sobrien{ 468174294Sobrien if (amuDebug(D_XDRTRACE)) 46938494Sobrien plog(XLOG_DEBUG, "xdr_mountlist:"); 47038494Sobrien 47138494Sobrien if (!xdr_pointer(xdrs, (char **) objp, sizeof(mountbody), (XDRPROC_T_TYPE) xdr_mountbody)) { 47238494Sobrien return (FALSE); 47338494Sobrien } 47438494Sobrien return (TRUE); 47538494Sobrien} 47638494Sobrien#endif /* not HAVE_XDR_MOUNTLIST */ 47738494Sobrien 47838494Sobrien 47938494Sobrien#ifndef HAVE_XDR_NAME 48038494Sobrienbool_t 48138494Sobrienxdr_name(XDR *xdrs, name *objp) 48238494Sobrien{ 483174294Sobrien if (amuDebug(D_XDRTRACE)) 48438494Sobrien plog(XLOG_DEBUG, "xdr_name:"); 48538494Sobrien 48638494Sobrien if (!xdr_string(xdrs, objp, MNTNAMLEN)) { 48738494Sobrien return (FALSE); 48838494Sobrien } 48938494Sobrien return (TRUE); 49038494Sobrien} 49138494Sobrien#endif /* not HAVE_XDR_NAME */ 49238494Sobrien 49338494Sobrien 49438494Sobrien#ifndef HAVE_XDR_NFS_FH 49538494Sobrienbool_t 49638494Sobrienxdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp) 49738494Sobrien{ 498174294Sobrien if (amuDebug(D_XDRTRACE)) 49938494Sobrien plog(XLOG_DEBUG, "xdr_nfs_fh:"); 50038494Sobrien 50138494Sobrien if (!xdr_opaque(xdrs, (caddr_t) objp->fh_data, NFS_FHSIZE)) { 50238494Sobrien return (FALSE); 50338494Sobrien } 50438494Sobrien return (TRUE); 50538494Sobrien} 50638494Sobrien#endif /* not HAVE_XDR_NFS_FH */ 50738494Sobrien 50838494Sobrien 50938494Sobrien#ifndef HAVE_XDR_NFSCOOKIE 51038494Sobrienbool_t 51138494Sobrienxdr_nfscookie(XDR *xdrs, nfscookie objp) 51238494Sobrien{ 513174294Sobrien if (amuDebug(D_XDRTRACE)) 51438494Sobrien plog(XLOG_DEBUG, "xdr_nfscookie:"); 51538494Sobrien 51638494Sobrien if (!xdr_opaque(xdrs, objp, NFS_COOKIESIZE)) { 51738494Sobrien return (FALSE); 51838494Sobrien } 51938494Sobrien return (TRUE); 52038494Sobrien} 52138494Sobrien#endif /* not HAVE_XDR_NFSCOOKIE */ 52238494Sobrien 52338494Sobrien 52438494Sobrien#ifndef HAVE_XDR_NFSPATH 52538494Sobrienbool_t 52638494Sobrienxdr_nfspath(XDR *xdrs, nfspath *objp) 52738494Sobrien{ 528174294Sobrien if (amuDebug(D_XDRTRACE)) 52938494Sobrien plog(XLOG_DEBUG, "xdr_nfspath:"); 53038494Sobrien 53138494Sobrien if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN)) { 53238494Sobrien return (FALSE); 53338494Sobrien } 53438494Sobrien return (TRUE); 53538494Sobrien} 53638494Sobrien#endif /* not HAVE_XDR_NFSPATH */ 53738494Sobrien 53838494Sobrien 53938494Sobrien#ifndef HAVE_XDR_NFSSTAT 54038494Sobrienbool_t 54138494Sobrienxdr_nfsstat(XDR *xdrs, nfsstat *objp) 54238494Sobrien{ 543174294Sobrien enum_t local_obj = *objp; 544174294Sobrien 545174294Sobrien if (amuDebug(D_XDRTRACE)) 54638494Sobrien plog(XLOG_DEBUG, "xdr_nfsstat:"); 54738494Sobrien 548174294Sobrien if (!xdr_enum(xdrs, &local_obj)) { 54938494Sobrien return (FALSE); 55038494Sobrien } 55138494Sobrien return (TRUE); 55238494Sobrien} 55338494Sobrien#endif /* not HAVE_XDR_NFSSTAT */ 55438494Sobrien 55538494Sobrien 55638494Sobrien#ifndef HAVE_XDR_NFSTIME 55738494Sobrienbool_t 55838494Sobrienxdr_nfstime(XDR *xdrs, nfstime *objp) 55938494Sobrien{ 560174294Sobrien if (amuDebug(D_XDRTRACE)) 56138494Sobrien plog(XLOG_DEBUG, "xdr_nfstime:"); 56238494Sobrien 56338494Sobrien if (!xdr_u_int(xdrs, (u_int *) &objp->nt_seconds)) { 56438494Sobrien return (FALSE); 56538494Sobrien } 56638494Sobrien if (!xdr_u_int(xdrs, (u_int *) &objp->nt_useconds)) { 56738494Sobrien return (FALSE); 56838494Sobrien } 56938494Sobrien return (TRUE); 57038494Sobrien} 57138494Sobrien#endif /* not HAVE_XDR_NFSTIME */ 57238494Sobrien 57338494Sobrien 57438494Sobrien#ifndef HAVE_XDR_POINTER 57538494Sobrienbool_t 57638494Sobrienxdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj) 57738494Sobrien{ 578174294Sobrien if (amuDebug(D_XDRTRACE)) 57938494Sobrien plog(XLOG_DEBUG, "xdr_pointer:"); 58038494Sobrien 58138494Sobrien bool_t more_data; 58238494Sobrien 58338494Sobrien more_data = (*objpp != NULL); 58438494Sobrien if (!xdr_bool(xdrs, &more_data)) { 58538494Sobrien return (FALSE); 58638494Sobrien } 58738494Sobrien if (!more_data) { 58838494Sobrien *objpp = NULL; 58938494Sobrien return (TRUE); 59038494Sobrien } 59138494Sobrien 59238494Sobrien return (xdr_reference(xdrs, objpp, obj_size, xdr_obj)); 59338494Sobrien} 59438494Sobrien#endif /* not HAVE_XDR_POINTER */ 59538494Sobrien 59638494Sobrien 59738494Sobrien#ifndef HAVE_XDR_READARGS 59838494Sobrienbool_t 59938494Sobrienxdr_readargs(XDR *xdrs, nfsreadargs *objp) 60038494Sobrien{ 601174294Sobrien if (amuDebug(D_XDRTRACE)) 60238494Sobrien plog(XLOG_DEBUG, "xdr_readargs:"); 60338494Sobrien 60438494Sobrien if (!xdr_nfs_fh(xdrs, &objp->ra_fhandle)) { 60538494Sobrien return (FALSE); 60638494Sobrien } 60738494Sobrien if (!xdr_u_int(xdrs, &objp->ra_offset)) { 60838494Sobrien return (FALSE); 60938494Sobrien } 61038494Sobrien if (!xdr_u_int(xdrs, &objp->ra_count)) { 61138494Sobrien return (FALSE); 61238494Sobrien } 61338494Sobrien if (!xdr_u_int(xdrs, &objp->ra_totalcount)) { 61438494Sobrien return (FALSE); 61538494Sobrien } 61638494Sobrien return (TRUE); 61738494Sobrien} 61838494Sobrien#endif /* not HAVE_XDR_READARGS */ 61938494Sobrien 62038494Sobrien 62138494Sobrien#ifndef HAVE_XDR_READDIRARGS 62238494Sobrienbool_t 62338494Sobrienxdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp) 62438494Sobrien{ 625174294Sobrien if (amuDebug(D_XDRTRACE)) 62638494Sobrien plog(XLOG_DEBUG, "xdr_readdirargs:"); 62738494Sobrien 62838494Sobrien if (!xdr_nfs_fh(xdrs, &objp->rda_fhandle)) { 62938494Sobrien return (FALSE); 63038494Sobrien } 63138494Sobrien if (!xdr_nfscookie(xdrs, objp->rda_cookie)) { 63238494Sobrien return (FALSE); 63338494Sobrien } 63438494Sobrien if (!xdr_u_int(xdrs, &objp->rda_count)) { 63538494Sobrien return (FALSE); 63638494Sobrien } 63738494Sobrien return (TRUE); 63838494Sobrien} 63938494Sobrien#endif /* not HAVE_XDR_READDIRARGS */ 64038494Sobrien 64138494Sobrien 64238494Sobrien#ifndef HAVE_XDR_READDIRRES 64338494Sobrienbool_t 64438494Sobrienxdr_readdirres(XDR *xdrs, nfsreaddirres *objp) 64538494Sobrien{ 646174294Sobrien if (amuDebug(D_XDRTRACE)) 64738494Sobrien plog(XLOG_DEBUG, "xdr_readdirres:"); 64838494Sobrien 64938494Sobrien if (!xdr_nfsstat(xdrs, &objp->rdr_status)) { 65038494Sobrien return (FALSE); 65138494Sobrien } 65238494Sobrien switch (objp->rdr_status) { 65338494Sobrien case NFS_OK: 65438494Sobrien if (!xdr_dirlist(xdrs, &objp->rdr_u.rdr_reply_u)) { 65538494Sobrien return (FALSE); 65638494Sobrien } 65738494Sobrien break; 65838494Sobrien default: 65938494Sobrien break; 66038494Sobrien } 66138494Sobrien return (TRUE); 66238494Sobrien} 66338494Sobrien#endif /* not HAVE_XDR_READDIRRES */ 66438494Sobrien 66538494Sobrien 66638494Sobrien#ifndef HAVE_XDR_READLINKRES 66738494Sobrienbool_t 66838494Sobrienxdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp) 66938494Sobrien{ 670174294Sobrien if (amuDebug(D_XDRTRACE)) 67138494Sobrien plog(XLOG_DEBUG, "xdr_readlinkres:"); 67238494Sobrien 67338494Sobrien if (!xdr_nfsstat(xdrs, &objp->rlr_status)) { 67438494Sobrien return (FALSE); 67538494Sobrien } 67638494Sobrien switch (objp->rlr_status) { 67738494Sobrien case NFS_OK: 67838494Sobrien if (!xdr_nfspath(xdrs, &objp->rlr_u.rlr_data_u)) { 67938494Sobrien return (FALSE); 68038494Sobrien } 68138494Sobrien break; 68238494Sobrien default: 68338494Sobrien break; 68438494Sobrien } 68538494Sobrien return (TRUE); 68638494Sobrien} 68738494Sobrien#endif /* not HAVE_XDR_READLINKRES */ 68838494Sobrien 68938494Sobrien 69038494Sobrien#ifndef HAVE_XDR_READOKRES 69138494Sobrienbool_t 69238494Sobrienxdr_readokres(XDR *xdrs, nfsreadokres *objp) 69338494Sobrien{ 694174294Sobrien if (amuDebug(D_XDRTRACE)) 69538494Sobrien plog(XLOG_DEBUG, "xdr_readokres:"); 69638494Sobrien 69738494Sobrien if (!xdr_fattr(xdrs, &objp->raok_attributes)) { 69838494Sobrien return (FALSE); 69938494Sobrien } 70038494Sobrien if (!xdr_bytes(xdrs, 70138494Sobrien (char **) & objp->raok_u.raok_val_u, 70238494Sobrien (u_int *) & objp->raok_u.raok_len_u, 70338494Sobrien NFS_MAXDATA)) { 70438494Sobrien return (FALSE); 70538494Sobrien } 70638494Sobrien return (TRUE); 70738494Sobrien} 70838494Sobrien#endif /* not HAVE_XDR_READOKRES */ 70938494Sobrien 71038494Sobrien 71138494Sobrien#ifndef HAVE_XDR_READRES 71238494Sobrienbool_t 71338494Sobrienxdr_readres(XDR *xdrs, nfsreadres *objp) 71438494Sobrien{ 715174294Sobrien if (amuDebug(D_XDRTRACE)) 71638494Sobrien plog(XLOG_DEBUG, "xdr_readres:"); 71738494Sobrien 71838494Sobrien if (!xdr_nfsstat(xdrs, &objp->rr_status)) { 71938494Sobrien return (FALSE); 72038494Sobrien } 72138494Sobrien switch (objp->rr_status) { 72238494Sobrien case NFS_OK: 72338494Sobrien if (!xdr_readokres(xdrs, &objp->rr_u.rr_reply_u)) { 72438494Sobrien return (FALSE); 72538494Sobrien } 72638494Sobrien break; 72738494Sobrien default: 72838494Sobrien break; 72938494Sobrien } 73038494Sobrien return (TRUE); 73138494Sobrien} 73238494Sobrien#endif /* not HAVE_XDR_READRES */ 73338494Sobrien 73438494Sobrien 73538494Sobrien#ifndef HAVE_XDR_RENAMEARGS 73638494Sobrienbool_t 73738494Sobrienxdr_renameargs(XDR *xdrs, nfsrenameargs *objp) 73838494Sobrien{ 739174294Sobrien if (amuDebug(D_XDRTRACE)) 74038494Sobrien plog(XLOG_DEBUG, "xdr_renameargs:"); 74138494Sobrien 74238494Sobrien if (!xdr_diropargs(xdrs, &objp->rna_from)) { 74338494Sobrien return (FALSE); 74438494Sobrien } 74538494Sobrien if (!xdr_diropargs(xdrs, &objp->rna_to)) { 74638494Sobrien return (FALSE); 74738494Sobrien } 74838494Sobrien return (TRUE); 74938494Sobrien} 75038494Sobrien#endif /* not HAVE_XDR_RENAMEARGS */ 75138494Sobrien 75238494Sobrien 75338494Sobrien#ifndef HAVE_XDR_SATTR 75438494Sobrienbool_t 75538494Sobrienxdr_sattr(XDR *xdrs, nfssattr *objp) 75638494Sobrien{ 757174294Sobrien if (amuDebug(D_XDRTRACE)) 75838494Sobrien plog(XLOG_DEBUG, "xdr_sattr:"); 75938494Sobrien 76038494Sobrien if (!xdr_u_int(xdrs, &objp->sa_mode)) { 76138494Sobrien return (FALSE); 76238494Sobrien } 76338494Sobrien if (!xdr_u_int(xdrs, &objp->sa_uid)) { 76438494Sobrien return (FALSE); 76538494Sobrien } 76638494Sobrien if (!xdr_u_int(xdrs, &objp->sa_gid)) { 76738494Sobrien return (FALSE); 76838494Sobrien } 76938494Sobrien if (!xdr_u_int(xdrs, &objp->sa_size)) { 77038494Sobrien return (FALSE); 77138494Sobrien } 77238494Sobrien if (!xdr_nfstime(xdrs, &objp->sa_atime)) { 77338494Sobrien return (FALSE); 77438494Sobrien } 77538494Sobrien if (!xdr_nfstime(xdrs, &objp->sa_mtime)) { 77638494Sobrien return (FALSE); 77738494Sobrien } 77838494Sobrien return (TRUE); 77938494Sobrien} 78038494Sobrien#endif /* not HAVE_XDR_SATTR */ 78138494Sobrien 78238494Sobrien 78338494Sobrien#ifndef HAVE_XDR_SATTRARGS 78438494Sobrienbool_t 78538494Sobrienxdr_sattrargs(XDR *xdrs, nfssattrargs *objp) 78638494Sobrien{ 787174294Sobrien if (amuDebug(D_XDRTRACE)) 78838494Sobrien plog(XLOG_DEBUG, "xdr_sattrargs:"); 78938494Sobrien 79038494Sobrien if (!xdr_nfs_fh(xdrs, &objp->sag_fhandle)) { 79138494Sobrien return (FALSE); 79238494Sobrien } 79338494Sobrien if (!xdr_sattr(xdrs, &objp->sag_attributes)) { 79438494Sobrien return (FALSE); 79538494Sobrien } 79638494Sobrien return (TRUE); 79738494Sobrien} 79838494Sobrien#endif /* not HAVE_XDR_SATTRARGS */ 79938494Sobrien 80038494Sobrien 80138494Sobrien#ifndef HAVE_XDR_STATFSOKRES 80238494Sobrienbool_t 80338494Sobrienxdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp) 80438494Sobrien{ 805174294Sobrien if (amuDebug(D_XDRTRACE)) 80638494Sobrien plog(XLOG_DEBUG, "xdr_statfsokres:"); 80738494Sobrien 80838494Sobrien if (!xdr_u_int(xdrs, &objp->sfrok_tsize)) { 80938494Sobrien return (FALSE); 81038494Sobrien } 81138494Sobrien if (!xdr_u_int(xdrs, &objp->sfrok_bsize)) { 81238494Sobrien return (FALSE); 81338494Sobrien } 81438494Sobrien if (!xdr_u_int(xdrs, &objp->sfrok_blocks)) { 81538494Sobrien return (FALSE); 81638494Sobrien } 81738494Sobrien if (!xdr_u_int(xdrs, &objp->sfrok_bfree)) { 81838494Sobrien return (FALSE); 81938494Sobrien } 82038494Sobrien if (!xdr_u_int(xdrs, &objp->sfrok_bavail)) { 82138494Sobrien return (FALSE); 82238494Sobrien } 82338494Sobrien return (TRUE); 82438494Sobrien} 82538494Sobrien#endif /* not HAVE_XDR_STATFSOKRES */ 82638494Sobrien 82738494Sobrien 82838494Sobrien#ifndef HAVE_XDR_STATFSRES 82938494Sobrienbool_t 83038494Sobrienxdr_statfsres(XDR *xdrs, nfsstatfsres *objp) 83138494Sobrien{ 832174294Sobrien if (amuDebug(D_XDRTRACE)) 83338494Sobrien plog(XLOG_DEBUG, "xdr_statfsres:"); 83438494Sobrien 83538494Sobrien if (!xdr_nfsstat(xdrs, &objp->sfr_status)) { 83638494Sobrien return (FALSE); 83738494Sobrien } 83838494Sobrien switch (objp->sfr_status) { 83938494Sobrien case NFS_OK: 84038494Sobrien if (!xdr_statfsokres(xdrs, &objp->sfr_u.sfr_reply_u)) { 84138494Sobrien return (FALSE); 84238494Sobrien } 84338494Sobrien break; 84438494Sobrien default: 84538494Sobrien break; 84638494Sobrien } 84738494Sobrien return (TRUE); 84838494Sobrien} 84938494Sobrien#endif /* not HAVE_XDR_STATFSRES */ 85038494Sobrien 85138494Sobrien 85238494Sobrien#ifndef HAVE_XDR_SYMLINKARGS 85338494Sobrienbool_t 85438494Sobrienxdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp) 85538494Sobrien{ 856174294Sobrien if (amuDebug(D_XDRTRACE)) 85738494Sobrien plog(XLOG_DEBUG, "xdr_symlinkargs:"); 85838494Sobrien 85938494Sobrien if (!xdr_diropargs(xdrs, &objp->sla_from)) { 86038494Sobrien return (FALSE); 86138494Sobrien } 86238494Sobrien if (!xdr_nfspath(xdrs, &objp->sla_to)) { 86338494Sobrien return (FALSE); 86438494Sobrien } 86538494Sobrien if (!xdr_sattr(xdrs, &objp->sla_attributes)) { 86638494Sobrien return (FALSE); 86738494Sobrien } 86838494Sobrien return (TRUE); 86938494Sobrien} 87038494Sobrien#endif /* not HAVE_XDR_SYMLINKARGS */ 87138494Sobrien 87238494Sobrien 87338494Sobrien#ifndef HAVE_XDR_WRITEARGS 87438494Sobrienbool_t 87538494Sobrienxdr_writeargs(XDR *xdrs, nfswriteargs *objp) 87638494Sobrien{ 877174294Sobrien if (amuDebug(D_XDRTRACE)) 87838494Sobrien plog(XLOG_DEBUG, "xdr_writeargs:"); 87938494Sobrien 88038494Sobrien if (!xdr_nfs_fh(xdrs, &objp->wra_fhandle)) { 88138494Sobrien return (FALSE); 88238494Sobrien } 88338494Sobrien if (!xdr_u_int(xdrs, &objp->wra_beginoffset)) { 88438494Sobrien return (FALSE); 88538494Sobrien } 88638494Sobrien if (!xdr_u_int(xdrs, &objp->wra_offset)) { 88738494Sobrien return (FALSE); 88838494Sobrien } 88938494Sobrien if (!xdr_u_int(xdrs, &objp->wra_totalcount)) { 89038494Sobrien return (FALSE); 89138494Sobrien } 89238494Sobrien if (!xdr_bytes(xdrs, 89338494Sobrien (char **) & objp->wra_u.wra_val_u, 89438494Sobrien (u_int *) & objp->wra_u.wra_len_u, 89538494Sobrien NFS_MAXDATA)) { 89638494Sobrien return (FALSE); 89738494Sobrien } 89838494Sobrien return (TRUE); 89938494Sobrien} 90038494Sobrien#endif /* not HAVE_XDR_WRITEARGS */ 901174294Sobrien 902174294Sobrien 903174294Sobrien/* 904174294Sobrien * NFS V3 XDR FUNCTIONS: 905174294Sobrien */ 906174294Sobrien#ifdef HAVE_FS_NFS3 907174294Sobrienbool_t 908174294Sobrienxdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp) 909174294Sobrien{ 910174294Sobrien if (amuDebug(D_XDRTRACE)) 911174294Sobrien plog(XLOG_DEBUG, "xdr_am_fhandle3:"); 912174294Sobrien 913174294Sobrien if (!xdr_bytes(xdrs, 914174294Sobrien (char **) &objp->fhandle3_val, 915174294Sobrien (u_int *) &objp->fhandle3_len, 916174294Sobrien AM_FHSIZE3)) 917174294Sobrien return (FALSE); 918174294Sobrien return (TRUE); 919174294Sobrien} 920174294Sobrien 921174294Sobrien 922174294Sobrienbool_t 923174294Sobrienxdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp) 924174294Sobrien{ 925174294Sobrien enum_t local_obj = *objp; 926174294Sobrien 927174294Sobrien if (amuDebug(D_XDRTRACE)) 928174294Sobrien plog(XLOG_DEBUG, "xdr_am_mountstat3:"); 929174294Sobrien 930174294Sobrien if (!xdr_enum(xdrs, &local_obj)) 931174294Sobrien return (FALSE); 932174294Sobrien return (TRUE); 933174294Sobrien} 934174294Sobrien 935174294Sobrien 936174294Sobrienbool_t 937174294Sobrienxdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp) 938174294Sobrien{ 939174294Sobrien if (amuDebug(D_XDRTRACE)) 940174294Sobrien plog(XLOG_DEBUG, "xdr_am_mountres3_ok:"); 941174294Sobrien 942174294Sobrien if (!xdr_am_fhandle3(xdrs, &objp->fhandle)) 943174294Sobrien return (FALSE); 944174294Sobrien if (!xdr_array(xdrs, 945174294Sobrien (char **) ((voidp) &objp->auth_flavors.auth_flavors_val), 946174294Sobrien (u_int *) &objp->auth_flavors.auth_flavors_len, 947174294Sobrien ~0, 948174294Sobrien sizeof(int), 949174294Sobrien (XDRPROC_T_TYPE) xdr_int)) 950174294Sobrien return (FALSE); 951174294Sobrien return (TRUE); 952174294Sobrien} 953174294Sobrien 954174294Sobrien 955174294Sobrienbool_t 956174294Sobrienxdr_am_mountres3(XDR *xdrs, am_mountres3 *objp) 957174294Sobrien{ 958174294Sobrien if (amuDebug(D_XDRTRACE)) 959174294Sobrien plog(XLOG_DEBUG, "xdr_am_mountres3:"); 960174294Sobrien 961174294Sobrien if (!xdr_am_mountstat3(xdrs, &objp->fhs_status)) 962174294Sobrien return (FALSE); 963174294Sobrien 964174294Sobrien if (objp->fhs_status == AM_MNT3_OK) { 965174294Sobrien if (!xdr_am_mountres3_ok(xdrs, &objp->mountres3_u.mountinfo)) 966174294Sobrien return (FALSE); 967174294Sobrien } 968174294Sobrien return (TRUE); 969174294Sobrien} 970174294Sobrien 971174294Sobrien 972174294Sobrienbool_t 973174294Sobrienxdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp) 974174294Sobrien{ 975174294Sobrien if (amuDebug(D_XDRTRACE)) 976174294Sobrien plog(XLOG_DEBUG, "xdr_am_diropargs3:"); 977174294Sobrien 978174294Sobrien if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) 979174294Sobrien return (FALSE); 980174294Sobrien if (!xdr_am_filename3(xdrs, &objp->name)) 981174294Sobrien return (FALSE); 982174294Sobrien return (TRUE); 983174294Sobrien} 984174294Sobrien 985174294Sobrien 986174294Sobrienbool_t 987174294Sobrienxdr_am_filename3(XDR *xdrs, am_filename3 *objp) 988174294Sobrien{ 989174294Sobrien if (amuDebug(D_XDRTRACE)) 990174294Sobrien plog(XLOG_DEBUG, "xdr_am_filename3:"); 991174294Sobrien 992174294Sobrien if (!xdr_string(xdrs, objp, ~0)) 993174294Sobrien return (FALSE); 994174294Sobrien return (TRUE); 995174294Sobrien} 996174294Sobrien 997174294Sobrien 998174294Sobrienbool_t 999174294Sobrienxdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp) 1000174294Sobrien{ 1001174294Sobrien if (amuDebug(D_XDRTRACE)) 1002174294Sobrien plog(XLOG_DEBUG, "xdr_am_LOOKUP3args:"); 1003174294Sobrien 1004174294Sobrien if (!xdr_am_diropargs3(xdrs, &objp->what)) 1005174294Sobrien return (FALSE); 1006174294Sobrien return (TRUE); 1007174294Sobrien} 1008174294Sobrien 1009174294Sobrien 1010174294Sobrienbool_t 1011174294Sobrienxdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp) 1012174294Sobrien{ 1013174294Sobrien if (amuDebug(D_XDRTRACE)) 1014174294Sobrien plog(XLOG_DEBUG, "xdr_am_LOOKUP3res:"); 1015174294Sobrien 1016174294Sobrien if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1017174294Sobrien return (FALSE); 1018174294Sobrien switch (objp->status) { 1019174294Sobrien case AM_NFS3_OK: 1020174294Sobrien if (!xdr_am_LOOKUP3resok(xdrs, &objp->res_u.ok)) 1021174294Sobrien return (FALSE); 1022174294Sobrien break; 1023174294Sobrien default: 1024174294Sobrien if (!xdr_am_LOOKUP3resfail(xdrs, &objp->res_u.fail)) 1025174294Sobrien return (FALSE); 1026174294Sobrien break; 1027174294Sobrien } 1028174294Sobrien return (TRUE); 1029174294Sobrien} 1030174294Sobrien 1031174294Sobrien 1032174294Sobrienbool_t 1033174294Sobrienxdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp) 1034174294Sobrien{ 1035174294Sobrien if (amuDebug(D_XDRTRACE)) 1036174294Sobrien plog(XLOG_DEBUG, "xdr_am_LOOKUP3resfail:"); 1037174294Sobrien 1038174294Sobrien /* 1039174294Sobrien * Don't xdr post_op_attr: amd doesn't need them, but they require many 1040174294Sobrien * additional xdr functions. 1041174294Sobrien */ 1042174294Sobrien#if 0 1043174294Sobrien if (!xdr_post_op_attr(xdrs, &objp->dir_attributes)) 1044174294Sobrien return (FALSE); 1045174294Sobrien#endif 1046174294Sobrien return (TRUE); 1047174294Sobrien} 1048174294Sobrien 1049174294Sobrien 1050174294Sobrienbool_t 1051174294Sobrienxdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp) 1052174294Sobrien{ 1053174294Sobrien if (amuDebug(D_XDRTRACE)) 1054174294Sobrien plog(XLOG_DEBUG, "xdr_am_LOOKUP3resok:"); 1055174294Sobrien 1056174294Sobrien if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 1057174294Sobrien return (FALSE); 1058174294Sobrien /* 1059174294Sobrien * Don't xdr post_op_attr: amd doesn't need them, but they require many 1060174294Sobrien * additional xdr functions. 1061174294Sobrien */ 1062174294Sobrien#if 0 1063174294Sobrien if (!xdr_post_op_attr(xdrs, &objp->obj_attributes)) 1064174294Sobrien return (FALSE); 1065174294Sobrien if (!xdr_post_op_attr(xdrs, &objp->dir_attributes)) 1066174294Sobrien return (FALSE); 1067174294Sobrien#endif 1068174294Sobrien return (TRUE); 1069174294Sobrien} 1070174294Sobrien 1071174294Sobrien 1072174294Sobrienbool_t 1073174294Sobrienxdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp) 1074174294Sobrien{ 1075174294Sobrien if (amuDebug(D_XDRTRACE)) 1076174294Sobrien plog(XLOG_DEBUG, "xdr_am_nfs_fh3:"); 1077174294Sobrien 1078174294Sobrien if (!xdr_u_int(xdrs, &objp->am_fh3_length)) 1079174294Sobrien return (FALSE); 1080174294Sobrien if (objp->am_fh3_length > AM_FHSIZE3) 1081174294Sobrien return (FALSE); 1082174294Sobrien if (!xdr_opaque(xdrs, objp->am_fh3_data, objp->am_fh3_length)) 1083174294Sobrien return (FALSE); 1084174294Sobrien return (TRUE); 1085174294Sobrien} 1086174294Sobrien 1087174294Sobrien 1088174294Sobrienbool_t 1089174294Sobrienxdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp) 1090174294Sobrien{ 1091174294Sobrien if (amuDebug(D_XDRTRACE)) 1092174294Sobrien plog(XLOG_DEBUG, "xdr_am_nfsstat3:"); 1093174294Sobrien 1094174294Sobrien if (!xdr_enum(xdrs, (enum_t *)objp)) 1095174294Sobrien return (FALSE); 1096174294Sobrien return (TRUE); 1097174294Sobrien} 1098174294Sobrien#endif /* not HAVE_FS_NFS3 */ 1099