xref: /freebsd/share/man/man4/cd.4 (revision 17ee9d00bc1ae1e598c38f25826f861e4bc6c3ce)
1.Dd August 27, 1993
2.Dt CD 4
3.Os FreeBSD
4.Sh NAME
5.Nm cd
6.Nd scsi cdrom driver
7.Sh SYNOPSIS
8.Nm device-driver cd
9.Op Ar count
10.Sh DESCRIPTION
11The
12.Xr cd
13driver provides support for a
14.Em scsi
15cdrom. It allows the cdrom
16to be divided up into a set of pseudo devices called
17.Em partitions.
18In an attempt to look like regular disks the
19.Nm
20driver synthesises a partition table, with one partition covering the entire
21cdrom. A user might (for some amazing reason) add another partition to the
22cdrom by using disklabel, but it will last only until the cdrom is unmounted.
23A Partition can have both a
24.Em raw
25interface
26and a
27.Em Block mode
28interface.
29In general the interfaces are similar to those described by
30.Xr wd 4
31or
32.Xr sd 4 .
33
34.Pp
35Where the
36.Xr wd 4
37device has a fairly low level interface to the system,
38.Em SCSI
39devices have a much higher level interface and talk to the system via
40a
41.Em SCSI Adapter
42and a
43.Em Scsi Adapter driver
44e.g.
45.Xr AHA1542 .
46A scsi adapter must also be separatly configured into the system
47before a scsi cdrom can be configured.
48.Pp
49As the scsi adapter is probed during boot, the
50.Em SCSI
51bus is scanned for devices. Any devices found which answer as 'Readonly'
52type devices will be 'attached' to the
53.Nm
54driver. The first found will be attached as
55.Em cd0
56and the next,
57.Em cd1
58etc.
59.Pp
60The system utility
61.Xr disklabel 1
62may be used to read the synthesized
63.Xr disklabel 5
64structure, which will contain correct figures for the size of the cdrom
65should that information be required.
66.Pp
67.Sh KERNEL CONFIGURATION
68Any number of cdroms may be attached to the system regardless of system
69configuration as all resources are dynamically allocated.
70
71.Pp
72.Sh IOCTLS
73The following
74.Xr ioctl 2
75calls apply to scsi cdroms
76in the header files
77.Em sys/cdio.h.
78and
79.Em sys/disklabel.h
80
81.Bl -tag -width CDIOCPLAYAUDIO____
82
83.It Dv DIOCGDINFO
84Read, from the kernel, the in-core copy of the disklabel for the
85drive. This will be a ficticious disklabel it will contain information
86read from the scsi inquiry commands, and should be the same as
87the information printed at boot.
88.It Dv DIOCSDINFO
89Give the driver a new disklabel to use. The driver will NOT try write the new
90disklabel to the disk. (ok?)
91.It CDIOCPLAYTRACKS
92Start Audio playback given a track address and length.
93.It CDIOCPLAYBLOCKS
94Start Audio playback given a block address and length.
95.It CDIOCPLAYMSF
96Start Audio playback given a 'Minutes/ seconds/ frames' address and length.
97.It CDIOCREADSUBCHANNEL
98Read information from the subchannel at the location specified.
99.It CDIOREADTOCHEADER
100Return summary information about the table of contents for the mounted cdrom.
101.It CDIOREADTOCENTRYS
102Return information from the table of contents entries mentionned.
103.It CDIOCSETPATCH
104Attach various audio channels to various output channels.
105.It CDIOCGETVOL
106Get information about the volume settings of the output channels.
107.It CDIOCSETVOL
108Change the volume settings of the output channels.
109.It CDIOCSETMONO
110Patch all out[put channels to all source channels.
111.It CDIOCSETSTERIO
112Patch left source channel to the left output channel and the right
113source channel to the right output channel.
114.It CDIOCSETMUTE
115Mute output without changing the volume settings.
116.It CDIOCSETLEFT
117Attach both output channels to the left source channel.
118.It CDIOCSETRIGHT
119Attach both output channels to the right source channel.
120.It CDIOCSETDEBUG
121Turn on debugging for the appropriate device.
122.It CDIOCCLRDEBUG
123Turn off debugging for the appropriate device.
124.It CDIOCPAUSE
125Pause audio play, do not reset the location of the read-head.
126.It CDIOCRESUME
127Resume audio play, Start at the location of the pause.
128.It CDIOCRESET
129Reset the drive.
130.It CDIOCSTART
131Tell the drive to spin-up the cdrom.
132.It CDIOCSTOP
133Tell the drive to spin-down the cdrom.
134.It CDIOCEJECT
135Eject the cdrom.
136.El
137.Pp
138In addition the general
139.Xr scsi 4
140ioctls may be used with the
141.Nm
142driver, if used against the fourth (raw/whole disk) partiton. (e.g. rcd0d)
143.Sh NOTES
144When a cdrom is changed in a drive controlled by the
145.Nm
146driver, then the act of changing the media will invalidate the
147disklabel and information held within the kernel. To stop corruption,
148All accesses to the device will be discarded until there are no more
149open file descriptors referencing the device. During this period, all
150new open attempts will be rejected. When No more open file descriptors
151reference the device, the first next open will load a new set of
152figures (including disklabel) for the drive.
153
154The Audio code in the
155.Nm
156driver only support SCSI2 standard audio commands. As there are many cdrom
157manufacturers who have not followed the standard well, there are many
158cdroms for which audio will not work. Some work is planned to support
159some of the more common 'broken' cdrom drives however this is not yet
160under way.
161
162.Sh FILES
163.Bl -tag -width /dev/rcd[0-9][a-h] -compact
164.It Pa /dev/cd[0-9][a-h]
165block mode scsi disks
166.It Pa /dev/rcd[0-9][a-h]
167raw scsi disks
168.El
169.Sh DIAGNOSTICS
170None.
171.Sh SEE ALSO
172.Xr disklabel 1
173.Xr disklabel 5
174.Xr wd 4
175.Xr sd 4
176.Sh HISTORY
177This
178.Nm
179driver appeared in 386BSD 0.1.
180