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