source: rtems/cpukit/libfs/src/nfsclient/proto/mount_prot.x @ d7001e47

4.104.114.95
Last change on this file since d7001e47 was d7001e47, checked in by Ralf Corsepius <ralf.corsepius@…>, on 09/06/08 at 04:25:51

Convert to Unix file format.

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