Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rdsk(7) — DG/UX 4.30

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cied(7)

cimd(7)

cird(7)

sd(7)

intro(7)



     rdsk(7)                    DG/UX 4.30                     rdsk(7)



     NAME
          rdsk - character special disk interface

     DESCRIPTION
          This character special device provides direct access to a
          logical or physical disk in a slightly different manner from
          dsk(7).  In this case, the disk should be considered to be
          an array of 512-byte disk blocks numbered from 0 to N-1,
          where N is the number of blocks in the disk.

          The rdsk device is typically implemented so that requests
          for large amounts of data (say, an entire track of the disk)
          can be serviced with far fewer explicit requests to the
          physical disk than can the dsk device.  Efficiency  improves
          because of restrictions in the way rdsk may be used, as
          described below.

          The open system call performs device-specific operations to
          initialize the disk.  Except for errors that may be reported
          because of controller or unit failures, user-visible
          functionality is the same as for an ordinary disk file.

          For the close system call, user-visible functionality is the
          same as for an ordinary disk file.

          The read system call must begin and end on a 512-byte
          boundary; i.e., the starting address and the length of the
          read must be multiples of 512.  Reads on other boundaries
          and of other sizes will return the error EINVAL.  Reading
          data that has "never been written" returns whatever happens
          to be there, in contrast to an ordinary disk file which
          returns zero.  A read request that extends past the end of
          the disk returns the error ENXIO and an implementation-
          specific amount of data.

          The write system call must begin and end on a 512-byte
          boundary; i.e., the starting address and the length of the
          write must be multiples of 512.  Write on other boundaries
          and of other sizes will return the error EINVAL.  Also, the
          data is guaranteed to have been physically written to the
          disk upon completion of the write system call.  A write
          request that extends past the end of the disk returns the
          error ENXIO and writes an implementation-specific amount of
          data.

          The only disk specific ioctl is DSKIOCGET, which returns
          information about the characteristics of a disk.  The
          command and structure for this ioctl is defined in
          <sys/ioctl.h>.

          A pointer to the structure dskget is the parameter that is
          passed on the system call.



     Licensed material--property of copyright holder(s)         Page 1





     rdsk(7)                    DG/UX 4.30                     rdsk(7)



          struct dskget
               {
               nsigned long   total_sectors;
               unsigned long  bytes_per_sector;
               unsigned short controller_id;
               };

          The total_sectors field is the number of 512 byte blocks
          available on the disk.   The blocks have addresses 0 through
          "total_sectors" - 1.  This value does not include blocks
          that are normally inaccessible because they are used for
          controller remapping, for diagnostic tracks, or for
          controller firmware.  Some of the blocks may be not be
          useable because of media flaws.  The controller_id field is
          a controller unique identifier reported by the disk
          controller.   A returned value of 0 indicates that the
          controller does not report an id.

          Select always returns READY for both read and write
          operations.

     FILES
          /dev/rdsk/*   Logical disk device names for character special
                        access
          /dev/rpdsk/*  Physical disk device names for character special
                        access
          /usr/include/sys/ioctl.h   Ioctl definitions

     SEE ALSO
          cied(7), cimd(7), cird(7), sd(7), intro(7).

























     Licensed material--property of copyright holder(s)         Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026