+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/namei.h>
+#include <sys/resourcevar.h>
+#include <sys/kernel.h>
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <sys/buf.h>
+#include <sys/proc.h>
+#include <sys/conf.h>
+#include <sys/mount.h>
+#include <sys/vnode.h>
+#include <sys/specdev.h>
+#include <sys/fifo.h>
+#include <sys/malloc.h>
+
+#include <ufs/ufs/lockf.h>
+#include <ufs/ufs/quota.h>
+#include <ufs/ufs/inode.h>
+#include <ufs/ufs/dir.h>
+#include <ufs/ufs/ufsmount.h>
+#include <ufs/ufs/ufs_extern.h>
+
+static int ufs_chmod __P((struct vnode *, int, struct proc *));
+static int ufs_chown __P((struct vnode *, u_int, u_int, struct proc *));
+
+#ifdef FIFO
+struct vnodeops fifo_inodeops = {
+ fifo_lookup, /* lookup */
+ fifo_create, /* create */
+ fifo_mknod, /* mknod */
+ fifo_open, /* open */
+ ufsfifo_close, /* close */
+ ufs_access, /* access */
+ ufs_getattr, /* getattr */
+ ufs_setattr, /* setattr */
+ ufsfifo_read, /* read */
+ ufsfifo_write, /* write */
+ fifo_ioctl, /* ioctl */
+ fifo_select, /* select */
+ fifo_mmap, /* mmap */
+ fifo_fsync, /* fsync */
+ fifo_seek, /* seek */
+ fifo_remove, /* remove */
+ fifo_link, /* link */
+ fifo_rename, /* rename */
+ fifo_mkdir, /* mkdir */
+ fifo_rmdir, /* rmdir */
+ fifo_symlink, /* symlink */
+ fifo_readdir, /* readdir */
+ fifo_readlink, /* readlink */
+ fifo_abortop, /* abortop */
+ ufs_inactive, /* inactive */
+ ufs_reclaim, /* reclaim */
+ ufs_lock, /* lock */
+ ufs_unlock, /* unlock */
+ fifo_bmap, /* bmap */
+ fifo_strategy, /* strategy */
+ ufs_print, /* print */
+ ufs_islocked, /* islocked */
+ fifo_advlock, /* advlock */
+};
+#endif /* FIFO */
+
+struct vnodeops spec_inodeops = {
+ spec_lookup, /* lookup */
+ spec_create, /* create */
+ spec_mknod, /* mknod */
+ spec_open, /* open */
+ ufsspec_close, /* close */
+ ufs_access, /* access */
+ ufs_getattr, /* getattr */
+ ufs_setattr, /* setattr */
+ ufsspec_read, /* read */
+ ufsspec_write, /* write */
+ spec_ioctl, /* ioctl */
+ spec_select, /* select */
+ spec_mmap, /* mmap */
+ spec_fsync, /* fsync */
+ spec_seek, /* seek */
+ spec_remove, /* remove */
+ spec_link, /* link */
+ spec_rename, /* rename */
+ spec_mkdir, /* mkdir */
+ spec_rmdir, /* rmdir */
+ spec_symlink, /* symlink */
+ spec_readdir, /* readdir */
+ spec_readlink, /* readlink */
+ spec_abortop, /* abortop */
+ ufs_inactive, /* inactive */
+ ufs_reclaim, /* reclaim */
+ ufs_lock, /* lock */
+ ufs_unlock, /* unlock */
+ spec_bmap, /* bmap */
+ spec_strategy, /* strategy */
+ ufs_print, /* print */
+ ufs_islocked, /* islocked */
+ spec_advlock, /* advlock */
+};
+
+enum vtype iftovt_tab[16] = {
+ VNON, VFIFO, VCHR, VNON, VDIR, VNON, VBLK, VNON,
+ VREG, VNON, VLNK, VNON, VSOCK, VNON, VNON, VBAD,
+};
+int vttoif_tab[9] = {
+ 0, IFREG, IFDIR, IFBLK, IFCHR, IFLNK, IFSOCK, IFIFO, IFMT,
+};