xref: /freebsd/share/man/man4/cd.4 (revision 953a3198a35204535cc9d450f04da982a4fea59b)
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 cd
9.Nm device cd1 target 4 lun 0
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.
55In FreeBSD releases prior to 2.1, the first found will be attached as
56.Em cd0
57and the next,
58.Em cd1
59etc.
60Beginning in 2.1 it is possible to specify what cd unit a device should
61come on line as; refer to
62.Xr scsi 4
63for details on kernel configuration.
64.Pp
65The system utility
66.Xr disklabel 1
67may be used to read the synthesized
68.Xr disklabel 5
69structure, which will contain correct figures for the size of the cdrom
70should that information be required.
71.Pp
72.Sh KERNEL CONFIGURATION
73Any number of cdroms may be attached to the system regardless of system
74configuration as all resources are dynamically allocated.
75
76.Pp
77.Sh IOCTLS
78The following
79.Xr ioctl 2
80calls apply to scsi cdroms
81in the header files
82.Em sys/cdio.h.
83and
84.Em sys/disklabel.h
85
86.Bl -tag -width CDIOCPLAYAUDIO____
87
88.It Dv DIOCGDINFO
89Read, from the kernel, the in-core copy of the disklabel for the
90drive. This will be a ficticious disklabel it will contain information
91read from the scsi inquiry commands, and should be the same as
92the information printed at boot.
93.It Dv DIOCSDINFO
94Give the driver a new disklabel to use. The driver will NOT try write the new
95disklabel to the disk. (ok?)
96.It CDIOCPLAYTRACKS
97Start Audio playback given a track address and length.
98.It CDIOCPLAYBLOCKS
99Start Audio playback given a block address and length.
100.It CDIOCPLAYMSF
101Start Audio playback given a 'Minutes/ seconds/ frames' address and length.
102.It CDIOCREADSUBCHANNEL
103Read information from the subchannel at the location specified.
104.It CDIOREADTOCHEADER
105Return summary information about the table of contents for the mounted cdrom.
106.It CDIOREADTOCENTRYS
107Return information from the table of contents entries mentionned.
108.It CDIOCSETPATCH
109Attach various audio channels to various output channels.
110.It CDIOCGETVOL
111Get information about the volume settings of the output channels.
112.It CDIOCSETVOL
113Change the volume settings of the output channels.
114.It CDIOCSETMONO
115Patch all out[put channels to all source channels.
116.It CDIOCSETSTERIO
117Patch left source channel to the left output channel and the right
118source channel to the right output channel.
119.It CDIOCSETMUTE
120Mute output without changing the volume settings.
121.It CDIOCSETLEFT
122Attach both output channels to the left source channel.
123.It CDIOCSETRIGHT
124Attach both output channels to the right source channel.
125.It CDIOCSETDEBUG
126Turn on debugging for the appropriate device.
127.It CDIOCCLRDEBUG
128Turn off debugging for the appropriate device.
129.It CDIOCPAUSE
130Pause audio play, do not reset the location of the read-head.
131.It CDIOCRESUME
132Resume audio play, Start at the location of the pause.
133.It CDIOCRESET
134Reset the drive.
135.It CDIOCSTART
136Tell the drive to spin-up the cdrom.
137.It CDIOCSTOP
138Tell the drive to spin-down the cdrom.
139.It CDIOCEJECT
140Eject the cdrom.
141.El
142.Pp
143In addition the general
144.Xr scsi 4
145ioctls may be used with the
146.Nm
147driver, if used against the fourth (raw/whole disk) partiton. (e.g. rcd0d)
148.Sh NOTES
149When a cdrom is changed in a drive controlled by the
150.Nm
151driver, then the act of changing the media will invalidate the
152disklabel and information held within the kernel. To stop corruption,
153All accesses to the device will be discarded until there are no more
154open file descriptors referencing the device. During this period, all
155new open attempts will be rejected. When No more open file descriptors
156reference the device, the first next open will load a new set of
157figures (including disklabel) for the drive.
158
159The Audio code in the
160.Nm
161driver only support SCSI2 standard audio commands. As there are many cdrom
162manufacturers who have not followed the standard well, there are many
163cdroms for which audio will not work. Some work is planned to support
164some of the more common 'broken' cdrom drives however this is not yet
165under way.
166
167.Sh FILES
168.Bl -tag -width /dev/rcd[0-9][a-h] -compact
169.It Pa /dev/cd[0-9][a-h]
170block mode scsi disks
171.It Pa /dev/rcd[0-9][a-h]
172raw scsi disks
173.El
174.Sh DIAGNOSTICS
175None.
176.Sh SEE ALSO
177.Xr disklabel 1
178.Xr disklabel 5
179.Xr wd 4
180.Xr sd 4
181.Sh HISTORY
182This
183.Nm
184driver appeared in 386BSD 0.1.
185