rdsk(7)
_________________________________________________________________
rdsk Special File
character special disk interface
_________________________________________________________________
DESCRIPTION
This character special device provides direct access to a logical
or physical disk in a slightly different manner than does 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/dskio.h>.
A pointer to the structure dskget is the parameter that is passed
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
rdsk(7)
on the system call.
struct dskget
{
unsigned long total_sectors;
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/dskio.h Ioctl definitions
SEE ALSO
dpf(7), dpj(7), ldm(7), intro(7).
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)