|
|
1.1 ! root 1: /* ! 2: * $Id: mount_xdr.c,v 5.2 90/06/23 22:20:21 jsp Rel $ ! 3: * ! 4: * Copyright (c) 1989 Jan-Simon Pendry ! 5: * Copyright (c) 1989 Imperial College of Science, Technology & Medicine ! 6: * Copyright (c) 1989 The Regents of the University of California. ! 7: * All rights reserved. ! 8: * ! 9: * This code is derived from software contributed to Berkeley by ! 10: * Jan-Simon Pendry at Imperial College, London. ! 11: * ! 12: * Redistribution and use in source and binary forms are permitted provided ! 13: * that: (1) source distributions retain this entire copyright notice and ! 14: * comment, and (2) distributions including binaries display the following ! 15: * acknowledgement: ``This product includes software developed by the ! 16: * University of California, Berkeley and its contributors'' in the ! 17: * documentation or other materials provided with the distribution and in ! 18: * all advertising materials mentioning features or use of this software. ! 19: * Neither the name of the University nor the names of its contributors may ! 20: * be used to endorse or promote products derived from this software without ! 21: * specific prior written permission. ! 22: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 23: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 24: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 25: * ! 26: * @(#)mount_xdr.c 5.1 (Berkeley) 7/19/90 ! 27: */ ! 28: ! 29: #include "am.h" ! 30: #include "mount.h" ! 31: ! 32: ! 33: bool_t ! 34: xdr_fhandle(xdrs, objp) ! 35: XDR *xdrs; ! 36: fhandle objp; ! 37: { ! 38: if (!xdr_opaque(xdrs, objp, FHSIZE)) { ! 39: return (FALSE); ! 40: } ! 41: return (TRUE); ! 42: } ! 43: ! 44: ! 45: ! 46: ! 47: bool_t ! 48: xdr_fhstatus(xdrs, objp) ! 49: XDR *xdrs; ! 50: fhstatus *objp; ! 51: { ! 52: if (!xdr_u_int(xdrs, &objp->fhs_status)) { ! 53: return (FALSE); ! 54: } ! 55: switch (objp->fhs_status) { ! 56: case 0: ! 57: if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) { ! 58: return (FALSE); ! 59: } ! 60: break; ! 61: } ! 62: return (TRUE); ! 63: } ! 64: ! 65: ! 66: ! 67: ! 68: bool_t ! 69: xdr_dirpath(xdrs, objp) ! 70: XDR *xdrs; ! 71: dirpath *objp; ! 72: { ! 73: if (!xdr_string(xdrs, objp, MNTPATHLEN)) { ! 74: return (FALSE); ! 75: } ! 76: return (TRUE); ! 77: } ! 78: ! 79: ! 80: ! 81: ! 82: bool_t ! 83: xdr_name(xdrs, objp) ! 84: XDR *xdrs; ! 85: name *objp; ! 86: { ! 87: if (!xdr_string(xdrs, objp, MNTNAMLEN)) { ! 88: return (FALSE); ! 89: } ! 90: return (TRUE); ! 91: } ! 92: ! 93: ! 94: ! 95: ! 96: bool_t ! 97: xdr_mountlist(xdrs, objp) ! 98: XDR *xdrs; ! 99: mountlist *objp; ! 100: { ! 101: if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct mountbody), xdr_mountbody)) { ! 102: return (FALSE); ! 103: } ! 104: return (TRUE); ! 105: } ! 106: ! 107: ! 108: ! 109: bool_t ! 110: xdr_mountbody(xdrs, objp) ! 111: XDR *xdrs; ! 112: mountbody *objp; ! 113: { ! 114: if (!xdr_name(xdrs, &objp->ml_hostname)) { ! 115: return (FALSE); ! 116: } ! 117: if (!xdr_dirpath(xdrs, &objp->ml_directory)) { ! 118: return (FALSE); ! 119: } ! 120: if (!xdr_mountlist(xdrs, &objp->ml_next)) { ! 121: return (FALSE); ! 122: } ! 123: return (TRUE); ! 124: } ! 125: ! 126: ! 127: ! 128: ! 129: bool_t ! 130: xdr_groups(xdrs, objp) ! 131: XDR *xdrs; ! 132: groups *objp; ! 133: { ! 134: if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), xdr_groupnode)) { ! 135: return (FALSE); ! 136: } ! 137: return (TRUE); ! 138: } ! 139: ! 140: ! 141: ! 142: ! 143: bool_t ! 144: xdr_groupnode(xdrs, objp) ! 145: XDR *xdrs; ! 146: groupnode *objp; ! 147: { ! 148: if (!xdr_name(xdrs, &objp->gr_name)) { ! 149: return (FALSE); ! 150: } ! 151: if (!xdr_groups(xdrs, &objp->gr_next)) { ! 152: return (FALSE); ! 153: } ! 154: return (TRUE); ! 155: } ! 156: ! 157: ! 158: ! 159: ! 160: bool_t ! 161: xdr_exports(xdrs, objp) ! 162: XDR *xdrs; ! 163: exports *objp; ! 164: { ! 165: if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), xdr_exportnode)) { ! 166: return (FALSE); ! 167: } ! 168: return (TRUE); ! 169: } ! 170: ! 171: ! 172: ! 173: ! 174: bool_t ! 175: xdr_exportnode(xdrs, objp) ! 176: XDR *xdrs; ! 177: exportnode *objp; ! 178: { ! 179: if (!xdr_dirpath(xdrs, &objp->ex_dir)) { ! 180: return (FALSE); ! 181: } ! 182: if (!xdr_groups(xdrs, &objp->ex_groups)) { ! 183: return (FALSE); ! 184: } ! 185: if (!xdr_exports(xdrs, &objp->ex_next)) { ! 186: return (FALSE); ! 187: } ! 188: return (TRUE); ! 189: } ! 190: ! 191:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.