138494Sobrien/*
2174294Sobrien * Copyright (c) 1997-2006 Erez Zadok
3174294Sobrien * Copyright (c) 1990 Jan-Simon Pendry
4174294Sobrien * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
5174294Sobrien * Copyright (c) 1990 The Regents of the University of California.
6174294Sobrien * All rights reserved.
738494Sobrien *
8174294Sobrien * This code is derived from software contributed to Berkeley by
9174294Sobrien * Jan-Simon Pendry at Imperial College, London.
10174294Sobrien *
11174294Sobrien * Redistribution and use in source and binary forms, with or without
12174294Sobrien * modification, are permitted provided that the following conditions
13174294Sobrien * are met:
14174294Sobrien * 1. Redistributions of source code must retain the above copyright
15174294Sobrien *    notice, this list of conditions and the following disclaimer.
16174294Sobrien * 2. Redistributions in binary form must reproduce the above copyright
17174294Sobrien *    notice, this list of conditions and the following disclaimer in the
18174294Sobrien *    documentation and/or other materials provided with the distribution.
19174294Sobrien * 3. All advertising materials mentioning features or use of this software
20174294Sobrien *    must display the following acknowledgment:
21174294Sobrien *      This product includes software developed by the University of
22174294Sobrien *      California, Berkeley and its contributors.
23174294Sobrien * 4. Neither the name of the University nor the names of its contributors
24174294Sobrien *    may be used to endorse or promote products derived from this software
25174294Sobrien *    without specific prior written permission.
26174294Sobrien *
27174294Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
28174294Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29174294Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30174294Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
31174294Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32174294Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
33174294Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34174294Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35174294Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36174294Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37174294Sobrien * SUCH DAMAGE.
38174294Sobrien *
39174294Sobrien *
40174294Sobrien * File: am-utils/include/am_compat.h
41174294Sobrien *
42174294Sobrien */
43174294Sobrien
44174294Sobrien/*
45174294Sobrien *
4638494Sobrien * This file contains compatibility functions and macros, all of which
4738494Sobrien * should be auto-discovered, but for one reason or another (mostly
4838494Sobrien * brain-damage on the part of system designers and header files) they cannot.
4938494Sobrien *
5038494Sobrien * Each compatibility macro/function must include instructions on how/when
5138494Sobrien * it can be removed the am-utils code.
5238494Sobrien *
5338494Sobrien */
5438494Sobrien
5538494Sobrien#ifndef _AM_COMPAT_H
5638494Sobrien# define _AM_COMPAT_H
5738494Sobrien
5838494Sobrien/*
5938494Sobrien * incomplete mount options definitions (sunos4, irix6, linux, etc.)
6038494Sobrien */
6138494Sobrien
6238494Sobrien
6338494Sobrien/*
6438494Sobrien * Complete MNTTAB_OPT_* options based on MNT2_NFS_OPT_* mount options.
6538494Sobrien */
6638494Sobrien#if defined(MNT2_NFS_OPT_ACDIRMAX) && !defined(MNTTAB_OPT_ACDIRMAX)
6738494Sobrien# define MNTTAB_OPT_ACDIRMAX "acdirmax"
6838494Sobrien#endif /* defined(MNT2_NFS_OPT_ACDIRMAX) && !defined(MNTTAB_OPT_ACDIRMAX) */
6938494Sobrien
7038494Sobrien#if defined(MNT2_NFS_OPT_ACDIRMIN) && !defined(MNTTAB_OPT_ACDIRMIN)
7138494Sobrien# define MNTTAB_OPT_ACDIRMIN "acdirmin"
7238494Sobrien#endif /* defined(MNT2_NFS_OPT_ACDIRMIN) && !defined(MNTTAB_OPT_ACDIRMIN) */
7338494Sobrien
7438494Sobrien#if defined(MNT2_NFS_OPT_ACREGMAX) && !defined(MNTTAB_OPT_ACREGMAX)
7538494Sobrien# define MNTTAB_OPT_ACREGMAX "acregmax"
7638494Sobrien#endif /* defined(MNT2_NFS_OPT_ACREGMAX) && !defined(MNTTAB_OPT_ACREGMAX) */
7738494Sobrien
7838494Sobrien#if defined(MNT2_NFS_OPT_ACREGMIN) && !defined(MNTTAB_OPT_ACREGMIN)
7938494Sobrien# define MNTTAB_OPT_ACREGMIN "acregmin"
8038494Sobrien#endif /* defined(MNT2_NFS_OPT_ACREGMIN) && !defined(MNTTAB_OPT_ACREGMIN) */
8138494Sobrien
8238494Sobrien#if !defined(MNTTAB_OPT_IGNORE)
8338494Sobrien/* SunOS 4.1.x and others define "noauto" option, but not "auto" */
8438494Sobrien# if defined(MNTTAB_OPT_NOAUTO) && !defined(MNTTAB_OPT_AUTO)
8538494Sobrien#  define MNTTAB_OPT_AUTO "auto"
8638494Sobrien# endif /* defined(MNTTAB_OPT_NOAUTO) && !defined(MNTTAB_OPT_AUTO) */
8738494Sobrien#endif /* !defined(MNTTAB_OPT_IGNORE) */
8838494Sobrien
8938494Sobrien#if defined(MNT2_NFS_OPT_NOAC) && !defined(MNTTAB_OPT_NOAC)
9038494Sobrien# define MNTTAB_OPT_NOAC "noac"
9138494Sobrien#endif /* defined(MNT2_NFS_OPT_NOAC) && !defined(MNTTAB_OPT_NOAC) */
9238494Sobrien
9338494Sobrien#if defined(MNT2_NFS_OPT_NOCONN) && !defined(MNTTAB_OPT_NOCONN)
9438494Sobrien# define MNTTAB_OPT_NOCONN "noconn"
9538494Sobrien# ifndef MNTTAB_OPT_CONN
9638494Sobrien#  define MNTTAB_OPT_CONN "conn"
9738494Sobrien# endif /* MNTTAB_OPT_CONN */
9838494Sobrien#endif /* defined(MNT2_NFS_OPT_NOCONN) && !defined(MNTTAB_OPT_NOCONN) */
9938494Sobrien
10038494Sobrien#if defined(MNT2_NFS_OPT_PGTHRESH) && !defined(MNTTAB_OPT_PGTHRESH)
10138494Sobrien# define MNTTAB_OPT_PGTHRESH "pgthresh"
10238494Sobrien#endif /* defined(MNT2_NFS_OPT_PGTHRESH) && !defined(MNTTAB_OPT_PGTHRESH) */
10338494Sobrien
104174294Sobrien#if defined(MNT2_NFS_OPT_PRIVATE) && !defined(MNTTAB_OPT_PRIVATE)
105174294Sobrien# define MNTTAB_OPT_PRIVATE "private"
106174294Sobrien#endif /* defined(MNT2_NFS_OPT_PRIVATE) && !defined(MNTTAB_OPT_PRIVATE) */
107174294Sobrien
10838494Sobrien#if defined(MNT2_NFS_OPT_RETRANS) && !defined(MNTTAB_OPT_RETRANS)
10938494Sobrien# define MNTTAB_OPT_RETRANS "retrans"
11038494Sobrien#endif /* defined(MNT2_NFS_OPT_RETRANS) && !defined(MNTTAB_OPT_RETRANS) */
11138494Sobrien
11238494Sobrien#if defined(MNT2_NFS_OPT_RSIZE) && !defined(MNTTAB_OPT_RSIZE)
11338494Sobrien# define MNTTAB_OPT_RSIZE "rsize"
11438494Sobrien#endif /* defined(MNT2_NFS_OPT_RSIZE) && !defined(MNTTAB_OPT_RSIZE) */
11538494Sobrien
11638494Sobrien#if defined(MNT2_NFS_OPT_SOFT) && !defined(MNTTAB_OPT_SOFT)
11738494Sobrien# define MNTTAB_OPT_SOFT "soft"
11838494Sobrien# ifndef MNTTAB_OPT_HARD
11938494Sobrien#  define MNTTAB_OPT_HARD "hard"
12038494Sobrien# endif /* not MNTTAB_OPT_HARD */
12138494Sobrien#endif /* defined(MNT2_NFS_OPT_SOFT) && !defined(MNTTAB_OPT_SOFT) */
12238494Sobrien
12338494Sobrien#if defined(MNT2_NFS_OPT_TIMEO) && !defined(MNTTAB_OPT_TIMEO)
12438494Sobrien# define MNTTAB_OPT_TIMEO "timeo"
12538494Sobrien#endif /* defined(MNT2_NFS_OPT_TIMEO) && !defined(MNTTAB_OPT_TIMEO) */
12638494Sobrien
12738494Sobrien#if defined(MNT2_NFS_OPT_WSIZE) && !defined(MNTTAB_OPT_WSIZE)
12838494Sobrien# define MNTTAB_OPT_WSIZE "wsize"
12938494Sobrien#endif /* defined(MNT2_NFS_OPT_WSIZE) && !defined(MNTTAB_OPT_WSIZE) */
13038494Sobrien
13138494Sobrien#if defined(MNT2_NFS_OPT_MAXGRPS) && !defined(MNTTAB_OPT_MAXGROUPS)
13238494Sobrien# define MNTTAB_OPT_MAXGROUPS "maxgroups"
13338494Sobrien#endif /* defined(MNT2_NFS_OPT_MAXGRPS) && !defined(MNTTAB_OPT_MAXGROUPS) */
13438494Sobrien
13582794Sobrien#if defined(MNT2_NFS_OPT_PROPLIST) && !defined(MNTTAB_OPT_PROPLIST)
13682794Sobrien# define MNTTAB_OPT_PROPLIST "proplist"
13782794Sobrien#endif /* defined(MNT2_NFS_OPT_PROPLIST) && !defined(MNTTAB_OPT_PROPLIST) */
13882794Sobrien
13982794Sobrien#if defined(MNT2_NFS_OPT_NONLM) && !defined(MNTTAB_OPT_NOLOCK)
14082794Sobrien# define MNTTAB_OPT_NOLOCK "nolock"
14182794Sobrien#endif /* defined(MNT2_NFS_OPT_NONLM) && !defined(MNTTAB_OPT_NOLOCK) */
14282794Sobrien
143174294Sobrien#if defined(MNT2_NFS_OPT_XLATECOOKIE) && !defined(MNTTAB_OPT_XLATECOOKIE)
144174294Sobrien# define MNTTAB_OPT_XLATECOOKIE "xlatecookie"
145174294Sobrien#endif /* defined(MNT2_NFS_OPT_XLATECOOKIE) && !defined(MNTTAB_OPT_XLATECOOKIE) */
146174294Sobrien
14738494Sobrien/*
14838494Sobrien * Complete MNTTAB_OPT_* options based on MNT2_CDFS_OPT_* mount options.
14938494Sobrien */
15038494Sobrien#if defined(MNT2_CDFS_OPT_DEFPERM) && !defined(MNTTAB_OPT_DEFPERM)
15138494Sobrien# define MNTTAB_OPT_DEFPERM "defperm"
15238494Sobrien#endif /* defined(MNT2_CDFS_OPT_DEFPERM) && !defined(MNTTAB_OPT_DEFPERM) */
15338494Sobrien
15438494Sobrien#if defined(MNT2_CDFS_OPT_NODEFPERM) && !defined(MNTTAB_OPT_NODEFPERM)
15538494Sobrien# define MNTTAB_OPT_NODEFPERM "nodefperm"
15638494Sobrien/*
15738494Sobrien * DEC OSF/1 V3.x/Digital UNIX V4.0 have M_NODEFPERM only, but
15838494Sobrien * both mnttab ops.
15938494Sobrien */
16038494Sobrien# ifndef MNTTAB_OPT_DEFPERM
16138494Sobrien#  define MNTTAB_OPT_DEFPERM "defperm"
16238494Sobrien# endif /* not MNTTAB_OPT_DEFPERM */
16338494Sobrien#endif /* defined(MNT2_CDFS_OPT_NODEFPERM) && !defined(MNTTAB_OPT_NODEFPERM) */
16438494Sobrien
16538494Sobrien#if defined(MNT2_CDFS_OPT_NOVERSION) && !defined(MNTTAB_OPT_NOVERSION)
16638494Sobrien# define MNTTAB_OPT_NOVERSION "noversion"
16738494Sobrien#endif /* defined(MNT2_CDFS_OPT_NOVERSION) && !defined(MNTTAB_OPT_NOVERSION) */
16838494Sobrien
16938494Sobrien#if defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP)
17038494Sobrien# define MNTTAB_OPT_RRIP "rrip"
17138494Sobrien#endif /* defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP) */
17251292Sobrien#if defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP)
17351292Sobrien# define MNTTAB_OPT_NORRIP "norrip"
17451292Sobrien#endif /* defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP) */
17538494Sobrien
17651292Sobrien#if defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS)
17751292Sobrien# define MNTTAB_OPT_GENS "gens"
17851292Sobrien#endif /* defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS) */
17951292Sobrien#if defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT)
18051292Sobrien# define MNTTAB_OPT_EXTATT "extatt"
18151292Sobrien#endif /* defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT) */
18251292Sobrien
18338494Sobrien/*
184174294Sobrien * Complete MNTTAB_OPT_* options based on MNT2_PCFS_OPT_* mount options.
185174294Sobrien */
186174294Sobrien#if defined(MNT2_PCFS_OPT_LONGNAME) && !defined(MNTTAB_OPT_LONGNAME)
187174294Sobrien# define MNTTAB_OPT_LONGNAME "longnames"
188174294Sobrien#endif /* defined(MNT2_PCFS_OPT_LONGNAME) && !defined(MNTTAB_OPT_LONGNAME) */
189174294Sobrien#if defined(MNT2_PCFS_OPT_NOWIN95) && !defined(MNTTAB_OPT_NOWIN95)
190174294Sobrien# define MNTTAB_OPT_NOWIN95 "nowin95"
191174294Sobrien#endif /* defined(MNT2_PCFS_OPT_NOWIN95) && !defined(MNTTAB_OPT_NOWIN95) */
192174294Sobrien#if defined(MNT2_PCFS_OPT_SHORTNAME) && !defined(MNTTAB_OPT_SHORTNAME)
193174294Sobrien# define MNTTAB_OPT_SHORTNAME "shortnames"
194174294Sobrien#endif /* defined(MNT2_PCFS_OPT_SHORTNAME) && !defined(MNTTAB_OPT_SHORTNAME) */
195174294Sobrien
196174294Sobrien/*
19738494Sobrien * Complete MNTTAB_OPT_* options based on MNT2_GEN_OPT_* mount options.
19838494Sobrien */
19938494Sobrien#if defined(MNT2_GEN_OPT_GRPID) && !defined(MNTTAB_OPT_GRPID)
20038494Sobrien# define MNTTAB_OPT_GRPID "grpid"
20138494Sobrien#endif /* defined(MNT2_GEN_OPT_GRPID) && !defined(MNTTAB_OPT_GRPID) */
20238494Sobrien
20338494Sobrien#if defined(MNT2_GEN_OPT_NOCACHE) && !defined(MNTTAB_OPT_NOCACHE)
20438494Sobrien# define MNTTAB_OPT_NOCACHE "nocache"
20538494Sobrien#endif /* defined(MNT2_GEN_OPT_NOCACHE) && !defined(MNTTAB_OPT_NOCACHE) */
20638494Sobrien
20738494Sobrien#if defined(MNT2_GEN_OPT_NOSUID) && !defined(MNTTAB_OPT_NOSUID)
20838494Sobrien# define MNTTAB_OPT_NOSUID "nosuid"
20938494Sobrien#endif /* defined(MNT2_GEN_OPT_NOSUID) && !defined(MNTTAB_OPT_NOSUID) */
21038494Sobrien
21138494Sobrien#if defined(MNT2_GEN_OPT_OVERLAY) && !defined(MNTTAB_OPT_OVERLAY)
21238494Sobrien# define MNTTAB_OPT_OVERLAY "overlay"
21338494Sobrien#endif /* defined(MNT2_GEN_OPT_OVERLAY) && !defined(MNTTAB_OPT_OVERLAY) */
21438494Sobrien
21538494Sobrien/*
21638494Sobrien * Complete MNTTAB_OPT_* options and their inverse based on MNT2_GEN_OPT_*
21738494Sobrien * options.
21838494Sobrien */
21938494Sobrien#if defined(MNT2_GEN_OPT_NODEV) && !defined(MNTTAB_OPT_NODEV)
22038494Sobrien# define MNTTAB_OPT_NODEV "nodev"
22138494Sobrien#endif /* defined(MNT2_GEN_OPT_NODEV) && !defined(MNTTAB_OPT_NODEV) */
22238494Sobrien
22338494Sobrien#if defined(MNT2_GEN_OPT_NOEXEC) && !defined(MNTTAB_OPT_NOEXEC)
22438494Sobrien# define MNTTAB_OPT_NOEXEC "noexec"
22538494Sobrien/* this is missing under some versions of Linux */
22638494Sobrien# ifndef MNTTAB_OPT_EXEC
22738494Sobrien#  define MNTTAB_OPT_EXEC "exec"
22838494Sobrien# endif /* not MNTTAB_OPT_EXEC */
22938494Sobrien#endif /* defined(MNT2_GEN_OPT_NOEXEC) && !defined(MNTTAB_OPT_NOEXEC) */
23038494Sobrien
23138494Sobrien#if defined(MNT2_GEN_OPT_QUOTA) && !defined(MNTTAB_OPT_QUOTA)
23238494Sobrien# define MNTTAB_OPT_QUOTA "quota"
23338494Sobrien#endif /* defined(MNT2_GEN_OPT_QUOTA) && !defined(MNTTAB_OPT_QUOTA) */
23438494Sobrien
23538494Sobrien#if defined(MNT2_GEN_OPT_SYNC) && !defined(MNTTAB_OPT_SYNC)
23638494Sobrien# define MNTTAB_OPT_SYNC "sync"
23738494Sobrien#endif /* defined(MNT2_GEN_OPT_SYNC) && !defined(MNTTAB_OPT_SYNC) */
23838494Sobrien
23938494Sobrien
24038494Sobrien/*
24138494Sobrien * Add missing MNTTAB_OPT_* options.
24238494Sobrien */
24338494Sobrien#ifndef MNTTAB_OPT_ACTIMEO
24438494Sobrien# define MNTTAB_OPT_ACTIMEO "actimeo"
24538494Sobrien#endif /* not MNTTAB_OPT_ACTIMEO */
24638494Sobrien
24738494Sobrien#ifndef MNTTAB_OPT_INTR
24838494Sobrien# define MNTTAB_OPT_INTR "intr"
24938494Sobrien#endif /* not MNTTAB_OPT_INTR */
25038494Sobrien
25138494Sobrien#ifndef MNTTAB_OPT_PORT
25238494Sobrien# define MNTTAB_OPT_PORT "port"
25338494Sobrien#endif /* not MNTTAB_OPT_PORT */
25438494Sobrien
255174294Sobrien#ifndef MNTTAB_OPT_PUBLIC
256174294Sobrien# define MNTTAB_OPT_PUBLIC "public"
257174294Sobrien#endif /* not MNTTAB_OPT_PUBLIC */
258174294Sobrien
25938494Sobrien#ifndef MNTTAB_OPT_RETRANS
26038494Sobrien# define MNTTAB_OPT_RETRANS "retrans"
26138494Sobrien#endif /* not MNTTAB_OPT_RETRANS */
26238494Sobrien
26338494Sobrien#ifndef MNTTAB_OPT_RETRY
26438494Sobrien# define MNTTAB_OPT_RETRY "retry"
26538494Sobrien#endif /* not MNTTAB_OPT_RETRY */
26638494Sobrien
26738494Sobrien#ifndef MNTTAB_OPT_RO
26838494Sobrien# define MNTTAB_OPT_RO "ro"
26938494Sobrien#endif /* not MNTTAB_OPT_RO */
27038494Sobrien
27138494Sobrien#ifndef MNTTAB_OPT_RSIZE
27238494Sobrien# define MNTTAB_OPT_RSIZE "rsize"
27338494Sobrien#endif /* not MNTTAB_OPT_RSIZE */
27438494Sobrien
27538494Sobrien#ifndef MNTTAB_OPT_RW
27638494Sobrien# define MNTTAB_OPT_RW "rw"
27738494Sobrien#endif /* not MNTTAB_OPT_RW */
27838494Sobrien
27938494Sobrien#ifndef MNTTAB_OPT_TIMEO
28038494Sobrien# define MNTTAB_OPT_TIMEO "timeo"
28138494Sobrien#endif /* not MNTTAB_OPT_TIMEO */
28238494Sobrien
28338494Sobrien#ifndef MNTTAB_OPT_WSIZE
28438494Sobrien# define MNTTAB_OPT_WSIZE "wsize"
28538494Sobrien#endif /* not MNTTAB_OPT_WSIZE */
28638494Sobrien
287174294Sobrien/* next four are useful for pcfs mounts */
288174294Sobrien#ifndef MNTTAB_OPT_USER
289174294Sobrien# define MNTTAB_OPT_USER "user"
290174294Sobrien#endif /* not MNTTAB_OPT_USER */
291174294Sobrien#ifndef MNTTAB_OPT_GROUP
292174294Sobrien# define MNTTAB_OPT_GROUP "group"
293174294Sobrien#endif /* not MNTTAB_OPT_GROUP */
294174294Sobrien#ifndef MNTTAB_OPT_MASK
295174294Sobrien# define MNTTAB_OPT_MASK "mask"
296174294Sobrien#endif /* not MNTTAB_OPT_MASK */
297174294Sobrien#ifndef MNTTAB_OPT_DIRMASK
298174294Sobrien# define MNTTAB_OPT_DIRMASK "dirmask"
299174294Sobrien#endif /* not MNTTAB_OPT_DIRMASK */
30038494Sobrien
30138494Sobrien/*
30238494Sobrien * Incomplete filesystem definitions (sunos4, irix6, solaris2)
30338494Sobrien */
30438494Sobrien#if defined(HAVE_FS_CDFS) && defined(MOUNT_TYPE_CDFS) && !defined(MNTTYPE_CDFS)
30538494Sobrien# define MNTTYPE_CDFS "hsfs"
30638494Sobrien#endif /* defined(HAVE_FS_CDFS) && defined(MOUNT_TYPE_CDFS) && !defined(MNTTYPE_CDFS) */
30738494Sobrien
30838494Sobrien#ifndef cdfs_args_t
30938494Sobrien/*
31038494Sobrien * Solaris has an HSFS filesystem, but does not define hsfs_args.
31138494Sobrien * XXX: the definition here for solaris is wrong, since under solaris,
31238494Sobrien * hsfs_args should be a single integer used as a bit-field for options.
31338494Sobrien * so this code has to be fixed later.  -Erez.
31438494Sobrien */
31538494Sobrienstruct hsfs_args {
31638494Sobrien        char *fspec;    /* name of filesystem to mount */
31738494Sobrien        int norrip;
31838494Sobrien};
31938494Sobrien# define cdfs_args_t struct hsfs_args
320119679Smbr# define HAVE_CDFS_ARGS_T_NORRIP
32138494Sobrien#endif /* not cdfs_args_t */
32238494Sobrien
32338494Sobrien/*
32438494Sobrien * if does not define struct pc_args, assume integer bit-field (irix6)
32538494Sobrien */
32638494Sobrien#if defined(HAVE_FS_PCFS) && !defined(pcfs_args_t)
32738494Sobrien# define pcfs_args_t u_int
32838494Sobrien#endif /* defined(HAVE_FS_PCFS) && !defined(pcfs_args_t) */
32938494Sobrien
33038494Sobrien/*
33138494Sobrien * if does not define struct ufs_args, assume integer bit-field (linux)
33238494Sobrien */
33338494Sobrien#if defined(HAVE_FS_UFS) && !defined(ufs_args_t)
33438494Sobrien# define ufs_args_t u_int
33538494Sobrien#endif /* defined(HAVE_FS_UFS) && !defined(ufs_args_t) */
33638494Sobrien
33782794Sobrien/*
33882794Sobrien * if does not define struct efs_args, assume integer bit-field (linux)
33982794Sobrien */
34082794Sobrien#if defined(HAVE_FS_EFS) && !defined(efs_args_t)
34182794Sobrien# define efs_args_t u_int
34282794Sobrien#endif /* defined(HAVE_FS_EFS) && !defined(efs_args_t) */
34382794Sobrien
344119679Smbr/*
345119679Smbr * if does not define struct xfs_args, assume integer bit-field (linux)
346119679Smbr */
347119679Smbr#if defined(HAVE_FS_XFS) && !defined(xfs_args_t)
348119679Smbr# define xfs_args_t u_int
349119679Smbr#endif /* defined(HAVE_FS_XFS) && !defined(xfs_args_t) */
35038494Sobrien
351174294Sobrien#if defined(HAVE_FS_AUTOFS) && defined(MOUNT_TYPE_AUTOFS) && !defined(MNTTYPE_AUTOFS)
352174294Sobrien# define MNTTYPE_AUTOFS "autofs"
353174294Sobrien#endif /* defined(HAVE_FS_AUTOFS) && defined(MOUNT_TYPE_AUTOFS) && !defined(MNTTYPE_AUTOFS) */
354174294Sobrien
35538494Sobrien/*
35638494Sobrien * If NFS3, then make sure that "proto" and "vers" mnttab options
35738494Sobrien * are available.
35838494Sobrien */
35938494Sobrien#ifdef HAVE_FS_NFS3
36038494Sobrien# ifndef MNTTAB_OPT_VERS
36138494Sobrien#  define MNTTAB_OPT_VERS "vers"
36238494Sobrien# endif /* not MNTTAB_OPT_VERS */
36338494Sobrien# ifndef MNTTAB_OPT_PROTO
36438494Sobrien#  define MNTTAB_OPT_PROTO "proto"
36538494Sobrien# endif /* not MNTTAB_OPT_PROTO */
36638494Sobrien#endif /* not HAVE_FS_NFS3 */
36738494Sobrien
368174294Sobrien/*
369174294Sobrien * If loop device (header file) exists, define mount table option
370174294Sobrien */
371174294Sobrien#if defined(HAVE_LOOP_DEVICE) && !defined(MNTTAB_OPT_LOOP)
372174294Sobrien# define MNTTAB_OPT_LOOP "loop"
373174294Sobrien#endif /* defined(HAVE_LOOP_DEVICE) && !defined(MNTTAB_OPT_LOOP) */
374174294Sobrien
375174294Sobrien/*
376174294Sobrien * Define a dummy struct netconfig for non-TLI systems
377174294Sobrien */
378174294Sobrien#if !defined(HAVE_NETCONFIG_H) && !defined(HAVE_SYS_NETCONFIG_H)
379174294Sobrienstruct netconfig {
380174294Sobrien  int dummy;
381174294Sobrien};
382174294Sobrien#endif /* not HAVE_NETCONFIG_H and not HAVE_SYS_NETCONFIG_H */
383174294Sobrien
384174294Sobrien/* some OSs don't define INADDR_NONE and assume it's unsigned -1 */
385174294Sobrien#ifndef INADDR_NONE
386174294Sobrien# define INADDR_NONE	0xffffffffU
387174294Sobrien#endif /* INADDR_NONE */
388174294Sobrien/* some OSs don't define INADDR_LOOPBACK */
389174294Sobrien#ifndef INADDR_LOOPBACK
390174294Sobrien# define INADDR_LOOPBACK	0x7f000001
391174294Sobrien#endif /* not INADDR_LOOPBACK */
392174294Sobrien
39338494Sobrien#endif /* not _AM_COMPAT_H */
394