|
|
1.1 ! root 1: /* ! 2: * $Id: mount.x,v 5.2 90/06/23 22:20:19 jsp Rel $ ! 3: * ! 4: * Copyright (c) 1990 Jan-Simon Pendry ! 5: * Copyright (c) 1990 Imperial College of Science, Technology & Medicine ! 6: * Copyright (c) 1990 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.x 5.1 (Berkeley) 7/19/90 ! 27: */ ! 28: ! 29: /* ! 30: * Protocol description for the mount program ! 31: */ ! 32: ! 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: /* ! 39: * The fhandle is the file handle that the server passes to the client. ! 40: * All file operations are done using the file handles to refer to a file ! 41: * or a directory. The file handle can contain whatever information the ! 42: * server needs to distinguish an individual file. ! 43: */ ! 44: typedef opaque fhandle[FHSIZE]; ! 45: ! 46: /* ! 47: * If a status of zero is returned, the call completed successfully, and ! 48: * a file handle for the directory follows. A non-zero status indicates ! 49: * some sort of error. The status corresponds with UNIX error numbers. ! 50: */ ! 51: union fhstatus switch (unsigned fhs_status) { ! 52: case 0: ! 53: fhandle fhs_fhandle; ! 54: default: ! 55: void; ! 56: }; ! 57: ! 58: /* ! 59: * The type dirpath is the pathname of a directory ! 60: */ ! 61: typedef string dirpath<MNTPATHLEN>; ! 62: ! 63: /* ! 64: * The type name is used for arbitrary names (hostnames, groupnames) ! 65: */ ! 66: typedef string name<MNTNAMLEN>; ! 67: ! 68: /* ! 69: * A list of who has what mounted ! 70: */ ! 71: typedef struct mountbody *mountlist; ! 72: struct mountbody { ! 73: name ml_hostname; ! 74: dirpath ml_directory; ! 75: mountlist ml_next; ! 76: }; ! 77: ! 78: /* ! 79: * A list of netgroups ! 80: */ ! 81: typedef struct groupnode *groups; ! 82: struct groupnode { ! 83: name gr_name; ! 84: groups gr_next; ! 85: }; ! 86: ! 87: /* ! 88: * A list of what is exported and to whom ! 89: */ ! 90: typedef struct exportnode *exports; ! 91: struct exportnode { ! 92: dirpath ex_dir; ! 93: groups ex_groups; ! 94: exports ex_next; ! 95: }; ! 96: ! 97: program MOUNTPROG { ! 98: /* ! 99: * Version one of the mount protocol communicates with version two ! 100: * of the NFS protocol. The only connecting point is the fhandle ! 101: * structure, which is the same for both protocols. ! 102: */ ! 103: version MOUNTVERS { ! 104: /* ! 105: * Does no work. It is made available in all RPC services ! 106: * to allow server reponse testing and timing ! 107: */ ! 108: void ! 109: MOUNTPROC_NULL(void) = 0; ! 110: ! 111: /* ! 112: * If fhs_status is 0, then fhs_fhandle contains the ! 113: * file handle for the directory. This file handle may ! 114: * be used in the NFS protocol. This procedure also adds ! 115: * a new entry to the mount list for this client mounting ! 116: * the directory. ! 117: * Unix authentication required. ! 118: */ ! 119: fhstatus ! 120: MOUNTPROC_MNT(dirpath) = 1; ! 121: ! 122: /* ! 123: * Returns the list of remotely mounted filesystems. The ! 124: * mountlist contains one entry for each hostname and ! 125: * directory pair. ! 126: */ ! 127: mountlist ! 128: MOUNTPROC_DUMP(void) = 2; ! 129: ! 130: /* ! 131: * Removes the mount list entry for the directory ! 132: * Unix authentication required. ! 133: */ ! 134: void ! 135: MOUNTPROC_UMNT(dirpath) = 3; ! 136: ! 137: /* ! 138: * Removes all of the mount list entries for this client ! 139: * Unix authentication required. ! 140: */ ! 141: void ! 142: MOUNTPROC_UMNTALL(void) = 4; ! 143: ! 144: /* ! 145: * Returns a list of all the exported filesystems, and which ! 146: * machines are allowed to import it. ! 147: */ ! 148: exports ! 149: MOUNTPROC_EXPORT(void) = 5; ! 150: ! 151: /* ! 152: * Identical to MOUNTPROC_EXPORT above ! 153: */ ! 154: exports ! 155: MOUNTPROC_EXPORTALL(void) = 6; ! 156: } = 1; ! 157: } = 100005;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.