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/mount_headers1.h 37 * 38 */ 39 40 41 #ifdef HAVE_SYS_TYPES_H 42 # include <sys/types.h> 43 #endif /* HAVE_SYS_TYPES_H */ 44 #ifdef HAVE_SYS_ERRNO_H 45 # include <sys/errno.h> 46 #endif /* HAVE_SYS_ERRNO_H */ 47 #ifdef HAVE_SYS_PARAM_H 48 # include <sys/param.h> 49 #endif /* HAVE_SYS_PARAM_H */ 50 #ifdef HAVE_SYS_TIME_H 51 # include <sys/time.h> 52 #endif /* HAVE_SYS_TIME_H */ 53 #ifdef HAVE_SYS_UCRED_H 54 # include <sys/ucred.h> 55 #endif /* HAVE_SYS_UCRED_H */ 56 #ifdef HAVE_SYS_SOCKET_H 57 # include <sys/socket.h> 58 #endif /* HAVE_SYS_SOCKET_H */ 59 #ifdef HAVE_NETINET_IN_H 60 # include <netinet/in.h> 61 #endif /* HAVE_NETINET_IN_H */ 62 #ifdef HAVE_NET_IF_H 63 # include <net/if.h> 64 #endif /* HAVE_NET_IF_H */ 65 #ifdef HAVE_STDIO_H 66 # include <stdio.h> 67 #endif /* HAVE_STDIO_H */ 68 69 #ifndef KERNEL 70 # define KERNEL_off_for_now_breaks_FreeBSD 71 #endif /* not KERNEL */ 72 73 #ifdef HAVE_SYS_MNTENT_H 74 # include <sys/mntent.h> 75 #endif /* HAVE_SYS_MNTENT_H */ 76 #ifdef HAVE_MNTENT_H 77 # include <mntent.h> 78 #endif /* HAVE_MNTENT_H */ 79 #ifdef HAVE_SYS_MNTTAB_H 80 # include <sys/mnttab.h> 81 #endif /* HAVE_SYS_MNTTAB_H */ 82 #if defined(HAVE_MNTTAB_H) && !defined(MNTTAB) 83 /* 84 * Do not include it if MNTTAB is already defined because it probably 85 * came from <sys/mnttab.h> and we do not want conflicting definitions. 86 */ 87 # include <mnttab.h> 88 #endif /* defined(HAVE_MNTTAB_H) && !defined(MNTTAB) */ 89 90 #ifdef HAVE_SYS_MOUNT_H 91 # ifndef NFSCLIENT 92 # define NFSCLIENT 93 # endif /* not NFSCLIENT */ 94 # ifndef PCFS 95 # define PCFS 96 # endif /* not PCFS */ 97 # ifndef LOFS 98 # define LOFS 99 # endif /* not LOFS */ 100 # ifndef RFS 101 # define RFS 102 # endif /* not RFS */ 103 # ifndef MSDOSFS 104 # define MSDOSFS 105 # endif /* not MSDOSFS */ 106 # ifndef MFS 107 # define MFS 1 108 # endif /* not MFS */ 109 # ifndef CD9660 110 # define CD9660 111 # endif /* not CD9660 */ 112 # ifndef NFS 113 # define NFS 114 # endif /* not NFS */ 115 # include <sys/mount.h> 116 #endif /* HAVE_SYS_MOUNT_H */ 117 118 #ifdef HAVE_SYS_VMOUNT_H 119 # include <sys/vmount.h> 120 #endif /* HAVE_SYS_VMOUNT_H */ 121 122 #if HAVE_LINUX_FS_H 123 # if !defined(__GLIBC__) || __GLIBC__ < 2 124 /* 125 * There's a conflict of definitions on redhat alpha linux between 126 * <netinet/in.h> and <linux/fs.h>. 127 * Also a conflict in definitions of ntohl/htonl in RH-5.1 sparc64 128 * between <netinet/in.h> and <linux/byteorder/generic.h> (2.1 kernels). 129 */ 130 # ifdef HAVE_SOCKETBITS_H 131 # define _LINUX_SOCKET_H 132 # undef BLKFLSBUF 133 # undef BLKGETSIZE 134 # undef BLKRAGET 135 # undef BLKRASET 136 # undef BLKROGET 137 # undef BLKROSET 138 # undef BLKRRPART 139 # undef MS_MGC_VAL 140 # undef MS_RMT_MASK 141 # endif /* HAVE_SOCKETBITS_H */ 142 # ifdef HAVE_LINUX_POSIX_TYPES_H 143 # include <linux/posix_types.h> 144 # endif /* HAVE_LINUX_POSIX_TYPES_H */ 145 # ifndef _LINUX_BYTEORDER_GENERIC_H 146 # define _LINUX_BYTEORDER_GENERIC_H 147 # endif /* _LINUX_BYTEORDER_GENERIC_H */ 148 # ifndef _LINUX_STRING_H_ 149 # define _LINUX_STRING_H_ 150 # endif /* not _LINUX_STRING_H_ */ 151 # ifdef HAVE_LINUX_KDEV_T_H 152 # define __KERNEL__ 153 # include <linux/kdev_t.h> 154 # undef __KERNEL__ 155 # endif /* HAVE_LINUX_KDEV_T_H */ 156 # ifdef HAVE_LINUX_LIST_H 157 # define __KERNEL__ 158 # include <linux/list.h> 159 # undef __KERNEL__ 160 # endif /* HAVE_LINUX_LIST_H */ 161 # include <linux/fs.h> 162 # else 163 # include <linux/fs.h> 164 # endif/* (!__GLIBC__ || __GLIBC__ < 2) */ 165 #endif /* HAVE_LINUX_FS_H */ 166 167 #ifdef HAVE_SYS_FS_TYPES_H 168 # include <sys/fs_types.h> 169 #endif /* HAVE_SYS_FS_TYPES_H */ 170 171 #ifdef HAVE_UFS_UFS_MOUNT_H 172 # include <ufs/ufs_mount.h> 173 #endif /* HAVE_UFS_UFS_MOUNT_H */ 174 #ifdef HAVE_UFS_UFS_UFSMOUNT_H_off 175 # error do not include this file here because on *bsd it 176 # error causes errors with other header files. Instead, add it to the 177 # error specific conf/nfs_prot_*.h file. 178 # include <ufs/ufs/ufsmount.h> 179 #endif /* HAVE_UFS_UFS_UFSMOUNT_H_off */ 180 181 #ifdef HAVE_CDFS_CDFS_MOUNT_H 182 # include <cdfs/cdfs_mount.h> 183 #endif /* HAVE_CDFS_CDFS_MOUNT_H */ 184 #ifdef HAVE_CDFS_CDFSMOUNT_H 185 # include <cdfs/cdfsmount.h> 186 #endif /* HAVE_CDFS_CDFSMOUNT_H */ 187 #ifdef HAVE_ISOFS_CD9660_CD9660_MOUNT_H 188 # include <isofs/cd9660/cd9660_mount.h> 189 #endif /* HAVE_ISOFS_CD9660_CD9660_MOUNT_H */ 190 191 #ifdef HAVE_FS_UDF_UDF_MOUNT_H 192 # include <fs/udf/udf_mount.h> 193 #endif /* HAVE_FS_UDF_UDF_MOUNT_H */ 194 195 #ifdef HAVE_SYS_FS_PC_FS_H 196 # include <sys/fs/pc_fs.h> 197 #endif /* HAVE_SYS_FS_PC_FS_H */ 198 #ifdef HAVE_MSDOSFS_MSDOSFSMOUNT_H 199 # include <msdosfs/msdosfsmount.h> 200 #endif /* HAVE_MSDOSFS_MSDOSFSMOUNT_H */ 201 #ifdef HAVE_FS_MSDOSFS_MSDOSFSMOUNT_H 202 # include <fs/msdosfs/msdosfsmount.h> 203 #endif /* HAVE_FS_MSDOSFS_MSDOSFSMOUNT_H */ 204 205 #ifdef HAVE_FS_TMPFS_TMPFS_ARGS_H 206 # include <fs/tmpfs/tmpfs_args.h> 207 #endif /* HAVE_FS_TMPFS_TMPFS_ARGS_H */ 208 209 #ifdef HAVE_FS_EFS_EFS_MOUNT_H 210 # include <fs/efs/efs_mount.h> 211 #endif /* HAVE_FS_EFS_EFS_MOUNT_H */ 212 213 #ifdef HAVE_RPC_RPC_H 214 # include <rpc/rpc.h> 215 #endif /* HAVE_RPC_RPC_H */ 216 #ifdef HAVE_RPC_TYPES_H 217 # include <rpc/types.h> 218 #endif /* HAVE_RPC_TYPES_H */ 219 /* Prevent multiple inclusion on Ultrix 4 */ 220 #if defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__) 221 # include <rpc/xdr.h> 222 #endif /* defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__) */ 223 224 /* ALWAYS INCLUDE AM-UTILS' SPECIFIC NFS PROTOCOL HEADER NEXT! */ 225