home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume21 / amd / part03 / mount_xdr.c < prev    next >
C/C++ Source or Header  |  1990-04-11  |  3KB  |  178 lines

  1. /*
  2.  * $Id: mount_xdr.c,v 5.1 89/11/17 18:21:00 jsp Exp Locker: jsp $
  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
  13.  * provided that the above copyright notice and this paragraph are
  14.  * duplicated in all such forms and that any documentation,
  15.  * advertising materials, and other materials related to such
  16.  * distribution and use acknowledge that the software was developed
  17.  * by Imperial College of Science, Technology and Medicine, London, UK.
  18.  * The names of the College and University may not be used to endorse
  19.  * or promote products derived from this software without specific
  20.  * prior written permission.
  21.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  22.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  23.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  24.  *
  25.  *    %W% (Berkeley) %G%
  26.  */
  27.  
  28. #include "am.h"
  29. #include "mount.h"
  30.  
  31.  
  32. bool_t
  33. xdr_fhandle(xdrs, objp)
  34.     XDR *xdrs;
  35.     fhandle objp;
  36. {
  37.     if (!xdr_opaque(xdrs, objp, FHSIZE)) {
  38.         return (FALSE);
  39.     }
  40.     return (TRUE);
  41. }
  42.  
  43.  
  44.  
  45.  
  46. bool_t
  47. xdr_fhstatus(xdrs, objp)
  48.     XDR *xdrs;
  49.     fhstatus *objp;
  50. {
  51.     if (!xdr_u_int(xdrs, &objp->fhs_status)) {
  52.         return (FALSE);
  53.     }
  54.     switch (objp->fhs_status) {
  55.     case 0:
  56.         if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) {
  57.             return (FALSE);
  58.         }
  59.         break;
  60.     }
  61.     return (TRUE);
  62. }
  63.  
  64.  
  65.  
  66.  
  67. bool_t
  68. xdr_dirpath(xdrs, objp)
  69.     XDR *xdrs;
  70.     dirpath *objp;
  71. {
  72.     if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
  73.         return (FALSE);
  74.     }
  75.     return (TRUE);
  76. }
  77.  
  78.  
  79.  
  80.  
  81. bool_t
  82. xdr_name(xdrs, objp)
  83.     XDR *xdrs;
  84.     name *objp;
  85. {
  86.     if (!xdr_string(xdrs, objp, MNTNAMLEN)) {
  87.         return (FALSE);
  88.     }
  89.     return (TRUE);
  90. }
  91.  
  92.  
  93.  
  94.  
  95. bool_t
  96. xdr_mountlist(xdrs, objp)
  97.     XDR *xdrs;
  98.     mountlist *objp;
  99. {
  100.     if (!xdr_name(xdrs, &objp->ml_hostname)) {
  101.         return (FALSE);
  102.     }
  103.     if (!xdr_dirpath(xdrs, &objp->ml_directory)) {
  104.         return (FALSE);
  105.     }
  106.     if (!xdr_pointer(xdrs, (char **)&objp->ml_next, sizeof(mountlist), xdr_mountlist)) {
  107.         return (FALSE);
  108.     }
  109.     return (TRUE);
  110. }
  111.  
  112.  
  113.  
  114.  
  115. bool_t
  116. xdr_groups(xdrs, objp)
  117.     XDR *xdrs;
  118.     groups *objp;
  119. {
  120.     if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), xdr_groupnode)) {
  121.         return (FALSE);
  122.     }
  123.     return (TRUE);
  124. }
  125.  
  126.  
  127.  
  128.  
  129. bool_t
  130. xdr_groupnode(xdrs, objp)
  131.     XDR *xdrs;
  132.     groupnode *objp;
  133. {
  134.     if (!xdr_name(xdrs, &objp->gr_name)) {
  135.         return (FALSE);
  136.     }
  137.     if (!xdr_groups(xdrs, &objp->gr_next)) {
  138.         return (FALSE);
  139.     }
  140.     return (TRUE);
  141. }
  142.  
  143.  
  144.  
  145.  
  146. bool_t
  147. xdr_exports(xdrs, objp)
  148.     XDR *xdrs;
  149.     exports *objp;
  150. {
  151.     if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), xdr_exportnode)) {
  152.         return (FALSE);
  153.     }
  154.     return (TRUE);
  155. }
  156.  
  157.  
  158.  
  159.  
  160. bool_t
  161. xdr_exportnode(xdrs, objp)
  162.     XDR *xdrs;
  163.     exportnode *objp;
  164. {
  165.     if (!xdr_dirpath(xdrs, &objp->ex_dir)) {
  166.         return (FALSE);
  167.     }
  168.     if (!xdr_groups(xdrs, &objp->ex_groups)) {
  169.         return (FALSE);
  170.     }
  171.     if (!xdr_exports(xdrs, &objp->ex_next)) {
  172.         return (FALSE);
  173.     }
  174.     return (TRUE);
  175. }
  176.  
  177.  
  178.