fd(4)fd(4)Namefd - Floppy disk interface
Syntax
device fd0 at ibus? vector fdintr
Description
The driver is for used with Digital's non-scsi floppy disk drives.
If the minor number is less than 64, the driver select number is indi‐
cated by bits 4 and 5, and the partition by bits 0 through 3. If the
minor number is one of 64, 65, 66, or 67, the drive select number is
indicated by bits 0 and 1, and disk partitions are disabled. In the
latter case, the entire surface of the media is treated as one large
partition, and attempts to change the partition table will fail. The
major number is 48 for the block interface and 83 for the raw (charac‐
ter) interface.
The device names are of the format { rfd<n> | [r]fd<n><p> }, where <n>
indicates the drive select number using one of the characters 0, 1, 2,
or 3; <p> indicates the partition using one of the characters a through
h; rfd indicates the raw interface; and fd indicates the block inter‐
face. If p is absent, partitioning is disabled.
The block interface is restricted to 512-byte, disk-sector aligned
accesses. Reads or writes that attempt to start at the middle of a
sector actually start at the beginning of the sector.
There is no sector-boundary limitation when using the raw interface.
The driver protects the process that has opened the floppy disk device
from an accidental media change by preventing access to the device if
the media is removed and reinserted. To access the drive after the
media has been changed, either the device must be closed and reopened,
or a DEVIOCGET or FDIOTPRRST ioctl must be issued. You can use the
command and its option to issue the FDIOTPRRST ioctl.
When a floppy disk device is first opened after changing media, a delay
occurs while the partition table is read from the media if the device
is not of type rfd<n>. If the device is opened with FNDELAY, partition
table reading may be delayed until the first actual read or write
request.
When accessing media containing non-UFS data, the data on that media
may appear to be a valid partition table. In this case, the user will
probably not be able to access the media. To work around the problem,
use the rfd<n> device.
Partitions a and c begin at physical sector 0 and occupy the entire
disk. All other partitions also begin at physical sector 0, but are of
length zero. You can change partition sizes by using the command.
The currently supported disk drive is the RX26.
The supported media types in the RX26 are the 350DD of size 737280
(1440 sectors), 350HD of size 1474560 (2880 sectors), and 350ED of size
2949120 (5760 sectors).
Ioctl Support
Several special ioctls are defined for use with the device driver. Use
of these requires that and be included. See the file for reference.
FDIOSENSE returns information about the current state of the drive via
the structure fd_sense. All elements of this structure are initialized
by this call. See comments in for use of each element.
FDIOGETMTYP returns information about the media currently in the drive
via the structure fd_mt. All elements of this structure are initial‐
ized by this call. See comments in for use of each element.
FDIOFMTDSK, FDIOFFBSETUP, FDIOFFBNEXT, and FDIOFMTTRK are used for disk
formatting. Data is passed to and from these calls via certain ele‐
ments of a structure of type fd_fmt_spec. See comments in for use of
each element. FDIOFMTDSK causes the entire disk to be formatted.
FDIOFMTTRK causes a specified track to be formatted. The combination
of FDIOFFBSETUP and FDIOFFBNEXT cause the entire disk to be formatted,
a little at a time, allowing the calling process to display an updated
status line indicating the progress of the format.
FDIOTPRRST causes the driver to ignore the fact that the media might
have just been removed and reinserted. Status information is returned
via a fd_sense structure, just as with the FDIOSENSE call.
FDIOSEEK allows the user to specify the position of the next single-
sector access (and only the next access) in any of several formats.
These formats include logical-sector-number format, physical-sector-
number format, and cylinder-head-sector format. These formats are
specified in a structure of type fd_seek. See comments in for use of
each element.
FDIOMKCHS and FDIOMKPSN are used to translate between cylinder-head-
sector sector specification and physical-sector-number sector specifi‐
cation. Data is passed to and from these calls via certain elements of
a structure of type fd_chs_psn. See comments in for use of each ele‐
ment.
The calls DEVIOCGET, DEVGETGEOM, DIOCGETPT, DIOCDGTPT, and DIOCSETPT
are also supported and perform in their expected manner. A call to
DEVIOCGET also has the effect of calling FDIOTPRRST.
FilesSee Alsonbuf(4), fddisk[8], dkio(4), chpt(8), MAKEDEV(8), uerf(8)fd(4)