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