]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/amd/include/am_compat.h
MFC r308493, r308619: Update amd from am-utils 6.1.5 to 6.2.
[FreeBSD/stable/10.git] / contrib / amd / include / am_compat.h
1 /*
2  * Copyright (c) 1997-2014 Erez Zadok
3  * Copyright (c) 1990 Jan-Simon Pendry
4  * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
5  * Copyright (c) 1990 The Regents of the University of California.
6  * All rights reserved.
7  *
8  * This code is derived from software contributed to Berkeley by
9  * Jan-Simon Pendry at Imperial College, London.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  * 3. Neither the name of the University nor the names of its contributors
20  *    may be used to endorse or promote products derived from this software
21  *    without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  * SUCH DAMAGE.
34  *
35  *
36  * File: am-utils/include/am_compat.h
37  *
38  */
39
40 /*
41  *
42  * This file contains compatibility functions and macros, all of which
43  * should be auto-discovered, but for one reason or another (mostly
44  * brain-damage on the part of system designers and header files) they cannot.
45  *
46  * Each compatibility macro/function must include instructions on how/when
47  * it can be removed the am-utils code.
48  *
49  */
50
51 #ifndef _AM_COMPAT_H
52 # define _AM_COMPAT_H
53
54 /*
55  * incomplete mount options definitions (sunos4, irix6, linux, etc.)
56  */
57
58
59 /*
60  * Complete MNTTAB_OPT_* options based on MNT2_NFS_OPT_* mount options.
61  */
62 #if defined(MNT2_NFS_OPT_ACDIRMAX) && !defined(MNTTAB_OPT_ACDIRMAX)
63 # define MNTTAB_OPT_ACDIRMAX "acdirmax"
64 #endif /* defined(MNT2_NFS_OPT_ACDIRMAX) && !defined(MNTTAB_OPT_ACDIRMAX) */
65
66 #if defined(MNT2_NFS_OPT_ACDIRMIN) && !defined(MNTTAB_OPT_ACDIRMIN)
67 # define MNTTAB_OPT_ACDIRMIN "acdirmin"
68 #endif /* defined(MNT2_NFS_OPT_ACDIRMIN) && !defined(MNTTAB_OPT_ACDIRMIN) */
69
70 #if defined(MNT2_NFS_OPT_ACREGMAX) && !defined(MNTTAB_OPT_ACREGMAX)
71 # define MNTTAB_OPT_ACREGMAX "acregmax"
72 #endif /* defined(MNT2_NFS_OPT_ACREGMAX) && !defined(MNTTAB_OPT_ACREGMAX) */
73
74 #if defined(MNT2_NFS_OPT_ACREGMIN) && !defined(MNTTAB_OPT_ACREGMIN)
75 # define MNTTAB_OPT_ACREGMIN "acregmin"
76 #endif /* defined(MNT2_NFS_OPT_ACREGMIN) && !defined(MNTTAB_OPT_ACREGMIN) */
77
78 #if !defined(MNTTAB_OPT_IGNORE)
79 /* SunOS 4.1.x and others define "noauto" option, but not "auto" */
80 # if defined(MNTTAB_OPT_NOAUTO) && !defined(MNTTAB_OPT_AUTO)
81 #  define MNTTAB_OPT_AUTO "auto"
82 # endif /* defined(MNTTAB_OPT_NOAUTO) && !defined(MNTTAB_OPT_AUTO) */
83 #endif /* !defined(MNTTAB_OPT_IGNORE) */
84
85 #if defined(MNT2_NFS_OPT_NOAC) && !defined(MNTTAB_OPT_NOAC)
86 # define MNTTAB_OPT_NOAC "noac"
87 #endif /* defined(MNT2_NFS_OPT_NOAC) && !defined(MNTTAB_OPT_NOAC) */
88
89 #if defined(MNT2_NFS_OPT_NOACL) && !defined(MNTTAB_OPT_NOACL)
90 # define MNTTAB_OPT_NOACL "noacl"
91 #endif /* defined(MNT2_NFS_OPT_NOACL) && !defined(MNTTAB_OPT_NOACL) */
92
93 #if defined(MNT2_NFS_OPT_NOCONN) && !defined(MNTTAB_OPT_NOCONN)
94 # define MNTTAB_OPT_NOCONN "noconn"
95 # ifndef MNTTAB_OPT_CONN
96 #  define MNTTAB_OPT_CONN "conn"
97 # endif /* MNTTAB_OPT_CONN */
98 #endif /* defined(MNT2_NFS_OPT_NOCONN) && !defined(MNTTAB_OPT_NOCONN) */
99
100 #if defined(MNT2_NFS_OPT_PGTHRESH) && !defined(MNTTAB_OPT_PGTHRESH)
101 # define MNTTAB_OPT_PGTHRESH "pgthresh"
102 #endif /* defined(MNT2_NFS_OPT_PGTHRESH) && !defined(MNTTAB_OPT_PGTHRESH) */
103
104 #if defined(MNT2_NFS_OPT_PRIVATE) && !defined(MNTTAB_OPT_PRIVATE)
105 # define MNTTAB_OPT_PRIVATE "private"
106 #endif /* defined(MNT2_NFS_OPT_PRIVATE) && !defined(MNTTAB_OPT_PRIVATE) */
107
108 #if defined(MNT2_NFS_OPT_RETRANS) && !defined(MNTTAB_OPT_RETRANS)
109 # define MNTTAB_OPT_RETRANS "retrans"
110 #endif /* defined(MNT2_NFS_OPT_RETRANS) && !defined(MNTTAB_OPT_RETRANS) */
111
112 #if defined(MNT2_NFS_OPT_RSIZE) && !defined(MNTTAB_OPT_RSIZE)
113 # define MNTTAB_OPT_RSIZE "rsize"
114 #endif /* defined(MNT2_NFS_OPT_RSIZE) && !defined(MNTTAB_OPT_RSIZE) */
115
116 #if defined(MNT2_NFS_OPT_SOFT) && !defined(MNTTAB_OPT_SOFT)
117 # define MNTTAB_OPT_SOFT "soft"
118 # ifndef MNTTAB_OPT_HARD
119 #  define MNTTAB_OPT_HARD "hard"
120 # endif /* not MNTTAB_OPT_HARD */
121 #endif /* defined(MNT2_NFS_OPT_SOFT) && !defined(MNTTAB_OPT_SOFT) */
122
123 #if defined(MNT2_NFS_OPT_TIMEO) && !defined(MNTTAB_OPT_TIMEO)
124 # define MNTTAB_OPT_TIMEO "timeo"
125 #endif /* defined(MNT2_NFS_OPT_TIMEO) && !defined(MNTTAB_OPT_TIMEO) */
126
127 #if defined(MNT2_NFS_OPT_WSIZE) && !defined(MNTTAB_OPT_WSIZE)
128 # define MNTTAB_OPT_WSIZE "wsize"
129 #endif /* defined(MNT2_NFS_OPT_WSIZE) && !defined(MNTTAB_OPT_WSIZE) */
130
131 #if defined(MNT2_NFS_OPT_MAXGRPS) && !defined(MNTTAB_OPT_MAXGROUPS)
132 # define MNTTAB_OPT_MAXGROUPS "maxgroups"
133 #endif /* defined(MNT2_NFS_OPT_MAXGRPS) && !defined(MNTTAB_OPT_MAXGROUPS) */
134
135 #if defined(MNT2_NFS_OPT_PROPLIST) && !defined(MNTTAB_OPT_PROPLIST)
136 # define MNTTAB_OPT_PROPLIST "proplist"
137 #endif /* defined(MNT2_NFS_OPT_PROPLIST) && !defined(MNTTAB_OPT_PROPLIST) */
138
139 #if defined(MNT2_NFS_OPT_NONLM) && !defined(MNTTAB_OPT_NOLOCK)
140 # define MNTTAB_OPT_NOLOCK "nolock"
141 #endif /* defined(MNT2_NFS_OPT_NONLM) && !defined(MNTTAB_OPT_NOLOCK) */
142
143 #if defined(MNT2_NFS_OPT_XLATECOOKIE) && !defined(MNTTAB_OPT_XLATECOOKIE)
144 # define MNTTAB_OPT_XLATECOOKIE "xlatecookie"
145 #endif /* defined(MNT2_NFS_OPT_XLATECOOKIE) && !defined(MNTTAB_OPT_XLATECOOKIE) */
146
147 /*
148  * Complete MNTTAB_OPT_* options based on MNT2_CDFS_OPT_* mount options.
149  */
150 #if defined(MNT2_CDFS_OPT_DEFPERM) && !defined(MNTTAB_OPT_DEFPERM)
151 # define MNTTAB_OPT_DEFPERM "defperm"
152 #endif /* defined(MNT2_CDFS_OPT_DEFPERM) && !defined(MNTTAB_OPT_DEFPERM) */
153
154 #if defined(MNT2_CDFS_OPT_NODEFPERM) && !defined(MNTTAB_OPT_NODEFPERM)
155 # define MNTTAB_OPT_NODEFPERM "nodefperm"
156 /*
157  * DEC OSF/1 V3.x/Digital UNIX V4.0 have M_NODEFPERM only, but
158  * both mnttab ops.
159  */
160 # ifndef MNTTAB_OPT_DEFPERM
161 #  define MNTTAB_OPT_DEFPERM "defperm"
162 # endif /* not MNTTAB_OPT_DEFPERM */
163 #endif /* defined(MNT2_CDFS_OPT_NODEFPERM) && !defined(MNTTAB_OPT_NODEFPERM) */
164
165 #if defined(MNT2_CDFS_OPT_NOVERSION) && !defined(MNTTAB_OPT_NOVERSION)
166 # define MNTTAB_OPT_NOVERSION "noversion"
167 #endif /* defined(MNT2_CDFS_OPT_NOVERSION) && !defined(MNTTAB_OPT_NOVERSION) */
168
169 #if defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP)
170 # define MNTTAB_OPT_RRIP "rrip"
171 #endif /* defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP) */
172 #if defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP)
173 # define MNTTAB_OPT_NORRIP "norrip"
174 #endif /* defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP) */
175
176 #if defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS)
177 # define MNTTAB_OPT_GENS "gens"
178 #endif /* defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS) */
179
180 #if defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT)
181 # define MNTTAB_OPT_EXTATT "extatt"
182 #endif /* defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT) */
183
184 #if defined(MNT2_CDFS_OPT_NOJOLIET) && !defined(MNTTAB_OPT_NOJOLIET)
185 # define MNTTAB_OPT_NOJOLIET "nojoliet"
186 #endif /* defined(MNT2_CDFS_OPT_NOJOLIET) && !defined(MNTTAB_OPT_NOJOLIET) */
187
188 #if defined(MNT2_CDFS_OPT_NOCASETRANS) && !defined(MNTTAB_OPT_NOCASETRANS)
189 # define MNTTAB_OPT_NOCASETRANS "nocasetrans"
190 #endif /* defined(MNT2_CDFS_OPT_NOCASETRANS) && !defined(MNTTAB_OPT_NOCASETRANS) */
191
192 #if defined(MNT2_CDFS_OPT_RRCASEINS) && !defined(MNTTAB_OPT_RRCASEINS)
193 # define MNTTAB_OPT_RRCASEINS "rrcaseins"
194 #endif /* defined(MNT2_CDFS_OPT_RRCASEINS) && !defined(MNTTAB_OPT_RRCASEINS) */
195
196 /*
197  * Complete MNTTAB_OPT_* options based on MNT2_UDF_OPT_* mount options.
198  */
199 #if defined(MNT2_UDF_OPT_CLOSESESSION) && !defined(MNTTAB_OPT_CLOSESESSION)
200 # define MNTTAB_OPT_CLOSESESSION "closesession"
201 #endif /* defined(MNT2_UDF_OPT_CLOSESESSION) && !defined(MNTTAB_OPT_CLOSESESSION) */
202
203 /*
204  * Complete MNTTAB_OPT_* options based on MNT2_PCFS_OPT_* mount options.
205  */
206 #if defined(MNT2_PCFS_OPT_LONGNAME) && !defined(MNTTAB_OPT_LONGNAME)
207 # define MNTTAB_OPT_LONGNAME "longnames"
208 #endif /* defined(MNT2_PCFS_OPT_LONGNAME) && !defined(MNTTAB_OPT_LONGNAME) */
209 #if defined(MNT2_PCFS_OPT_NOWIN95) && !defined(MNTTAB_OPT_NOWIN95)
210 # define MNTTAB_OPT_NOWIN95 "nowin95"
211 #endif /* defined(MNT2_PCFS_OPT_NOWIN95) && !defined(MNTTAB_OPT_NOWIN95) */
212 #if defined(MNT2_PCFS_OPT_SHORTNAME) && !defined(MNTTAB_OPT_SHORTNAME)
213 # define MNTTAB_OPT_SHORTNAME "shortnames"
214 #endif /* defined(MNT2_PCFS_OPT_SHORTNAME) && !defined(MNTTAB_OPT_SHORTNAME) */
215
216 /*
217  * Complete MNTTAB_OPT_* options based on MNT2_GEN_OPT_* mount options.
218  */
219 #if defined(MNT2_GEN_OPT_GRPID) && !defined(MNTTAB_OPT_GRPID)
220 # define MNTTAB_OPT_GRPID "grpid"
221 #endif /* defined(MNT2_GEN_OPT_GRPID) && !defined(MNTTAB_OPT_GRPID) */
222
223 #if defined(MNT2_GEN_OPT_NOCACHE) && !defined(MNTTAB_OPT_NOCACHE)
224 # define MNTTAB_OPT_NOCACHE "nocache"
225 #endif /* defined(MNT2_GEN_OPT_NOCACHE) && !defined(MNTTAB_OPT_NOCACHE) */
226
227 #if defined(MNT2_GEN_OPT_NOSUID) && !defined(MNTTAB_OPT_NOSUID)
228 # define MNTTAB_OPT_NOSUID "nosuid"
229 #endif /* defined(MNT2_GEN_OPT_NOSUID) && !defined(MNTTAB_OPT_NOSUID) */
230
231 #if defined(MNT2_GEN_OPT_OVERLAY) && !defined(MNTTAB_OPT_OVERLAY)
232 # define MNTTAB_OPT_OVERLAY "overlay"
233 #endif /* defined(MNT2_GEN_OPT_OVERLAY) && !defined(MNTTAB_OPT_OVERLAY) */
234
235 /*
236  * Complete MNTTAB_OPT_* options and their inverse based on MNT2_GEN_OPT_*
237  * options.
238  */
239 #if defined(MNT2_GEN_OPT_NODEV) && !defined(MNTTAB_OPT_NODEV)
240 # define MNTTAB_OPT_NODEV "nodev"
241 #endif /* defined(MNT2_GEN_OPT_NODEV) && !defined(MNTTAB_OPT_NODEV) */
242
243 #if defined(MNT2_GEN_OPT_NOEXEC) && !defined(MNTTAB_OPT_NOEXEC)
244 # define MNTTAB_OPT_NOEXEC "noexec"
245 /* this is missing under some versions of Linux */
246 # ifndef MNTTAB_OPT_EXEC
247 #  define MNTTAB_OPT_EXEC "exec"
248 # endif /* not MNTTAB_OPT_EXEC */
249 #endif /* defined(MNT2_GEN_OPT_NOEXEC) && !defined(MNTTAB_OPT_NOEXEC) */
250
251 #if defined(MNT2_GEN_OPT_QUOTA) && !defined(MNTTAB_OPT_QUOTA)
252 # define MNTTAB_OPT_QUOTA "quota"
253 #endif /* defined(MNT2_GEN_OPT_QUOTA) && !defined(MNTTAB_OPT_QUOTA) */
254
255 #if defined(MNT2_GEN_OPT_SYNC) && !defined(MNTTAB_OPT_SYNC)
256 # define MNTTAB_OPT_SYNC "sync"
257 #endif /* defined(MNT2_GEN_OPT_SYNC) && !defined(MNTTAB_OPT_SYNC) */
258
259 #if defined(MNT2_GEN_OPT_LOG) && !defined(MNTTAB_OPT_LOG)
260 # define MNTTAB_OPT_LOG "log"
261 #endif /* defined(MNT2_GEN_OPT_LOG) && !defined(MNTTAB_OPT_LOG) */
262
263 #if defined(MNT2_GEN_OPT_NOATIME) && !defined(MNTTAB_OPT_NOATIME)
264 # define MNTTAB_OPT_NOATIME "noatime"
265 #endif /* defined(MNT2_GEN_OPT_NOATIME) && !defined(MNTTAB_OPT_NOATIME) */
266
267 #if defined(MNT2_GEN_OPT_NODEVMTIME) && !defined(MNTTAB_OPT_NODEVMTIME)
268 # define MNTTAB_OPT_NODEVMTIME "nodevmtime"
269 #endif /* defined(MNT2_GEN_OPT_NODEVMTIME) && !defined(MNTTAB_OPT_NODEVMTIME) */
270
271 #if defined(MNT2_GEN_OPT_SOFTDEP) && !defined(MNTTAB_OPT_SOFTDEP)
272 # define MNTTAB_OPT_SOFTDEP "softdep"
273 #endif /* defined(MNT2_GEN_OPT_SOFTDEP) && !defined(MNTTAB_OPT_SOFTDEP) */
274
275 #if defined(MNT2_GEN_OPT_SYMPERM) && !defined(MNTTAB_OPT_SYMPERM)
276 # define MNTTAB_OPT_SYMPERM "symperm"
277 #endif /* defined(MNT2_GEN_OPT_SYMPERM) && !defined(MNTTAB_OPT_SYMPERM) */
278
279 #if defined(MNT2_GEN_OPT_UNION) && !defined(MNTTAB_OPT_UNION)
280 # define MNTTAB_OPT_UNION "union"
281 #endif /* defined(MNT2_GEN_OPT_UNION) && !defined(MNTTAB_OPT_UNION) */
282
283 /*
284  * Add missing MNTTAB_OPT_* options.
285  */
286 #ifndef MNTTAB_OPT_ACTIMEO
287 # define MNTTAB_OPT_ACTIMEO "actimeo"
288 #endif /* not MNTTAB_OPT_ACTIMEO */
289
290 #ifndef MNTTAB_OPT_INTR
291 # define MNTTAB_OPT_INTR "intr"
292 #endif /* not MNTTAB_OPT_INTR */
293
294 #ifndef MNTTAB_OPT_PORT
295 # define MNTTAB_OPT_PORT "port"
296 #endif /* not MNTTAB_OPT_PORT */
297
298 #ifndef MNTTAB_OPT_PUBLIC
299 # define MNTTAB_OPT_PUBLIC "public"
300 #endif /* not MNTTAB_OPT_PUBLIC */
301
302 #ifndef MNTTAB_OPT_RETRANS
303 # define MNTTAB_OPT_RETRANS "retrans"
304 #endif /* not MNTTAB_OPT_RETRANS */
305
306 #ifndef MNTTAB_OPT_RETRY
307 # define MNTTAB_OPT_RETRY "retry"
308 #endif /* not MNTTAB_OPT_RETRY */
309
310 #ifndef MNTTAB_OPT_RO
311 # define MNTTAB_OPT_RO "ro"
312 #endif /* not MNTTAB_OPT_RO */
313
314 #ifndef MNTTAB_OPT_RSIZE
315 # define MNTTAB_OPT_RSIZE "rsize"
316 #endif /* not MNTTAB_OPT_RSIZE */
317
318 #ifndef MNTTAB_OPT_RW
319 # define MNTTAB_OPT_RW "rw"
320 #endif /* not MNTTAB_OPT_RW */
321
322 #ifndef MNTTAB_OPT_TIMEO
323 # define MNTTAB_OPT_TIMEO "timeo"
324 #endif /* not MNTTAB_OPT_TIMEO */
325
326 #ifndef MNTTAB_OPT_WSIZE
327 # define MNTTAB_OPT_WSIZE "wsize"
328 #endif /* not MNTTAB_OPT_WSIZE */
329
330 /* next four are useful for pcfs mounts */
331 #ifndef MNTTAB_OPT_USER
332 # define MNTTAB_OPT_USER "user"
333 #endif /* not MNTTAB_OPT_USER */
334 #ifndef MNTTAB_OPT_GROUP
335 # define MNTTAB_OPT_GROUP "group"
336 #endif /* not MNTTAB_OPT_GROUP */
337 #ifndef MNTTAB_OPT_MASK
338 # define MNTTAB_OPT_MASK "mask"
339 #endif /* not MNTTAB_OPT_MASK */
340 #ifndef MNTTAB_OPT_DIRMASK
341 # define MNTTAB_OPT_DIRMASK "dirmask"
342 #endif /* not MNTTAB_OPT_DIRMASK */
343
344 /* useful for udf mounts */
345 #ifndef MNTTAB_OPT_USER
346 # define MNTTAB_OPT_USER "user"
347 #endif /* not MNTTAB_OPT_USER */
348 #ifndef MNTTAB_OPT_GROUP
349 # define MNTTAB_OPT_GROUP "group"
350 #endif /* not MNTTAB_OPT_GROUP */
351 #ifndef MNTTAB_OPT_GMTOFF
352 # define MNTTAB_OPT_GMTOFF "gmtoff"
353 #endif /* not MNTTAB_OPT_GMTOFF */
354 #ifndef MNTTAB_OPT_SESSIONNR
355 # define MNTTAB_OPT_SESSIONNR "sessionnr"
356 #endif /* not MNTTAB_OPT_SESSIONNR */
357
358 /*
359  * Incomplete filesystem definitions (sunos4, irix6, solaris2)
360  */
361 #if defined(HAVE_FS_CDFS) && defined(MOUNT_TYPE_CDFS) && !defined(MNTTYPE_CDFS)
362 # define MNTTYPE_CDFS "hsfs"
363 #endif /* defined(HAVE_FS_CDFS) && defined(MOUNT_TYPE_CDFS) && !defined(MNTTYPE_CDFS) */
364
365 #ifndef cdfs_args_t
366 /*
367  * Solaris has an HSFS filesystem, but does not define hsfs_args.
368  * XXX: the definition here for solaris is wrong, since under solaris,
369  * hsfs_args should be a single integer used as a bit-field for options.
370  * so this code has to be fixed later.  -Erez.
371  */
372 struct hsfs_args {
373         char *fspec;    /* name of filesystem to mount */
374         int norrip;
375 };
376 # define cdfs_args_t struct hsfs_args
377 # define HAVE_CDFS_ARGS_T_NORRIP
378 #endif /* not cdfs_args_t */
379
380 /*
381  * if does not define struct pc_args, assume integer bit-field (irix6)
382  */
383 #if defined(HAVE_FS_PCFS) && !defined(pcfs_args_t)
384 # define pcfs_args_t u_int
385 #endif /* defined(HAVE_FS_PCFS) && !defined(pcfs_args_t) */
386
387 /*
388  * if does not define struct ufs_args, assume integer bit-field (linux)
389  */
390 #if defined(HAVE_FS_UFS) && !defined(ufs_args_t)
391 # define ufs_args_t u_int
392 #endif /* defined(HAVE_FS_UFS) && !defined(ufs_args_t) */
393
394 /*
395  * if does not define struct udf_args, assume integer bit-field (linux)
396  */
397 #if defined(HAVE_FS_UDF) && !defined(udf_args_t)
398 # define udf_args_t u_int
399 #endif /* defined(HAVE_FS_UDF) && !defined(udf_args_t) */
400
401 /*
402  * if does not define struct efs_args, assume integer bit-field (linux)
403  */
404 #if defined(HAVE_FS_EFS) && !defined(efs_args_t)
405 # define efs_args_t u_int
406 #endif /* defined(HAVE_FS_EFS) && !defined(efs_args_t) */
407
408 #if defined(HAVE_FS_TMPFS) && !defined(tmpfs_args_t)
409 # define tmpfs_args_t u_int
410 #endif /* defined(HAVE_FS_TMPFS) && !defined(tmpfs_args_t) */
411
412 /*
413  * if does not define struct xfs_args, assume integer bit-field (linux)
414  */
415 #if defined(HAVE_FS_XFS) && !defined(xfs_args_t)
416 # define xfs_args_t u_int
417 #endif /* defined(HAVE_FS_XFS) && !defined(xfs_args_t) */
418 #if defined(HAVE_FS_EXT) && !defined(ext_args_t)
419 # define ext_args_t u_int
420 #endif /* defined(HAVE_FS_EXT) && !defined(ext_args_t) */
421
422 #if defined(HAVE_FS_AUTOFS) && defined(MOUNT_TYPE_AUTOFS) && !defined(MNTTYPE_AUTOFS)
423 # define MNTTYPE_AUTOFS "autofs"
424 #endif /* defined(HAVE_FS_AUTOFS) && defined(MOUNT_TYPE_AUTOFS) && !defined(MNTTYPE_AUTOFS) */
425
426 /*
427  * If NFS3, then make sure that "proto" and "vers" mnttab options
428  * are available.
429  */
430 #ifdef HAVE_FS_NFS3
431 # ifndef MNTTAB_OPT_VERS
432 #  define MNTTAB_OPT_VERS "vers"
433 # endif /* not MNTTAB_OPT_VERS */
434 # ifndef MNTTAB_OPT_PROTO
435 #  define MNTTAB_OPT_PROTO "proto"
436 # endif /* not MNTTAB_OPT_PROTO */
437 #endif /* not HAVE_FS_NFS3 */
438
439 /*
440  * If NFS4, then make sure that the "sec" mnttab option is available.
441  */
442 #ifdef HAVE_FS_NFS4
443 # ifndef MNTTAB_OPT_SEC
444 #  define MNTTAB_OPT_SEC "sec"
445 # endif /* not MNTTAB_OPT_SEC */
446 #endif /* not HAVE_FS_NFS4 */
447 /*
448  * If loop device (header file) exists, define mount table option
449  */
450 #if defined(HAVE_LOOP_DEVICE) && !defined(MNTTAB_OPT_LOOP)
451 # define MNTTAB_OPT_LOOP "loop"
452 #endif /* defined(HAVE_LOOP_DEVICE) && !defined(MNTTAB_OPT_LOOP) */
453
454 /*
455  * Define a dummy struct netconfig for non-TLI systems
456  */
457 #if !defined(HAVE_NETCONFIG_H) && !defined(HAVE_SYS_NETCONFIG_H)
458 struct netconfig {
459   int dummy;
460 };
461 #endif /* not HAVE_NETCONFIG_H and not HAVE_SYS_NETCONFIG_H */
462
463 /* some OSs don't define INADDR_NONE and assume it's unsigned -1 */
464 #ifndef INADDR_NONE
465 # define INADDR_NONE    0xffffffffU
466 #endif /* INADDR_NONE */
467 /* some OSs don't define INADDR_LOOPBACK */
468 #ifndef INADDR_LOOPBACK
469 # define INADDR_LOOPBACK        0x7f000001
470 #endif /* not INADDR_LOOPBACK */
471
472 #endif /* not _AM_COMPAT_H */