Re-add linux-style getmntent
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / mnttab.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef _MNTENT_H
21 #ifndef _SYS_MNTTAB_H
22 #define _SYS_MNTTAB_H
23
24 #include <features.h>
25 #include <paths.h>
26
27 #define MNTTAB  _PATH_MOUNTED
28 #define MNT_LINE_MAX    1024
29
30 #define MNT_TOOLONG     1
31 #define MNT_TOOMANY     2
32 #define MNT_TOOFEW      3
33
34 #define mntnull(mp)     ((mp)->mnt_special = (mp)->mnt_mountp = \
35         (mp)->mnt_fstype = (mp)->mnt_mntopts = (mp)->mnt_time = NULL)
36 #define putmntent(fd, mp)       (-1)
37
38 struct mnttab
39   {
40         char *mnt_special;
41         char *mnt_mountp;
42         char *mnt_fstype;
43         char *mnt_mntopts;
44         char *mnt_time;
45   };
46
47 struct extmnttab
48   {
49         char *mnt_special;
50         char *mnt_mountp;
51         char *mnt_fstype;
52         char *mnt_mntopts;
53         char *mnt_time;
54         unsigned int mnt_major;
55         unsigned int mnt_minor;
56   };
57
58 __BEGIN_DECLS
59
60 extern void     resetmnttab (FILE *);
61 # ifdef __REDIRECT_NTH
62 extern int __getmntent_sun (FILE *, struct mnttab *);
63 extern int __REDIRECT_NTH (getmntent, (FILE *, struct mnttab *),
64         __getmntent_sun);
65 # else
66 #  define getmntent __getmntent_sun
67 # endif
68 extern int getextmntent (FILE *, struct extmnttab *, size_t);
69 extern int getmntany (FILE *, struct mnttab *, struct mnttab *);
70 # ifdef __REDIRECT_NTH
71 extern char     * __hasmntopt_sun (struct mnttab *, char *);
72 extern char * __REDIRECT_NTH (hasmntopt, (struct mnttab *, char *),
73         __hasmntopt_sun);
74 # else
75 #  define hasmntopt __hasmntopt_sun
76 # endif
77 extern char     *mntopt (char **);
78
79 __END_DECLS
80
81 #endif /* _SYS_MNTTAB_H */
82 #endif