*** sys/conf/files
--- sys/conf/files
***************
*** 1,5 ****
--- 1,10 ----
  #	$Id$
  #
+ adosfs/adosfs_anode.c	optional adosfs
+ adosfs/adosfs_blocks.c	optional adosfs
+ adosfs/adosfs_util.c	optional adosfs
+ adosfs/adosfs_vnops.c	optional adosfs
+ adosfs/adosfs_vfsops.c	optional adosfs
  ddb/db_access.c		optional ddb
  ddb/db_aout.c		optional ddb
  ddb/db_break.c		optional ddb
*** sys/kern/vfs_conf.c
--- sys/kern/vfs_conf.c
*************** extern	struct vfsops devfs_vfsops;
*** 81,86 ****
--- 81,90 ----
  extern	struct vfsops procfs_vfsops;
  #endif
  
+ #ifdef ADOSFS
+ extern	struct vfsops adosfs_vfsops;
+ #endif
+ 
  #ifdef LOFS
  extern struct vfsops lofs_vfsops;
  #endif
*************** struct vfsops *vfssw[] = {
*** 140,145 ****
--- 144,154 ----
  #endif
  #ifdef PORTAL
  	&portal_vfsops,		/* 12 = MOUNT_PORTAL */
+ #else
+ 	(struct vfsops *)0,
+ #endif
+ #ifdef ADOSFS
+ 	&adosfs_vfsops,		/* 13 = MOUNT_ADOSFS */
  #else
  	(struct vfsops *)0,
  #endif
*** sys/sys/malloc.h
--- sys/sys/malloc.h
***************
*** 104,110 ****
  #define M_MRTABLE	53	/* multicast routing tables */
  #define M_LOFSMNT	54	/* Loopback FS mount structures */
  #define M_PORTALMNT	55	/* Portal FS mount structures */
! #define M_LAST		M_PORTALMNT
  
  #define INITKMEMNAMES { \
  	"free",		/* 0 M_FREE */ \
--- 104,112 ----
  #define M_MRTABLE	53	/* multicast routing tables */
  #define M_LOFSMNT	54	/* Loopback FS mount structures */
  #define M_PORTALMNT	55	/* Portal FS mount structures */
! #define M_ADOSFSMNT     56      /* adosfs mount structures */
! #define M_LLCHAIN       57      /* adosfs llchain structure */
! #define	M_LAST		M_LLCHAIN
  
  #define INITKMEMNAMES { \
  	"free",		/* 0 M_FREE */ \
***************
*** 163,168 ****
--- 165,172 ----
  	"mcast route",	/* 53 M_MRTABLE */ \
  	"lofs mount",	/* 54 M_LOFSMNT */ \
  	"portal mount",	/* 55 M_PORTALMNT */ \
+         "adosfs mnt",   /* 56 M_ADOSFSMNT */ \
+         "adosfs llc",   /* 57 M_LLCHAIN */ \
  }
  
  struct kmemstats {
*** sys/sys/mount.h
--- sys/sys/mount.h
*************** struct statfs {
*** 90,96 ****
  #define	MOUNT_PROCFS	10		/* proc filesystem */
  #define	MOUNT_LOFS	11		/* loopback filesystem */
  #define	MOUNT_PORTAL	12		/* portal filesystem */
! #define	MOUNT_MAXTYPE	MOUNT_PORTAL
  
  /*
   * Structure per mounted file system.
--- 90,97 ----
  #define	MOUNT_PROCFS	10		/* proc filesystem */
  #define	MOUNT_LOFS	11		/* loopback filesystem */
  #define	MOUNT_PORTAL	12		/* portal filesystem */
! #define MOUNT_ADOSFS    13              /* AmigaDOS Filesystem(s) */
! #define	MOUNT_MAXTYPE	MOUNT_ADOSFS
  
  /*
   * Structure per mounted file system.
*************** struct iso_args {
*** 293,298 ****
--- 294,308 ----
  struct msdosfs_args {
  	char *fspec;		/* blocks special holding the fs to mount */
  };
+ 
+ #ifdef ADOSFS
+ /*
+  *  Arguments to mount AmigaDOS filesystems.
+  */
+ struct adosfs_args {
+ 	char *fspec;		/* blocks special holding the fs to mount */
+ };
+ #endif /* ADOSFS */
  
  #ifdef KERNEL
  /*
*** sys/sys/vnode.h
--- sys/sys/vnode.h
*************** enum vtype 	{ VNON, VREG, VDIR, VBLK, VC
*** 58,64 ****
   * and should NEVER be inspected inside the kernel.
   */
  enum vtagtype	{ VT_NON, VT_UFS, VT_NFS, VT_MFS, VT_LFS, VT_MSDOSFS, VT_ISOFS,
! 		  VT_KERNFS, VT_FDESC, VT_PROCFS, VT_LOFS, VT_PORTAL };
  
  /*
   * This defines the maximum size of the private data area
--- 58,64 ----
   * and should NEVER be inspected inside the kernel.
   */
  enum vtagtype	{ VT_NON, VT_UFS, VT_NFS, VT_MFS, VT_LFS, VT_MSDOSFS, VT_ISOFS,
! 		  VT_KERNFS, VT_FDESC, VT_PROCFS, VT_LOFS, VT_PORTAL, VT_ADOSFS };
  
  /*
   * This defines the maximum size of the private data area
