mount.x
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:4k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* @(#)mount.x 2.1 88/08/01 4.0 RPCSRC */
  2. /* @(#)mount.x 1.2 87/09/18 Copyr 1987 Sun Micro */
  3. /*
  4.  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
  5.  * unrestricted use provided that this legend is included on all tape
  6.  * media and as a part of the software program in whole or part.  Users
  7.  * may copy or modify Sun RPC without charge, but are not authorized
  8.  * to license or distribute it to anyone else except as part of a product or
  9.  * program developed by the user.
  10.  *
  11.  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  12.  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  13.  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  14.  *
  15.  * Sun RPC is provided with no support and without any obligation on the
  16.  * part of Sun Microsystems, Inc. to assist in its use, correction,
  17.  * modification or enhancement.
  18.  *
  19.  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  20.  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
  21.  * OR ANY PART THEREOF.
  22.  *
  23.  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
  24.  * or profits or other special, indirect and consequential damages, even if
  25.  * Sun has been advised of the possibility of such damages.
  26.  *
  27.  * Sun Microsystems, Inc.
  28.  * 2550 Garcia Avenue
  29.  * Mountain View, California  94043
  30.  */
  31. /*
  32.  * Protocol description for the mount program
  33.  */
  34. const MNTPATHLEN = 1024; /* maximum bytes in a pathname argument */
  35. const MNTNAMLEN = 255; /* maximum bytes in a name argument */
  36. const FHSIZE = 32; /* size in bytes of a file handle */
  37. /*
  38.  * The fhandle is the file handle that the server passes to the client.
  39.  * All file operations are done using the file handles to refer to a file
  40.  * or a directory. The file handle can contain whatever information the
  41.  * server needs to distinguish an individual file.
  42.  */
  43. typedef opaque fhandle[FHSIZE];
  44. /*
  45.  * If a status of zero is returned, the call completed successfully, and
  46.  * a file handle for the directory follows. A non-zero status indicates
  47.  * some sort of error. The status corresponds with UNIX error numbers.
  48.  */
  49. union fhstatus switch (unsigned fhs_status) {
  50. case 0:
  51. fhandle fhs_fhandle;
  52. default:
  53. void;
  54. };
  55. /*
  56.  * The type dirpath is the pathname of a directory
  57.  */
  58. typedef string dirpath<MNTPATHLEN>;
  59. /*
  60.  * The type name is used for arbitrary names (hostnames, groupnames)
  61.  */
  62. typedef string name<MNTNAMLEN>;
  63. /*
  64.  * A list of who has what mounted
  65.  */
  66. typedef struct mountbody *mountlist;
  67. struct mountbody {
  68. name ml_hostname;
  69. dirpath ml_directory;
  70. mountlist ml_next;
  71. };
  72. /*
  73.  * A list of netgroups
  74.  */
  75. typedef struct groupnode *groups;
  76. struct groupnode {
  77. name gr_name;
  78. groups gr_next;
  79. };
  80. /*
  81.  * A list of what is exported and to whom
  82.  */
  83. typedef struct exportnode *exports;
  84. struct exportnode {
  85. dirpath ex_dir;
  86. groups ex_groups;
  87. exports ex_next;
  88. };
  89. program MOUNTPROG {
  90. /*
  91.  * Version one of the mount protocol communicates with version two
  92.  * of the NFS protocol. The only connecting point is the fhandle
  93.  * structure, which is the same for both protocols.
  94.  */
  95. version MOUNTVERS {
  96. /*
  97.  * Does no work. It is made available in all RPC services
  98.  * to allow server response testing and timing
  99.  */
  100. void
  101. MOUNTPROC_NULL(void) = 0;
  102. /*
  103.  * If fhs_status is 0, then fhs_fhandle contains the
  104.    * file handle for the directory. This file handle may
  105.  * be used in the NFS protocol. This procedure also adds
  106.  * a new entry to the mount list for this client mounting
  107.  * the directory.
  108.  * Unix authentication required.
  109.  */
  110. fhstatus
  111. MOUNTPROC_MNT(dirpath) = 1;
  112. /*
  113.  * Returns the list of remotely mounted filesystems. The
  114.  * mountlist contains one entry for each hostname and
  115.  * directory pair.
  116.  */
  117. mountlist
  118. MOUNTPROC_DUMP(void) = 2;
  119. /*
  120.  * Removes the mount list entry for the directory
  121.  * Unix authentication required.
  122.  */
  123. void
  124. MOUNTPROC_UMNT(dirpath) = 3;
  125. /*
  126.  * Removes all of the mount list entries for this client
  127.  * Unix authentication required.
  128.  */
  129. void
  130. MOUNTPROC_UMNTALL(void) = 4;
  131. /*
  132.  * Returns a list of all the exported filesystems, and which
  133.  * machines are allowed to import it.
  134.  */
  135. exports
  136. MOUNTPROC_EXPORT(void)  = 5;
  137. /*
  138.  * Identical to MOUNTPROC_EXPORT above
  139.  */
  140. exports
  141. MOUNTPROC_EXPORTALL(void) = 6;
  142. } = 1;
  143. } = 100005;