diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man4/cd.4 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man4/cd.4')
| -rw-r--r-- | static/netbsd/man4/cd.4 | 409 |
1 files changed, 409 insertions, 0 deletions
diff --git a/static/netbsd/man4/cd.4 b/static/netbsd/man4/cd.4 new file mode 100644 index 00000000..d19f6b2a --- /dev/null +++ b/static/netbsd/man4/cd.4 @@ -0,0 +1,409 @@ +.\" $NetBSD: cd.4,v 1.20 2012/06/23 20:29:06 wiz Exp $ +.\" +.\" Copyright (c) 1996 +.\" Julian Elischer <julian@freebsd.org>. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd June 23, 2012 +.Dt CD 4 +.Os +.Sh NAME +.Nm cd +.Nd SCSI and ATAPI CD-ROM driver +.Sh SYNOPSIS +.Cd "cd* at scsibus? target ? lun ?" +.Cd "cd1 at scsibus0 target 4 lun 0" +.Cd "cd* at atapibus? drive ? flags 0x0000" +.Sh DESCRIPTION +The +.Nm cd +driver provides support for a Small Computer Systems Interface +.Pq Tn SCSI +bus and Advanced Technology Attachment Packet Interface +.Pq Tn ATAPI +Compact Disc-Read Only Memory +.Pq Tn CD-ROM +drive. +In an attempt to look like a regular disk, the +.Nm +driver synthesizes a partition table, with one partition covering the entire +.Tn CD-ROM . +It is possible to modify this partition table using +.Xr disklabel 8 , +but it will only last until the +.Tn CD-ROM +is unmounted. +In general the interfaces are similar to those described by +.Xr wd 4 +and +.Xr sd 4 . +.Pp +As the +.Tn SCSI +adapter is probed during boot, the +.Tn SCSI +bus is scanned for devices. +Any devices found which answer as `Read-only' +type devices will be `attached' to the +.Nm +driver. +.Pp +For the use of flags with ATAPI devices, see +.Xr wd 4 . +.Pp +The system utility +.Xr disklabel 8 +may be used to read the synthesized +disk label +structure, which will contain correct figures for the size of the +.Tn CD-ROM +should that information be required. +.Sh KERNEL CONFIGURATION +Any number of +.Tn CD-ROM +devices may be attached to the system regardless of system +configuration as all resources are dynamically allocated. +.Sh IOCTLS +The following +.Xr ioctl 2 +calls which apply to +.Tn SCSI +.Tn CD-ROM +drives are defined +in the header files +.In sys/cdio.h +and +.In sys/disklabel.h . +.Pp +.Bl -tag -width CDIOCREADSUBCHANNEL +.It Dv DIOCGDINFO +.It Dv DIOCSDINFO +.Pq Li "struct disklabel" +Read or write the in-core copy of the disklabel for the +drive. +The disklabel is initialized with information +read from the +.Tn SCSI +inquiry commands, and should be the same as +the information printed at boot. +This structure is defined in +.Xr disklabel 5 . +.\".It Dv CDIOCCAPABILITY +.\".Pq Li "struct ioc_capability" +.\"Retrieve information from the drive on what features it supports. +.\"The information is returned in the following structure: +.\".Bd -literal -offset indent +.\"struct ioc_capability { +.\" u_long play_function; +.\"#define CDDOPLAYTRK 0x00000001 +.\" /* Can play tracks/index */ +.\"#define CDDOPLAYMSF 0x00000002 +.\" /* Can play msf to msf */ +.\"#define CDDOPLAYBLOCKS 0x00000004 +.\" /* Can play range of blocks */ +.\"#define CDDOPAUSE 0x00000100 +.\" /* Output can be paused */ +.\"#define CDDORESUME 0x00000200 +.\" /* Output can be resumed */ +.\"#define CDDORESET 0x00000400 +.\" /* Drive can be completely reset */ +.\"#define CDDOSTART 0x00000800 +.\" /* Audio can be started */ +.\"#define CDDOSTOP 0x00001000 +.\" /* Audio can be stopped */ +.\"#define CDDOPITCH 0x00002000 +.\" /* Audio pitch can be changed */ +.\" +.\" u_long routing_function; +.\"#define CDREADVOLUME 0x00000001 +.\" /* Volume settings can be read */ +.\"#define CDSETVOLUME 0x00000002 +.\" /* Volume settings can be set */ +.\"#define CDSETMONO 0x00000100 +.\" /* Output can be set to mono */ +.\"#define CDSETSTEREO 0x00000200 +.\" /* Output can be set to stereo (def) */ +.\"#define CDSETLEFT 0x00000400 +.\" /* Output can be set to left only */ +.\"#define CDSETRIGHT 0x00000800 +.\" /* Output can be set to right only */ +.\"#define CDSETMUTE 0x00001000 +.\" /* Output can be muted */ +.\"#define CDSETPATCH 0x00008000 +.\" /* Direct routing control allowed */ +.\" +.\" u_long special_function; +.\"#define CDDOEJECT 0x00000001 +.\" /* The tray can be opened */ +.\"#define CDDOCLOSE 0x00000002 +.\" /* The tray can be closed */ +.\"#define CDDOLOCK 0x00000004 +.\" /* The tray can be locked */ +.\"#define CDREADHEADER 0x00000100 +.\" /* Can read Table of Contents */ +.\"#define CDREADENTRIES 0x00000200 +.\" /* Can read TOC Entries */ +.\"#define CDREADSUBQ 0x00000200 +.\" /* Can read Subchannel info */ +.\"#define CDREADRW 0x00000400 +.\" /* Can read subcodes R-W */ +.\"#define CDHASDEBUG 0x00004000 +.\" /* The tray has dynamic debugging */ +.\"}; +.\".Ed +.It Dv CDIOCPLAYTRACKS +.Pq Li "struct ioc_play_track" +Start audio playback given a track address and length. +The structure is defined as follows: +.Bd -literal -offset indent +struct ioc_play_track +{ + u_char start_track; + u_char start_index; + u_char end_track; + u_char end_index; +}; +.Ed +.It Dv CDIOCPLAYBLOCKS +.Pq Li "struct ioc_play_blocks" +Start audio playback given a block address and length. +The structure is defined as follows: +.Bd -literal -offset indent +struct ioc_play_blocks +{ + int blk; + int len; +}; +.Ed +.It Dv CDIOCPLAYMSF +.Pq Li "struct ioc_play_msf" +Start audio playback given a `minutes-seconds-frames' address and length. +The structure is defined as follows: +.Bd -literal -offset indent +struct ioc_play_msf +{ + u_char start_m; + u_char start_s; + u_char start_f; + u_char end_m; + u_char end_s; + u_char end_f; +}; +.Ed +.It Dv CDIOCREADSUBCHANNEL +.Pq Li "struct ioc_read_subchannel" +Read information from the subchannel at the location specified by this +structure: +.Bd -literal -offset indent +struct ioc_read_subchannel { + u_char address_format; +#define CD_LBA_FORMAT 1 +#define CD_MSF_FORMAT 2 + u_char data_format; +#define CD_SUBQ_DATA 0 +#define CD_CURRENT_POSITION 1 +#define CD_MEDIA_CATALOG 2 +#define CD_TRACK_INFO 3 + u_char track; + int data_len; + struct cd_sub_channel_info *data; +}; +.Ed +.It Dv CDIOREADTOCHEADER +.Pq Li "struct ioc_toc_header" +Return summary information about the table of contents for the mounted +.Tn CD-ROM . +The information is returned into the following structure: +.Bd -literal -offset indent +struct ioc_toc_header { + u_short len; + u_char starting_track; + u_char ending_track; +}; +.Ed +.It Dv CDIOREADTOCENTRYS +.Pq Li "struct ioc_read_toc_entry" +Return information from the table of contents entries mentioned. +(Yes, this command name is misspelled). +The argument structure is defined as follows: +.Bd -literal -offset indent +struct ioc_read_toc_entry { + u_char address_format; + u_char starting_track; + u_short data_len; + struct cd_toc_entry *data; +}; +.Ed +The requested data is written into an area of size +.Li data_len +and pointed to by +.Li data . +.It Dv CDIOCSETPATCH +.Pq Li "struct ioc_patch" +Attach various audio channels to various output channels. +The argument structure is defined thusly: +.Bd -literal -offset indent +struct ioc_patch { + u_char patch[4]; + /* one for each channel */ +}; +.Ed +.It Dv CDIOCGETVOL +.It Dv CDIOCSETVOL +.Pq Li "struct ioc_vol" +Get (set) information about the volume settings of the output channels. +The argument structure is as follows: +.Bd -literal -offset indent +struct ioc_vol +{ + u_char vol[4]; + /* one for each channel */ +}; +.Ed +.It Dv CDIOCSETMONO +Patch all output channels to all source channels. +.It Dv CDIOCSETSTEREO +Patch left source channel to the left output channel and the right +source channel to the right output channel. +.It Dv CDIOCSETMUTE +Mute output without changing the volume settings. +.It Dv CDIOCSETLEFT +.It Dv CDIOCSETRIGHT +Attach both output channels to the left (right) source channel. +.It Dv CDIOCSETDEBUG +.It Dv CDIOCCLRDEBUG +Turn on (off) debugging for the appropriate device. +.It Dv CDIOCPAUSE +.It Dv CDIOCRESUME +Pause (resume) audio play, without resetting the location of the read-head. +.It Dv CDIOCRESET +Reset the drive. +.It Dv CDIOCSTART +.It Dv CDIOCSTOP +Tell the drive to spin-up (-down) the +.Tn CD-ROM . +.It Dv CDIOCALLOW +.It Dv CDIOCPREVENT +Tell the drive to allow (prevent) manual ejection of the +.Tn CD-ROM +disc. +Not all drives support this feature. +.It Dv CDIOCEJECT +Eject the +.Tn CD-ROM . +.It Dv CDIOCLOADUNLOAD +Cause the ATAPI changer to load or unload discs. +.It Dv CDIOCCLOSE +Tell the drive to close its door and load the media. +Not all drives support this feature. +.It Dv DIOCTUR +Test unit ready - to allow userland to silently check for presence of media. +.\" +.\".It Dv CDIOCPITCH +.\".Pq Li "struct ioc_pitch" +.\"For drives that support it, this command instructs the drive to play +.\"the audio at a faster or slower rate than normal. +.\"Values of +.\".Li speed +.\"between -32767 and -1 result in slower playback; a zero value +.\"indicates normal speed; and values from 1 to 32767 give faster playback. +.\"Drives with less than 16 bits of resolution will silently +.\"ignore less-significant bits. +.\"The structure is defined thusly: +.\".Bd -literal -offset indent +.\"struct ioc_pitch +.\"{ +.\" short speed; +.\"}; +.\".Ed +.El +.Pp +In addition the general +.Xr scsi 4 +ioctls may be used with the +.Nm +driver, if used against the `whole disk' partition (i.e. +.Pa /dev/rcd0d +for the bebox and i386 port, +.Pa /dev/rcd0c +for all other ports). +.Sh NOTES +When a +.Tn CD-ROM +is changed in a drive controlled by the +.Nm +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 parameters (including disklabel) +for the drive. +.Pp +The audio code in the +.Nm +driver only support +.Tn SCSI-2 +standard audio commands. +Because many +.Tn CD-ROM +manufacturers have not followed the standard, there are many +.Tn CD-ROM +drives for which audio will not work. +Some work is planned to support some of the more common `broken' +.Tn CD-ROM +drives; however, this is not yet under way. +.Sh FILES +.Bl -tag -width /dev/rcd[0-9][a-h] -compact +.It Pa /dev/cd[0-9][a-h] +block mode +.Tn CD-ROM +devices +.It Pa /dev/rcd[0-9][a-h] +raw mode +.Tn CD-ROM +devices +.El +.Sh DIAGNOSTICS +None. +.Sh SEE ALSO +.Xr intro 4 , +.Xr scsi 4 , +.Xr sd 4 , +.Xr wd 4 , +.Xr disklabel 5 , +.Xr disklabel 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Tn 386BSD 0.1 . +.Sh BUGS +The names of the structures used for the third argument to +.Fn ioctl +were poorly chosen, and a number of spelling errors have survived in +the names of the +.Fn ioctl +commands. |
