xref: /nrf52832-nimble/rt-thread/components/dfs/filesystems/nfs/mount.x (revision 104654410c56c573564690304ae786df310c91fc)
1 %/* This file is copied from RFC1813
2 % * Copyright 1995 Sun Micrososystems (I assume)
3 % */
4 
5 const MNTPATHLEN = 1024;  /* Maximum bytes in a path name */
6 const MNTNAMLEN = 255;   /* Maximum bytes in a name */
7 const FHSIZE3 = 64;    /* Maximum bytes in a V3 file handle */
8 
9 typedef opaque fhandle3<FHSIZE3>;
10 typedef string dirpath<MNTPATHLEN>;
11 typedef string name<MNTNAMLEN>;
12 
13 typedef struct exportnode *exports;
14 typedef struct groupnode *groups;
15 typedef struct mountbody *mountlist;
16 
17 enum mountstat3 {
18 	MNT3_OK = 0,                 /* no error */
19 	MNT3ERR_PERM = 1,            /* Not owner */
20 	MNT3ERR_NOENT = 2,           /* No such file or directory */
21 	MNT3ERR_IO = 5,              /* I/O error */
22 	MNT3ERR_ACCES = 13,          /* Permission denied */
23 	MNT3ERR_NOTDIR = 20,         /* Not a directory */
24 	MNT3ERR_INVAL = 22,          /* Invalid argument */
25 	MNT3ERR_NAMETOOLONG = 63,    /* Filename too long */
26 	MNT3ERR_NOTSUPP = 10004,     /* Operation not supported */
27 	MNT3ERR_SERVERFAULT = 10006  /* A failure on the server */
28 };
29 
30 struct mountres3_ok {
31 	fhandle3 fhandle;
32 	int auth_flavors<>;
33 };
34 
35 union mountres3 switch (mountstat3 fhs_status) {
36 case MNT3_OK:
37 	mountres3_ok  mountinfo;
38 default:
39 	void;
40 };
41 
42 struct mountbody {
43 	name ml_hostname;
44 	dirpath ml_directory;
45 	mountlist ml_next;
46 };
47 
48 struct groupnode {
49 	name gr_name;
50 	groups gr_next;
51 };
52 
53 struct exportnode {
54 	dirpath ex_dir;
55 	groups ex_groups;
56  	exports ex_next;
57 };
58 
59 program MOUNT_PROGRAM {
60 	version MOUNT_V3 {
61 		void MOUNTPROC3_NULL(void) = 0;
62 		mountres3 MOUNTPROC3_MNT(dirpath) = 1;
63 		mountlist MOUNTPROC3_DUMP(void) = 2;
64 		void MOUNTPROC3_UMNT(dirpath) = 3;
65 		void MOUNTPROC3_UMNTALL(void) = 4;
66 		exports MOUNTPROC3_EXPORT(void)  = 5;
67 	} = 3;
68 } = 100005;
69