b3d5a51e6a1b9c91e6b0e48e7caab4b7d2f09696
[oweals/busybox.git] / util-linux / nfsmount.h
1 /* vi: set sw=4 ts=4: */
2 /*
3  * This file was originally generated using rpcgen.
4  * But now we edit it by hand as needed to make it
5  * shut up...
6  */
7
8 #ifndef _NFSMOUNT_H_RPCGEN
9 #define _NFSMOUNT_H_RPCGEN
10
11 #include <rpc/rpc.h>
12
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 /*
19  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
20  * unrestricted use provided that this legend is included on all tape
21  * media and as a part of the software program in whole or part.  Users
22  * may copy or modify Sun RPC without charge, but are not authorized
23  * to license or distribute it to anyone else except as part of a product or
24  * program developed by the user or with the express written consent of
25  * Sun Microsystems, Inc.
26  *
27  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
28  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
29  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
30  *
31  * Sun RPC is provided with no support and without any obligation on the
32  * part of Sun Microsystems, Inc. to assist in its use, correction,
33  * modification or enhancement.
34  *
35  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
36  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
37  * OR ANY PART THEREOF.
38  *
39  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
40  * or profits or other special, indirect and consequential damages, even if
41  * Sun has been advised of the possibility of such damages.
42  *
43  * Sun Microsystems, Inc.
44  * 2550 Garcia Avenue
45  * Mountain View, California  94043
46  */
47 /*
48  * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
49  */
50
51 /* from @(#)mount.x     1.3 91/03/11 TIRPC 1.0 */
52 #ifndef _rpcsvc_mount_h
53 #define _rpcsvc_mount_h
54 #include <asm/types.h>
55 #define MOUNTPORT 635
56 #define MNTPATHLEN 1024
57 #define MNTNAMLEN 255
58 #define FHSIZE 32
59 #define FHSIZE3 64
60
61 typedef char fhandle[FHSIZE];
62
63 typedef struct {
64         u_int fhandle3_len;
65         char *fhandle3_val;
66 } fhandle3;
67
68 enum mountstat3 {
69         MNT_OK = 0,
70         MNT3ERR_PERM = 1,
71         MNT3ERR_NOENT = 2,
72         MNT3ERR_IO = 5,
73         MNT3ERR_ACCES = 13,
74         MNT3ERR_NOTDIR = 20,
75         MNT3ERR_INVAL = 22,
76         MNT3ERR_NAMETOOLONG = 63,
77         MNT3ERR_NOTSUPP = 10004,
78         MNT3ERR_SERVERFAULT = 10006,
79 };
80 typedef enum mountstat3 mountstat3;
81
82 struct fhstatus {
83         u_int fhs_status;
84         union {
85                 fhandle fhs_fhandle;
86         } fhstatus_u;
87 };
88 typedef struct fhstatus fhstatus;
89
90 struct mountres3_ok {
91         fhandle3 fhandle;
92         struct {
93                 u_int auth_flavours_len;
94                 int *auth_flavours_val;
95         } auth_flavours;
96 };
97 typedef struct mountres3_ok mountres3_ok;
98
99 struct mountres3 {
100         mountstat3 fhs_status;
101         union {
102                 mountres3_ok mountinfo;
103         } mountres3_u;
104 };
105 typedef struct mountres3 mountres3;
106
107 typedef char *dirpath;
108
109 typedef char *name;
110
111 typedef struct mountbody *mountlist;
112
113 struct mountbody {
114         name ml_hostname;
115         dirpath ml_directory;
116         mountlist ml_next;
117 };
118 typedef struct mountbody mountbody;
119
120 typedef struct groupnode *groups;
121
122 struct groupnode {
123         name gr_name;
124         groups gr_next;
125 };
126 typedef struct groupnode groupnode;
127
128 typedef struct exportnode *exports;
129
130 struct exportnode {
131         dirpath ex_dir;
132         groups ex_groups;
133         exports ex_next;
134 };
135 typedef struct exportnode exportnode;
136
137 struct ppathcnf {
138         int pc_link_max;
139         short pc_max_canon;
140         short pc_max_input;
141         short pc_name_max;
142         short pc_path_max;
143         short pc_pipe_buf;
144         u_char pc_vdisable;
145         char pc_xxx;
146         short pc_mask[2];
147 };
148 typedef struct ppathcnf ppathcnf;
149 #endif /*!_rpcsvc_mount_h*/
150
151 #define MOUNTPROG 100005
152 #define MOUNTVERS 1
153
154 #define MOUNTPROC_NULL 0
155 extern  void * mountproc_null_1(void *, CLIENT *);
156 extern  void * mountproc_null_1_svc(void *, struct svc_req *);
157 #define MOUNTPROC_MNT 1
158 extern  fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
159 extern  fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
160 #define MOUNTPROC_DUMP 2
161 extern  mountlist * mountproc_dump_1(void *, CLIENT *);
162 extern  mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
163 #define MOUNTPROC_UMNT 3
164 extern  void * mountproc_umnt_1(dirpath *, CLIENT *);
165 extern  void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
166 #define MOUNTPROC_UMNTALL 4
167 extern  void * mountproc_umntall_1(void *, CLIENT *);
168 extern  void * mountproc_umntall_1_svc(void *, struct svc_req *);
169 #define MOUNTPROC_EXPORT 5
170 extern  exports * mountproc_export_1(void *, CLIENT *);
171 extern  exports * mountproc_export_1_svc(void *, struct svc_req *);
172 #define MOUNTPROC_EXPORTALL 6
173 extern  exports * mountproc_exportall_1(void *, CLIENT *);
174 extern  exports * mountproc_exportall_1_svc(void *, struct svc_req *);
175 extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
176
177 #define MOUNTVERS_POSIX 2
178
179 extern  void * mountproc_null_2(void *, CLIENT *);
180 extern  void * mountproc_null_2_svc(void *, struct svc_req *);
181 extern  fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
182 extern  fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
183 extern  mountlist * mountproc_dump_2(void *, CLIENT *);
184 extern  mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
185 extern  void * mountproc_umnt_2(dirpath *, CLIENT *);
186 extern  void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
187 extern  void * mountproc_umntall_2(void *, CLIENT *);
188 extern  void * mountproc_umntall_2_svc(void *, struct svc_req *);
189 extern  exports * mountproc_export_2(void *, CLIENT *);
190 extern  exports * mountproc_export_2_svc(void *, struct svc_req *);
191 extern  exports * mountproc_exportall_2(void *, CLIENT *);
192 extern  exports * mountproc_exportall_2_svc(void *, struct svc_req *);
193 #define MOUNTPROC_PATHCONF 7
194 extern  ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
195 extern  ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
196 extern int mountprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
197
198 #define MOUNT_V3 3
199
200 #define MOUNTPROC3_NULL 0
201 extern  void * mountproc3_null_3(void *, CLIENT *);
202 extern  void * mountproc3_null_3_svc(void *, struct svc_req *);
203 #define MOUNTPROC3_MNT 1
204 extern  mountres3 * mountproc3_mnt_3(dirpath *, CLIENT *);
205 extern  mountres3 * mountproc3_mnt_3_svc(dirpath *, struct svc_req *);
206 #define MOUNTPROC3_DUMP 2
207 extern  mountlist * mountproc3_dump_3(void *, CLIENT *);
208 extern  mountlist * mountproc3_dump_3_svc(void *, struct svc_req *);
209 #define MOUNTPROC3_UMNT 3
210 extern  void * mountproc3_umnt_3(dirpath *, CLIENT *);
211 extern  void * mountproc3_umnt_3_svc(dirpath *, struct svc_req *);
212 #define MOUNTPROC3_UMNTALL 4
213 extern  void * mountproc3_umntall_3(void *, CLIENT *);
214 extern  void * mountproc3_umntall_3_svc(void *, struct svc_req *);
215 #define MOUNTPROC3_EXPORT 5
216 extern  exports * mountproc3_export_3(void *, CLIENT *);
217 extern  exports * mountproc3_export_3_svc(void *, struct svc_req *);
218 extern int mountprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
219
220 /* the xdr functions */
221
222 static  bool_t xdr_fhandle (XDR *, fhandle);
223 extern  bool_t xdr_fhandle3 (XDR *, fhandle3*);
224 extern  bool_t xdr_mountstat3 (XDR *, mountstat3*);
225 extern  bool_t xdr_fhstatus (XDR *, fhstatus*);
226 extern  bool_t xdr_mountres3_ok (XDR *, mountres3_ok*);
227 extern  bool_t xdr_mountres3 (XDR *, mountres3*);
228 extern  bool_t xdr_dirpath (XDR *, dirpath*);
229 extern  bool_t xdr_name (XDR *, name*);
230 extern  bool_t xdr_mountlist (XDR *, mountlist*);
231 extern  bool_t xdr_mountbody (XDR *, mountbody*);
232 extern  bool_t xdr_groups (XDR *, groups*);
233 extern  bool_t xdr_groupnode (XDR *, groupnode*);
234 extern  bool_t xdr_exports (XDR *, exports*);
235 extern  bool_t xdr_exportnode (XDR *, exportnode*);
236 extern  bool_t xdr_ppathcnf (XDR *, ppathcnf*);
237
238 #ifdef __cplusplus
239 }
240 #endif
241
242 #endif /* !_NFSMOUNT_H_RPCGEN */