driver provides support for a
cdrom. It allows the cdrom
to be divided up into a set of pseudo devices called
In an attempt to look like regular disks the
driver synthesises a partition table, with one partition covering the entire
cdrom. A user might (for some amazing reason) add another partition to the
cdrom by using disklabel, but it will last only until the cdrom is unmounted.
A Partition can have both a
In general the interfaces are similar to those described by
device has a fairly low level interface to the system,
devices have a much higher level interface and talk to the system via
A scsi adapter must also be separatly configured into the system
before a scsi cdrom can be configured.
As the scsi adapter is probed during boot, the
bus is scanned for devices. Any devices found which answer as 'Readonly'
type devices will be 'attached' to the
driver. The first found will be attached as
may be used to read the synthesized
structure, which will contain correct figures for the size of the cdrom
should that information be required.
Any number of cdroms may be attached to the system regardless of system
configuration as all resources are dynamically allocated.
calls apply to scsi cdroms
.Bl -tag -width CDIOCPLAYAUDIO____
Read, from the kernel, the in-core copy of the disklabel for the
drive. This will be a ficticious disklabel it will contain information
read from the scsi inquiry commands, and should be the same as
the information printed at boot.
Give the driver a new disklabel to use. The driver will NOT try write the new
disklabel to the disk. (ok?)
Start Audio playback given a track address and length.
Start Audio playback given a block address and length.
Start Audio playback given a 'Minutes/ seconds/ frames' address and length.
Read information from the subchannel at the location specified.
Return summary information about the table of contents for the mounted cdrom.
Return information from the table of contents entries mentionned.
Attach various audio channels to various output channels.
Get information about the volume settings of the output channels.
Change the volume settings of the output channels.
Patch all out[put channels to all source channels.
Patch left source channel to the left output channel and the right
source channel to the right output channel.
Mute output without changing the volume settings.
Attach both output channels to the left source channel.
Attach both output channels to the right source channel.
Turn on debugging for the appropriate device.
Turn off debugging for the appropriate device.
Pause audio play, do not reset the location of the read-head.
Resume audio play, Start at the location of the pause.
Tell the drive to spin-up the cdrom.
Tell the drive to spin-down the cdrom.
ioctls may be used with the
driver, if used against the fourth (raw/whole disk) partiton. (e.g. rcd0d)
When a cdrom is changed in a drive controlled by the
driver, then the act of changing the media will invalidate the
disklabel and information held within the kernel. To stop corruption,
All accesses to the device will be discarded until there are no more
open file descriptors referencing the device. During this period, all
new open attempts will be rejected. When No more open file descriptors
reference the device, the first next open will load a new set of
figures (including disklabel) for the drive.
driver only support SCSI2 standard audio commands. As there are many cdrom
manufacturers who have not followed the standard well, there are many
cdroms for which audio will not work. Some work is planned to support
some of the more common 'broken' cdrom drives however this is not yet
.Bl -tag -width /dev/rcd[0-9][a-h] -compact
.It Pa /dev/rcd[0-9][a-h]
driver appeared in 386BSD 0.1.