Added support for ext3 recognition in rquotad
[nfs-utils.git] / utils / rquotad / mntent.h
1 #ifndef _MNTENT_H
2 #define _MNTENT_H
3
4 #include <features.h>
5
6 #define MNTTAB "/etc/fstab"
7 #define MOUNTED "/etc/mtab"
8
9 #define MNTMAXSTR       512
10
11 #define MNTTYPE_COHERENT        "coherent"      /* Coherent file system */
12 #define MNTTYPE_EXT             "ext"           /* Extended file system */
13 #define MNTTYPE_EXT2            "ext2"          /* Second Extended file system */
14 #define MNTTYPE_EXT3            "ext3"          /* Journaled Second Extended file system */
15 #define MNTTYPE_HPFS            "hpfs"          /* OS/2's high performance file system */
16 #define MNTTYPE_ISO9660         "iso9660"       /* ISO CDROM file system */
17 #define MNTTYPE_MINIX           "minix"         /* MINIX file system */
18 #define MNTTYPE_MSDOS           "msdos"         /* MS-DOS file system */
19 #define MNTTYPE_SYSV            "sysv"          /* System V file system */
20 #define MNTTYPE_UMSDOS          "umsdos"        /* U MS-DOS file system */
21 #define MNTTYPE_XENIX           "xenix"         /* Xenix file system */
22 #define MNTTYPE_XIAFS           "xiafs"         /* Frank Xia's file system */
23 #define MNTTYPE_NFS             "nfs"           /* Network file system */
24 #define MNTTYPE_PROC            "proc"          /* Linux process file system */
25 #define MNTTYPE_IGNORE          "ignore"        /* Ignore this entry */
26 #define MNTTYPE_SWAP            "swap"          /* Swap device */
27
28 /* generic mount options */
29 #define MNTOPT_DEFAULTS         "defaults"      /* use all default opts */
30 #define MNTOPT_RO               "ro"            /* read only */
31 #define MNTOPT_RW               "rw"            /* read/write */
32 #define MNTOPT_SUID             "suid"          /* set uid allowed */
33 #define MNTOPT_NOSUID           "nosuid"        /* no set uid allowed */
34 #define MNTOPT_NOAUTO           "noauto"        /* don't auto mount */
35
36 /* ext2 and msdos options */
37 #define MNTOPT_CHECK            "check"         /* filesystem check level */
38
39 /* ext2 specific options */
40 #define MNTOPT_BSDDF            "bsddf"         /* disable MINIX compatibility disk free counting */
41 #define MNTOPT_BSDGROUPS        "bsdgroups"     /* set BSD group usage */
42 #define MNTOPT_ERRORS           "errors"        /* set behaviour on error */
43 #define MNTOPT_GRPID            "grpid"         /* set BSD group usage */
44 #define MNTOPT_MINIXDF          "minixdf"       /* enable MINIX compatibility disk free counting */
45 #define MNTOPT_NOCHECK          "nocheck"       /* reset filesystem checks */
46 #define MNTOPT_NOGRPID          "nogrpid"       /* set SYSV group usage */
47 #define MNTOPT_RESGID           "resgid"        /* group to consider like root for reserved blocks */
48 #define MNTOPT_RESUID           "resuid"        /* user to consider like root for reserved blocks */
49 #define MNTOPT_SB               "sb"            /* set used super block */
50 #define MNTOPT_SYSVGROUPS       "sysvgroups"    /* set SYSV group usage */
51
52 /* options common to hpfs, isofs, and msdos */
53 #define MNTOPT_CONV             "conv"          /* convert specified types of data */
54 #define MNTOPT_GID              "gid"           /* use given gid */
55 #define MNTOPT_UID              "uid"           /* use given uid */
56 #define MNTOPT_UMASK            "umask"         /* use given umask, not isofs */
57
58 /* hpfs specific options */
59 #define MNTOPT_CASE             "case"          /* case conversation */
60
61 /* isofs specific options */
62 #define MNTOPT_BLOCK            "block"         /* use given block size */
63 #define MNTOPT_CRUFT            "cruft"         /* ??? */
64 #define MNTOPT_MAP              "map"           /* ??? */
65 #define MNTOPT_NOROCK           "norock"        /* not rockwell format ??? */
66
67 /* msdos specific options */
68 #define MNTOPT_FAT              "fat"           /* set FAT size */
69 #define MNTOPT_QUIET            "quiet"         /* ??? */
70
71 /* swap specific options */
72
73 /* options common to ext, ext2, minix, xiafs, sysv, xenix, coherent */
74 #define MNTOPT_NOQUOTA          "noquota"       /* don't use any quota on this partition */
75 #define MNTOPT_USRQUOTA         "usrquota"      /* use userquota on this partition */
76 #define MNTOPT_GRPQUOTA         "grpquota"      /* use groupquota on this partition */
77 #define MNTOPT_RSQUASH          "rsquash"       /* threat root as an ordinary user */
78
79 /* none defined yet */
80
81 __BEGIN_DECLS
82
83 struct mntent{
84         char *mnt_fsname;
85         char *mnt_dir;
86         char *mnt_type;
87         char *mnt_opts;
88         int  mnt_freq;
89         int  mnt_passno;
90 };
91
92 __END_DECLS
93
94 #define __need_file
95 #include <stdio.h>
96
97 __BEGIN_DECLS
98
99 extern FILE     *setmntent __P ((__const char *__filep,
100                         __const char *__type));
101 extern struct mntent
102                 *getmntent __P ((FILE *__filep));
103 extern int      addmntent __P ((FILE *__filep,
104                         __const struct mntent *__mnt));
105 extern char     *hasmntopt __P ((__const struct mntent *__mnt,
106                         __const char *__opt));
107 extern int      endmntent __P ((FILE *__filep));
108
109 extern int      hasquota __P ((struct mntent *, int, char **));
110
111 __END_DECLS
112
113 #endif /* _MNTENT_H */