#
# File system configuration
#
mainmenu_option next_comment
comment 'File systems'

bool 'POSIX Access Control Lists' CONFIG_FS_POSIX_ACL

tristate 'Oracle Cluster Filesystem' CONFIG_OCFS_FS

bool 'Quota support' CONFIG_QUOTA
dep_tristate '  Old quota format support' CONFIG_QFMT_V1 $CONFIG_QUOTA
dep_tristate '  VFS v0 quota format support' CONFIG_QFMT_V2 $CONFIG_QUOTA
dep_mbool '  Compatible quota interfaces' CONFIG_QIFACE_COMPAT $CONFIG_QUOTA
if [ "$CONFIG_QUOTA" = "y" -a "$CONFIG_QIFACE_COMPAT" = "y" ]; then
   choice '    Compatible quota interfaces' \
	"Original	CONFIG_QIFACE_V1 \
	 VFSv0		CONFIG_QIFACE_V2" Original
fi
tristate 'Kernel automounter support' CONFIG_AUTOFS_FS
tristate 'Kernel automounter version 4 support (also supports v3)' CONFIG_AUTOFS4_FS

tristate 'Supermount removable media support' CONFIG_SUPERMOUNT

dep_tristate 'ADFS file system support' CONFIG_ADFS_FS $CONFIG_EXPERIMENTAL
dep_tristate 'AFS distributed file system support' CONFIG_AFS_FS $CONFIG_EXPERIMENTAL
dep_mbool '  ADFS write support (DANGEROUS)' CONFIG_ADFS_FS_RW $CONFIG_ADFS_FS $CONFIG_EXPERIMENTAL

dep_tristate 'Amiga FFS file system support (EXPERIMENTAL)' CONFIG_AFFS_FS $CONFIG_EXPERIMENTAL

dep_tristate 'Apple Macintosh file system support (EXPERIMENTAL)' CONFIG_HFS_FS $CONFIG_EXPERIMENTAL

dep_tristate 'BeOS file systemv(BeFS) support (read only) (EXPERIMENTAL)' CONFIG_BEFS_FS $CONFIG_EXPERIMENTAL
dep_mbool '  Debug Befs' CONFIG_BEFS_DEBUG $CONFIG_BEFS_FS

dep_tristate 'BFS file system support (EXPERIMENTAL)' CONFIG_BFS_FS $CONFIG_EXPERIMENTAL

# msdos file systems
tristate 'DOS FAT fs support' CONFIG_FAT_FS
dep_tristate '  MSDOS fs support' CONFIG_MSDOS_FS $CONFIG_FAT_FS
dep_tristate '    UMSDOS: Unix-like file system on top of standard MSDOS fs' CONFIG_UMSDOS_FS $CONFIG_MSDOS_FS
dep_tristate '  VFAT (Windows-95) fs support' CONFIG_VFAT_FS $CONFIG_FAT_FS
dep_tristate 'EFS file system support (read only) (EXPERIMENTAL)' CONFIG_EFS_FS $CONFIG_EXPERIMENTAL

tristate 'Compressed ROM file system support' CONFIG_CRAMFS
bool 'Virtual memory file system support (former shm fs)' CONFIG_TMPFS
define_bool CONFIG_RAMFS y

tristate 'ISO 9660 CDROM file system support' CONFIG_ISO9660_FS
dep_mbool '  Microsoft Joliet CDROM extensions' CONFIG_JOLIET $CONFIG_ISO9660_FS
dep_mbool '  Transparent decompression extension' CONFIG_ZISOFS $CONFIG_ISO9660_FS

dep_tristate 'CDFS audio CD file system support (EXPERIMENTAL)' CONFIG_CD_FS $CONFIG_EXPERIMENTAL m

tristate 'Minix fs support' CONFIG_MINIX_FS

tristate 'FreeVxFS file system support (VERITAS VxFS(TM) compatible)' CONFIG_VXFS_FS

tristate 'NTFS file system support (read only)' CONFIG_NTFS_FS
dep_mbool '  NTFS debugging support' CONFIG_NTFS_DEBUG $CONFIG_NTFS_FS
dep_mbool '  NTFS write support (DANGEROUS)' CONFIG_NTFS_RW $CONFIG_NTFS_FS $CONFIG_EXPERIMENTAL

tristate 'NetWare 3/4/5 file system support (NWFS)' CONFIG_NWFS_FS

tristate 'OS/2 HPFS file system support' CONFIG_HPFS_FS

bool '/proc file system support' CONFIG_PROC_FS

if [ "$CONFIG_PROC_FS" = "y" ] ; then
	bool '  /proc/config.gz (Kernel Configuration)' CONFIG_PROC_CONFIG
