/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
- *
+ *
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
# include <sys/ioctl.h>
# include <sys/timeout.h>
+#elif defined(AFS_NBSD40_ENV)
+# ifdef AFS_NBSD50_ENV
+# include <sys/simplelock.h>
+# endif
+# include <sys/errno.h>
+# include <sys/types.h>
+# include <sys/mount.h> /* may define MOUNT_AFS */
+# include <sys/param.h>
+# include <sys/systm.h>
+# include <sys/conf.h>
+# include <sys/exec.h>
+# include <sys/lock.h>
+# include <sys/syscall.h>
+# include <sys/syscallargs.h>
+# include <sys/queue.h>
+# include <sys/resourcevar.h>
+# include <sys/kernel.h>
+# include <sys/proc.h>
+# include <sys/time.h>
+# include <sys/filedesc.h>
+# include <sys/exec.h>
+# include <sys/lock.h>
+# include <sys/syscall.h>
+# include <sys/syscallargs.h>
+# include <sys/queue.h>
+# include <sys/resourcevar.h>
+# include <sys/kernel.h>
+# include <sys/proc.h>
+# include <sys/time.h>
+# include <sys/filedesc.h>
+# include <sys/file.h>
+# include <sys/socket.h>
+# include <sys/socketvar.h>
+# include <sys/dirent.h>
+# include <sys/kauth.h>
+# include <sys/uio.h>
+# include <sys/buf.h>
+# include <sys/stat.h>
+# include <sys/file.h>
+# include <sys/namei.h>
+# include <sys/uio.h>
+# include <sys/buf.h>
+# include <sys/file.h>
+# include <sys/namei.h>
+# include <sys/vnode.h>
+# include <ufs/ffs/fs.h>
+# include <ufs/ufs/quota.h>
+# include <ufs/ufs/inode.h>
+# include <ufs/ufs/extattr.h>
+# include <ufs/ufs/ufsmount.h>
+# ifndef MLEN
+# include <sys/mbuf.h>
+# include <net/if.h>
+# endif /* !MLEN */
+# include <sys/protosw.h>
+# include <sys/ioctl.h>
+
#elif defined(AFS_LINUX22_ENV)
# include <linux/version.h>
-# ifdef CONFIG_H_EXISTS
+# ifdef HAVE_LINUX_CONFIG_H
# include <linux/config.h>
# endif
# include <linux/linkage.h>
# include <linux/security.h>
# endif
# include <linux/suspend.h>
-# if defined(LINUX_KEYRING_SUPPORT)
-# include <linux/rwsem.h>
-# include <linux/key.h>
-# if defined(KEY_TYPE_H_EXISTS)
-# include <linux/key-type.h>
-# endif
-# ifndef KEY_ALLOC_IN_QUOTA
-# define KEY_ALLOC_IN_QUOTA 1
-# endif
-# endif
# endif
/* Avoid conflicts with coda overloading AFS type namespace. Must precede
* inclusion of uaccess.h.
# include <linux/sched.h>
# include <linux/mm.h>
# include <linux/slab.h>
+# include <linux/proc_fs.h>
# include <linux/string.h>
-# if defined(LINUX_SEMAPHORE_H)
+# if defined(HAVE_LINUX_SEMAPHORE_H)
# include <linux/semaphore.h>
# else
# include <asm/semaphore.h>
# include <linux/mutex.h>
# endif
# include <linux/errno.h>
-# ifdef COMPLETION_H_EXISTS
+# ifdef HAVE_LINUX_COMPLETION_H
# include <linux/completion.h>
# endif
-# if defined(LINUX_USE_FH)
+# if defined(HAVE_LINUX_EXPORTFS_H)
# include <linux/exportfs.h>
# endif
+# ifdef AFS_LINUX24_ENV
+# include <linux/pagemap.h>
+# endif
#else /* AFS_LINUX22_ENV */
# if defined(AFS_DARWIN_ENV)
# include "h/systm.h"
# include "h/time.h"
+# ifdef AFS_FBSD_ENV
+# include <sys/socket.h>
+# include <net/if.h>
+# include <net/if_var.h>
+# endif
+
# ifdef AFS_AIX_ENV
# ifdef AFS_AIX41_ENV
# include "sys/statfs.h"
# include "sys/sysmacros.h"
# include "sys/fs_subr.h"
# include "sys/siginfo.h"
+# include "limits.h"
# endif /* AFS_SGI_ENV */
# if !defined(AFS_AIX_ENV) && !defined(AFS_SUN5_ENV) && !defined(AFS_SGI_ENV)
# ifdef AFS_SUN5_ENV
# include <sys/cmn_err.h> /* for kernel printf() prototype */
-# endif
-
-# if defined(AFS_SUN56_ENV)
-# include "h/vfs.h" /* stops SUN56 socketvar.h warnings */
-# include "h/stropts.h" /* stops SUN56 socketvar.h warnings */
-# include "h/stream.h" /* stops SUN56 socketvar.h errors */
+# include "h/vfs.h" /* stops SUN5 socketvar.h warnings */
+# include "h/stropts.h" /* stops SUN5 socketvar.h warnings */
+# include "h/stream.h" /* stops SUN5 socketvar.h errors */
# endif
# ifdef AFS_SUN510_ENV
# include "h/socketvar.h"
# include "h/protosw.h"
-# if defined(AFS_SGI_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_FBSD_ENV)
+# if defined(AFS_FBSD_ENV)
+# include "sys/limits.h"
+# endif
+
+# ifdef AFS_HPUX_ENV
+# include "limits.h"
+# endif
+
+# if defined(AFS_SGI_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || \
+ defined(AFS_FBSD_ENV) || defined(AFS_NBSD40_ENV)
# include "h/dirent.h"
# ifdef AFS_SUN5_ENV
# include "h/sysmacros.h"
# include "h/dir.h"
# endif /* SGI || SUN || HPUX */
-# if !defined(AFS_SGI64_ENV) && !defined(AFS_FBSD_ENV) && !defined(AFS_DARWIN80_ENV)
+# if !defined(AFS_SGI64_ENV) && !defined(AFS_FBSD_ENV) && !defined(AFS_DARWIN80_ENV) && \
+ !defined(AFS_NBSD40_ENV)
# include "h/user.h"
# endif /* AFS_SGI64_ENV */
# define MACH_USER_API 1
-# if defined(AFS_FBSD50_ENV)
+# if defined(AFS_FBSD_ENV)
# include "h/bio.h"
# include "h/filedesc.h"
# endif
# endif
# endif /* AFS_HPUX_ENV */
# if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
-# if defined(AFS_FBSD50_ENV)
+# if defined(AFS_FBSD_ENV)
struct vop_getwritemount_args;
# endif
# include <sys/uio.h>
# endif
# include <sys/vnode.h>
# include <sys/queue.h>
-# include <sys/malloc.h>
-# ifndef AFS_FBSD_ENV
-# include <sys/ubc.h>
-# define timeout_fcn_t mach_timeout_fcn_t
-# include <kern/sched_prim.h>
-# else
+# ifndef AFS_NBSD40_ENV
+# include <sys/malloc.h>
+# endif
+# ifdef AFS_FBSD_ENV
MALLOC_DECLARE(M_AFS);
# include <ufs/ufs/dinode.h>
# include <vm/vm.h>
# include <vm/vm_map.h>
# include <sys/lock.h>
# include <sys/user.h>
+# else
+# include <sys/ubc.h>
+# define timeout_fcn_t mach_timeout_fcn_t
+# include <kern/sched_prim.h>
# endif
# undef timeout_fcn_t
# define _DIR_H_
# include <ufs/ffs/fs.h>
# endif
# else
-# include "h/vfs.h"
-# include "h/vnode.h"
+# ifndef AFS_NBSD40_ENV
+# include "h/vfs.h"
+# include "h/vnode.h"
+# endif
# ifdef AFS_SUN5_ENV
# include "h/fs/ufs_inode.h"
# include "h/fs/ufs_mount.h"
# else
-# if !defined(AFS_SGI_ENV) && !defined(AFS_AIX32_ENV)
+# if !defined(AFS_SGI_ENV) && !defined(AFS_AIX32_ENV) && !defined(AFS_NBSD40_ENV)
# include "ufs/inode.h"
-# if !defined(AFS_SGI_ENV) && !defined(AFS_HPUX_ENV)
+# if !defined(AFS_SGI_ENV) && !defined(AFS_HPUX_ENV) && !defined(AFS_NBSD40_ENV)
# include "ufs/mount.h"
# endif /* !AFS_HPUX_ENV */
# endif /* !AFS_AIX32_ENV */
# include "h/tty.h"
# endif
-# if !defined(AFS_SGI_ENV) && !defined(AFS_AIX32_ENV) && !defined(AFS_HPUX_ENV) && !defined(AFS_SUN5_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_FBSD_ENV)
+# if !defined(AFS_SGI_ENV) && !defined(AFS_AIX32_ENV) && !defined(AFS_HPUX_ENV) && !defined(AFS_SUN5_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_FBSD_ENV) && !defined(AFS_NBSD40_ENV)
# include "h/text.h"
# endif