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