fi
dep_bool '/dev file system support (EXPERIMENTAL)' CONFIG_DEVFS_FS $CONFIG_EXPERIMENTAL
dep_bool '  Automatically mount at boot' CONFIG_DEVFS_MOUNT $CONFIG_DEVFS_FS
dep_bool '  Debug devfs' CONFIG_DEVFS_DEBUG $CONFIG_DEVFS_FS

# It compiles as a module for testing only.  It should not be used
# as a module in general.  If we make this "tristate", a bunch of people
# who don't know what they are doing turn it on and complain when it
# breaks.
dep_bool '/dev/pts file system for Unix98 PTYs' CONFIG_DEVPTS_FS $CONFIG_UNIX98_PTYS

dep_tristate 'QNX4 file system support (read only) (EXPERIMENTAL)' CONFIG_QNX4FS_FS $CONFIG_EXPERIMENTAL
dep_mbool '  QNX4FS write support (DANGEROUS)' CONFIG_QNX4FS_RW $CONFIG_QNX4FS_FS $CONFIG_EXPERIMENTAL

tristate 'ROM file system support' CONFIG_ROMFS_FS

tristate 'Ext2 file system support' CONFIG_EXT2_FS
#if [ "$CONFIG_EXT2_FS" != "n" ]; then
if [ "$CONFIG_EXT2_FS" != "n" -a "$CONFIG_EXPERIMENTAL" = "y" ]; then
  bool '  Ext2 file compression' CONFIG_EXT2_COMPRESS
  if [ "$CONFIG_EXT2_COMPRESS" = "y" ]; then
    tristate '    LZO1X_1 algorithm' CONFIG_EXT2_HAVE_LZO
    tristate '    LZV1 algorithm' CONFIG_EXT2_HAVE_LZV1
    tristate '    GZIP algorithm' CONFIG_EXT2_HAVE_GZIP
    tristate '    BZIP2 algorithm' CONFIG_EXT2_HAVE_BZIP2
    # It would be nice if we could restrict the choice to the algorithms
    # enabled above, but I don't know how to get this to work with xconfig
    # short of having a switch between 2**4 choice statements depending
    # on the values of CONFIG_EXT2_HAVE_*.  xconfig doesn't grok `var=val'.
    choice '    Default compression algorithm' \
    	"defer CONFIG_EXT2_DEFAULT_COMPR_METHOD_DEFER \
    	LZO CONFIG_EXT2_DEFAULT_COMPR_METHOD_LZO \
    	LZV1 CONFIG_EXT2_DEFAULT_COMPR_METHOD_LZV1 \
	GZIP CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP \
	BZIP2 CONFIG_EXT2_DEFAULT_COMPR_METHOD_BZIP2"  GZIP
    # N.B. Don't offer EXT2_NEVER_METH or any lossy algorithms for the
    # default compression method.
    if [ "$CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP" = "y" ]; then
      choice '    Gzip parameter for default compression method' \
	  "1 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP1 \
	   2 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP2 \
	   3 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP3 \
	   4 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP4 \
	   5 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP5 \
	   6 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP6 \
	   7 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP7 \
	   8 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP8 \
	   9 CONFIG_EXT2_DEFAULT_COMPR_METHOD_GZIP9" 8
    fi
    choice '    Default cluster size (in filesystem blocks, usually 1KB each)' \
          "4  CONFIG_EXT2_DEFAULT_CLUSTER_BITS_2 \
           8  CONFIG_EXT2_DEFAULT_CLUSTER_BITS_3 \
          16  CONFIG_EXT2_DEFAULT_CLUSTER_BITS_4 \
          32  CONFIG_EXT2_DEFAULT_CLUSTER_BITS_5"  32
    if [ "$ARCH" = "i386" ]; then
      bool '    Assembly versions of compression routines' CONFIG_EXT2_COMPR_X86_CODE
    fi
    bool '    Extra work area for compression' CONFIG_EXT2_SEPARATE_WORK_AREAS
    bool '    Exclude .gz files from automatic compression' CONFIG_GZ_HACK
    bool '    Verify compression' CONFIG_EXT2_VERIFY_COMPRESSION
  fi
fi

tristate 'System V/Xenix/V7/Coherent file system support' CONFIG_SYSV_FS

tristate 'UDF file system support (read only)' CONFIG_UDF_FS
dep_mbool '  UDF write support (DANGEROUS)' CONFIG_UDF_RW $CONFIG_UDF_FS $CONFIG_EXPERIMENTAL

