1 /* 2 * Copyright (c) 1997-2006 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. All advertising materials mentioning features or use of this software 20 * must display the following acknowledgment: 21 * This product includes software developed by the University of 22 * California, Berkeley and its contributors. 23 * 4. Neither the name of the University nor the names of its contributors 24 * may be used to endorse or promote products derived from this software 25 * without specific prior written permission. 26 * 27 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 28 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37 * SUCH DAMAGE. 38 * 39 * 40 * File: am-utils/include/mount_headers1.h 41 * 42 */ 43 44 45 #ifdef HAVE_SYS_TYPES_H 46 # include <sys/types.h> 47 #endif /* HAVE_SYS_TYPES_H */ 48 #ifdef HAVE_SYS_ERRNO_H 49 # include <sys/errno.h> 50 #endif /* HAVE_SYS_ERRNO_H */ 51 #ifdef HAVE_SYS_PARAM_H 52 # include <sys/param.h> 53 #endif /* HAVE_SYS_PARAM_H */ 54 #ifdef HAVE_SYS_TIME_H 55 # include <sys/time.h> 56 #endif /* HAVE_SYS_TIME_H */ 57 #ifdef HAVE_SYS_UCRED_H 58 # include <sys/ucred.h> 59 #endif /* HAVE_SYS_UCRED_H */ 60 #ifdef HAVE_SYS_SOCKET_H 61 # include <sys/socket.h> 62 #endif /* HAVE_SYS_SOCKET_H */ 63 #ifdef HAVE_NETINET_IN_H 64 # include <netinet/in.h> 65 #endif /* HAVE_NETINET_IN_H */ 66 #ifdef HAVE_NET_IF_H 67 # include <net/if.h> 68 #endif /* HAVE_NET_IF_H */ 69 #ifdef HAVE_STDIO_H 70 # include <stdio.h> 71 #endif /* HAVE_STDIO_H */ 72 73 #ifndef KERNEL 74 # define KERNEL_off_for_now_breaks_FreeBSD 75 #endif /* not KERNEL */ 76 77 #ifdef HAVE_SYS_MNTENT_H 78 # include <sys/mntent.h> 79 #endif /* HAVE_SYS_MNTENT_H */ 80 #ifdef HAVE_MNTENT_H 81 # include <mntent.h> 82 #endif /* HAVE_MNTENT_H */ 83 #ifdef HAVE_SYS_MNTTAB_H 84 # include <sys/mnttab.h> 85 #endif /* HAVE_SYS_MNTTAB_H */ 86 #if defined(HAVE_MNTTAB_H) && !defined(MNTTAB) 87 /* 88 * Do not include it if MNTTAB is already defined because it probably 89 * came from <sys/mnttab.h> and we do not want conflicting definitions. 90 */ 91 # include <mnttab.h> 92 #endif /* defined(HAVE_MNTTAB_H) && !defined(MNTTAB) */ 93 94 #ifdef HAVE_SYS_MOUNT_H 95 # ifndef NFSCLIENT 96 # define NFSCLIENT 97 # endif /* not NFSCLIENT */ 98 # ifndef PCFS 99 # define PCFS 100 # endif /* not PCFS */ 101 # ifndef LOFS 102 # define LOFS 103 # endif /* not LOFS */ 104 # ifndef RFS 105 # define RFS 106 # endif /* not RFS */ 107 # ifndef MSDOSFS 108 # define MSDOSFS 109 # endif /* not MSDOSFS */ 110 # ifndef MFS 111 # define MFS 1 112 # endif /* not MFS */ 113 # ifndef CD9660 114 # define CD9660 115 # endif /* not CD9660 */ 116 # ifndef NFS 117 # define NFS 118 # endif /* not NFS */ 119 # include <sys/mount.h> 120 #endif /* HAVE_SYS_MOUNT_H */ 121 122 #ifdef HAVE_SYS_VMOUNT_H 123 # include <sys/vmount.h> 124 #endif /* HAVE_SYS_VMOUNT_H */ 125 126 /* 127 * There is no point in including this on a glibc2 system 128 * we're only asking for trouble 129 */ 130 #if defined HAVE_LINUX_FS_H && (!defined __GLIBC__ || __GLIBC__ < 2) 131 /* 132 * There's a conflict of definitions on redhat alpha linux between 133 * <netinet/in.h> and <linux/fs.h>. 134 * Also a conflict in definitions of ntohl/htonl in RH-5.1 sparc64 135 * between <netinet/in.h> and <linux/byteorder/generic.h> (2.1 kernels). 136 */ 137 # ifdef HAVE_SOCKETBITS_H 138 # define _LINUX_SOCKET_H 139 # undef BLKFLSBUF 140 # undef BLKGETSIZE 141 # undef BLKRAGET 142 # undef BLKRASET 143 # undef BLKROGET 144 # undef BLKROSET 145 # undef BLKRRPART 146 # undef MS_MGC_VAL 147 # undef MS_RMT_MASK 148 # endif /* HAVE_SOCKETBITS_H */ 149 # ifdef HAVE_LINUX_POSIX_TYPES_H 150 # include <linux/posix_types.h> 151 # endif /* HAVE_LINUX_POSIX_TYPES_H */ 152 # ifndef _LINUX_BYTEORDER_GENERIC_H 153 # define _LINUX_BYTEORDER_GENERIC_H 154 # endif /* _LINUX_BYTEORDER_GENERIC_H */ 155 # ifndef _LINUX_STRING_H_ 156 # define _LINUX_STRING_H_ 157 # endif /* not _LINUX_STRING_H_ */ 158 # ifdef HAVE_LINUX_KDEV_T_H 159 # define __KERNEL__ 160 # include <linux/kdev_t.h> 161 # undef __KERNEL__ 162 # endif /* HAVE_LINUX_KDEV_T_H */ 163 # ifdef HAVE_LINUX_LIST_H 164 # define __KERNEL__ 165 # include <linux/list.h> 166 # undef __KERNEL__ 167 # endif /* HAVE_LINUX_LIST_H */ 168 # include <linux/fs.h> 169 #endif /* HAVE_LINUX_FS_H && (!__GLIBC__ || __GLIBC__ < 2) */ 170 171 #ifdef HAVE_SYS_FS_TYPES_H 172 # include <sys/fs_types.h> 173 #endif /* HAVE_SYS_FS_TYPES_H */ 174 175 #ifdef HAVE_UFS_UFS_MOUNT_H 176 # include <ufs/ufs_mount.h> 177 #endif /* HAVE_UFS_UFS_MOUNT_H */ 178 #ifdef HAVE_UFS_UFS_UFSMOUNT_H_off 179 # error do not include this file here because on *bsd it 180 # error causes errors with other header files. Instead, add it to the 181 # error specific conf/nfs_prot_*.h file. 182 # include <ufs/ufs/ufsmount.h> 183 #endif /* HAVE_UFS_UFS_UFSMOUNT_H_off */ 184 185 #ifdef HAVE_CDFS_CDFS_MOUNT_H 186 # include <cdfs/cdfs_mount.h> 187 #endif /* HAVE_CDFS_CDFS_MOUNT_H */ 188 #ifdef HAVE_CDFS_CDFSMOUNT_H 189 # include <cdfs/cdfsmount.h> 190 #endif /* HAVE_CDFS_CDFSMOUNT_H */ 191 #ifdef HAVE_ISOFS_CD9660_CD9660_MOUNT_H 192 # include <isofs/cd9660/cd9660_mount.h> 193 #endif /* HAVE_ISOFS_CD9660_CD9660_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_RPC_RPC_H 206 # include <rpc/rpc.h> 207 #endif /* HAVE_RPC_RPC_H */ 208 #ifdef HAVE_RPC_TYPES_H 209 # include <rpc/types.h> 210 #endif /* HAVE_RPC_TYPES_H */ 211 /* Prevent multiple inclusion on Ultrix 4 */ 212 #if defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__) 213 # include <rpc/xdr.h> 214 #endif /* defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__) */ 215 216 /* ALWAYS INCLUDE AM-UTILS' SPECIFIC NFS PROTOCOL HEADER NEXT! */ 217