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