tristate 'UFS file system support (read only)' CONFIG_UFS_FS
dep_mbool '  UFS file system write support (DANGEROUS)' CONFIG_UFS_FS_WRITE $CONFIG_UFS_FS $CONFIG_EXPERIMENTAL

mainmenu_option next_comment
   comment 'VFS settings'
   int 'Soft limit of filedescriptors' CONFIG_FILE_SOFT 4096
   int 'Hard limit of filedescriptors' CONFIG_FILE_HARD 8192
   int 'Reserved for root' CONFIG_FILE_RESERVED 10
endmenu

dep_bool 'Accessfs support (EXPERIMENTAL)' CONFIG_ACCESS_FS $CONFIG_EXPERIMENTAL
source fs/accessfs/Config.in

# Journalling File Systems
source fs/journalfs/Config.in

if [ "$CONFIG_NET" = "y" ]; then

   mainmenu_option next_comment
   comment 'Network File Systems'

   dep_tristate 'Coda file system support (advanced network fs)' CONFIG_CODA_FS $CONFIG_INET
   dep_tristate 'InterMezzo file system support (experimental, replicating fs)' CONFIG_INTERMEZZO_FS $CONFIG_INET $CONFIG_EXPERIMENTAL
   dep_tristate 'NFS file system support' CONFIG_NFS_FS $CONFIG_INET
   dep_mbool '  Provide NFSv3 client support' CONFIG_NFS_V3 $CONFIG_NFS_FS
   dep_mbool '  Allow direct I/O on NFS files (EXPERIMENTAL)' CONFIG_NFS_DIRECTIO $CONFIG_NFS_FS $CONFIG_EXPERIMENTAL
   dep_bool '  Root file system on NFS' CONFIG_ROOT_NFS $CONFIG_NFS_FS $CONFIG_IP_PNP

   dep_tristate 'NFS server support' CONFIG_NFSD $CONFIG_INET
   dep_mbool '  Provide NFSv3 server support' CONFIG_NFSD_V3 $CONFIG_NFSD
   dep_mbool '  Provide NFS server over TCP support (EXPERIMENTAL)' CONFIG_NFSD_TCP $CONFIG_NFSD $CONFIG_EXPERIMENTAL

   if [ "$CONFIG_NFS_FS" = "y" -o "$CONFIG_NFSD" = "y" ]; then
      define_tristate CONFIG_SUNRPC y
      define_tristate CONFIG_LOCKD y
   else
      if [ "$CONFIG_NFS_FS" = "m" -o "$CONFIG_NFSD" = "m" ]; then
	 define_tristate CONFIG_SUNRPC m
	 define_tristate CONFIG_LOCKD m
   else
	 define_tristate CONFIG_SUNRPC n
	 define_tristate CONFIG_LOCKD n
      fi
   fi
   if [ "$CONFIG_NFSD_V3" = "y" -o "$CONFIG_NFS_V3" = "y" ]; then
     define_bool CONFIG_LOCKD_V4 y
   fi

   dep_tristate 'CIFS support (advanced network filesystem for SMB, Windows)' CONFIG_CIFS $CONFIG_INET m

   dep_tristate 'SMB file system support (to mount Windows shares etc.)' CONFIG_SMB_FS $CONFIG_INET
   if [ "$CONFIG_SMB_FS" != "n" ]; then
      bool '  Use a default NLS' CONFIG_SMB_NLS_DEFAULT
      if [ "$CONFIG_SMB_NLS_DEFAULT" = "y" ]; then
         string '    Default Remote NLS Option' CONFIG_SMB_NLS_REMOTE "cp437"
      fi
   fi
   if [ "$CONFIG_IPX" != "n" -o "$CONFIG_INET" != "n" ]; then
      tristate 'NCP file system support (to mount NetWare volumes)' CONFIG_NCP_FS
      source fs/ncpfs/Config.in
   else
      # for fs/nls/Config.in
      define_bool CONFIG_NCPFS_NLS n
   fi
   
   dep_tristate 'FTP file system support (EXPERIMENTAL)' CONFIG_FTP_FS $CONFIG_EXPERIMENTAL
   
   endmenu

else
   # for fs/nls/Config.in
   define_bool CONFIG_NCPFS_NLS n
   define_bool CONFIG_SMB_FS n
fi

#
# Do we need the compression support?
#
if [ "$CONFIG_ZISOFS" = "y" ]; then
   define_tristate CONFIG_ZISOFS_FS $CONFIG_ISO9660_FS
else
   define_tristate CONFIG_ZISOFS_FS n
fi

mainmenu_option next_comment
comment 'Partition Types'
source fs/partitions/Config.in
endmenu
source fs/nls/Config.in
endmenu
