Revise section regarding "SCSI, SCSI commands, and MMC commands"

This commit is contained in:
R. Bernstein
2010-01-22 04:44:31 -05:00
parent 44bafdddc7
commit 859ba4e37a
2 changed files with 73 additions and 27 deletions

View File

@@ -15,7 +15,7 @@
This manual documents @code{libcdio}, the GNU CD Input and Control This manual documents @code{libcdio}, the GNU CD Input and Control
Library. Library.
Copyright @copyright{} 2003, 2004, 2005, 2006, 2007, 2008 Rocky Copyright @copyright{} 2003, 2004, 2005, 2006, 2007, 2008, 2010 Rocky
Bernstein and Herbert Valerio Riedel. Bernstein and Herbert Valerio Riedel.
@quotation @quotation
@@ -2007,7 +2007,7 @@ image.
@chapter CD-ROM Access and Drivers @chapter CD-ROM Access and Drivers
@menu @menu
* MMC:: ``SCSI'' Multimedia Commands (MMC) * SCSI mess:: SCSI, SCSI commands, and MMC commands
* Access Modes:: Access Modes * Access Modes:: Access Modes
* Accessing Driver Parameters:: Accessing Driver Parameters * Accessing Driver Parameters:: Accessing Driver Parameters
@@ -2018,43 +2018,56 @@ image.
* OS X:: OSX (non-exclussive access) * OS X:: OSX (non-exclussive access)
@end menu @end menu
@node MMC @node SCSI mess
@section Multimedia Commands (MMC) @section SCSI, SCSI commands, and MMC commands
In contrast to the rest of the sections in this chapter, MMC Historically, SCSI referred to a class of hardware devices and device
(Multimedia commands) is not a driver per se, although many of the controllers, bus technology and the data cables and protocols which
CD-ROM drivers do in fact issue MMC commands. MMC commands attached to such devices. This is now called ``Parallel SCSI''.
gives (in theory) a broad and uniform way to access a CD-ROM drive.
If your CD-ROM drive understands MMC commands this is probably gives A specification standard grew out of the @emph{commands} that
the most flexibility in control. SCSI and ATAPI CD-ROM devices controlled such SCSI devices, but now covers a wider variety of bus
generally support a fairly large set of MMC commands. technologies including Parallel SCSI, ATA/ATAPI, Serial ATA, Universal
Serial Bus (USB versions 1.1 and 2.0), and High Performance Serial Bus
(IEEE 1394, 1394A, and 1394B).
Another similar class of hardware devices and controllers is called ATA
and a command interface to that is called ATAPI (ATA Packetized
Interface). ATAPI provides a mechanism for transferring and executing
SCSI commands.
MMC (Multimedia commands) is a specification which adds special SCSI
commands for CD, DVD, Blu-Ray devices.
If your optical drive understands MMC commands as most do nowadays,
this is probably gives the most flexibility in control. SCSI and ATAPI
CD-ROM devices generally support a fairly large set of MMC
commands. Unfortunately on most Operating Systems, one may need to do
additional steps to allow access in this manner.
The name ``SCSI MMC'' is often found in the literature in The name ``SCSI MMC'' is often found in the literature in
specifications and on the Internet. The ``SCSI'' part is probably a specifications and on the Internet. The ``SCSI'' part is probably a
little bit misleading because a drive can understand ``SCSI MMC'' little bit misleading because a drive can understand ``SCSI MMC''
commands but not use a SCSI interface---ATAPI CD-ROMs are one such commands but not use a SCSI bus protocol---ATAPI CD-ROMs are one such
broad class of examples. In fact there are drivers to ``encapsulate'' broad class of examples. In fact there are drivers to ``encapsulate''
non-SCSI drives or a non-MMC-compliant drives and make them act like non-SCSI drives on non-MMC-compliant drives and make them act like MMC
MMC drives. I believe that many OS SCSI ``pass-through'' mechanisms do drives. I believe that many Operating System SCSI ``pass-through''
roughly the same thing. mechanisms do roughly the same thing.
The name ``SCSI MMC'' is no doubt due to the fact that these commands
grew out of the SCSI command set and thus were bundled in them.
For clarity and precision we will use the term ``MMC'' rather than For clarity and precision we will use the term ``MMC'' rather than
``SCSI MMC''. ``SCSI MMC''.
One of the problems with MMC is that there are so many different One of the problems with MMC is that there are so many different
``standards''. In particular there are MMC ``standards''. In particular:
@url{ftp://ftp.t10.org/t10/drafts/mmc/}, MMC 2 @itemize
@url{ftp://ftp.t10.org/t10/drafts/mmc2/}, MMC 3 @item MMC --- @url{ftp://ftp.t10.org/t10/drafts/mmc/},
@url{ftp://ftp.t10.org/t10/drafts/mmc3/}, MMC 4 @item MMC 2 --- @url{ftp://ftp.t10.org/t10/drafts/mmc2/}
@url{ftp://ftp.t10.org/t10/drafts/mmc4/}, and MMC 5 @item MMC 3 --- @url{ftp://ftp.t10.org/t10/drafts/mmc3/}
@url{ftp://ftp.t10.org/t10/drafts/mmc5/} standards several ``drafts'' @item MMC 4 --- @url{ftp://ftp.t10.org/t10/drafts/mmc4/}
for each standard. The good news about ATAPI drives is that they too @item MMC 5 --- @url{ftp://ftp.t10.org/t10/drafts/mmc5/}
understand some sort of MMC subset. The bad news (as I understand @end itemize
it) is that they do not understand any full MMC command set. along with the several ``drafts'' of these.
for each standard.
Another problem with the MMC commands related to the variations in Another problem with the MMC commands related to the variations in
standards is the variation in the commands themselves and there are standards is the variation in the commands themselves and there are
@@ -2086,6 +2099,11 @@ alternative-size MMC commands. In @code{cdio/scsi-mmc.h} you will
find a little bit of this for example via the routine find a little bit of this for example via the routine
@code{scsi_mmc_get_drive_cap()}. However much more work is needed. @code{scsi_mmc_get_drive_cap()}. However much more work is needed.
Finally, in @code{libcdio} there is a driver access mode (not a
driver) called ``MMC''. It indicates to the specific drivers to in
issue MMC commands instead of other OS-specific or native drive
commands.
@node Access Modes @node Access Modes
@section Access Modes @section Access Modes
@@ -2300,8 +2318,35 @@ one CD-image format to another. Basically the first image format is
``parsed'' into the common internal format and then from this ``parsed'' into the common internal format and then from this
structure it is not parsed. structure it is not parsed.
@subsection @samp{libcdio_cdda}
This library is intended to give access CD-DA disks using Monty's
cd-paranoia library underneath.
To be completed....
@subsection @samp{libcdio_paranoia}
This library is intended to give access Monty's cd-paranoia
library. It is the gap detection and jitter correction part without
the part dealing with CD-DA reading.
To be completed....
@subsection @samp{libiso9660} @subsection @samp{libiso9660}
This library is intended to give access and manipulate a ISO-9600 file
image. One part of it is concerned with the the entire ISO-9660 file
system image, and the other part access routines for manipulating data
structures and fields that go into such an image.
To be completed....
@subsection @samp{libudf}
This library is intended to give access and manipulate a UDF file
image.
To be completed.... To be completed....
@subsection Coding Conventions @subsection Coding Conventions

View File

@@ -7,6 +7,7 @@
/bincue /bincue
/follow_symlink /follow_symlink
/freebsd /freebsd
/bincue
/gnu_linux /gnu_linux
/mmc /mmc
/nrg /nrg