DOSSRV(4)                                               DOSSRV(4)

     NAME
          dossrv, 9660srv, dosmnt, eject - DOS and ISO9660 file
          systems

     SYNOPSIS
          dossrv [ -rsv ] [ -f file ] [ service ]

          9660srv [ -9Jsv ] [ -c clusters ] [ -f file ] [ service ]

          dosmnt n mtpt

          eject [ n ]

     DESCRIPTION
          Dossrv is a file server that interprets DOS file systems.  A
          single instance of dossrv can provide access to multiple DOS
          disks simultaneously.

          Dossrv posts a file descriptor named service (default dos)
          in the /srv directory.  To access the DOS file system on a
          device, use mount with the spec argument (see bind(1)) the
          name of the file holding raw DOS file system, typically the
          disk.  If spec is undefined in the mount, dossrv will use
          file as the default name for the device holding the DOS sys-
          tem.

          Normally dossrv creates a pipe to act as the communications
          channel between itself and its clients.  The -s flag
          instructs dossrv to use its standard input and output
          instead.  The kernels use this option if they are booting
          from a DOS disk.  This flag also prevents the creation of an
          explicit service file in /srv.

          The -v flag causes verbose output for debugging, while the
          -r flag makes the file system read-only.

          The file attribute flags used by the DOS file system do not
          map directly to those used by Plan 9.  Since there is no
          concept of user or group, permission changes via wstat (see
          stat(2)) will fail unless the same (read, write, execute)
          permissions are specified for user, group, and other.  For
          example, removing write permission in Plan 9 corresponds to
          setting the read-only attribute in the DOS file system.
          Most of the other DOS attributes are not accessible.

          Setting the exclusive use flag (DMEXCL) in Plan 9 corre-
          sponds to setting the system use attribute in the DOS file
          system.  Such files are not actually restricted to exclusive
          use, but do merit special treatment that helps in the cre-
          ation of boot disks: when dossrv allocates a new block for

     DOSSRV(4)                                               DOSSRV(4)

          such a file (caused, say, by a write that fills the file's
          last allocated block), it succeeds only if it can arrange
          for the file to be stored contiguously on disk.

          Since other operating systems do not guarantee that system
          files are laid out contiguously, the DMAPPEND mode bit is
          set in file stat information only when the file is currently
          contiguous.  Attempts to set the DMAPPEND mode bit explic-
          itly will cause dossrv to try to make the file contiguous,
          succeeding only if this is possible.

          9660srv is similar to dossrv in specification, except that
          it interprets ISO9660 CD-ROM file systems instead of DOS
          file systems.  Some CDs contain multiple directory trees
          describing the same set of files.  9660srv's first choice in
          such a case is a standard ISO9660 tree with Plan 9 system
          use fields; the second choice is a Microsoft ``Joliet''
          tree, which allows long file names and Unicode characters;
          the third choice is a standard ISO9660 or High Sierra tree.
          The -9 flag causes 9660srv to ignore the Plan 9 system use
          fields, while the -J flag causes it to ignore the Joliet
          tree.  The -c option sets the size of the RAM cache to
          clusters clusters of 128KB.  The default clusters is 16, but
          a value of 5600 will cache an entire CD incrementally.

          If the floppy drive has an ejection motor, eject will spit
          out the floppy from drive n, default 0.

     SOURCE
          /sys/src/cmd/dossrv
          /sys/src/cmd/9660srv
          /rc/bin/eject
          /rc/bin/dosmnt

     BUGS
          The overloading of the semantics of the DMEXCL and DMAPPEND
          bits can be confusing.