Revise section regarding "SCSI, SCSI commands, and MMC commands"
This commit is contained in:
@@ -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
|
||||||
|
|||||||
1
test/driver/.gitignore
vendored
1
test/driver/.gitignore
vendored
@@ -7,6 +7,7 @@
|
|||||||
/bincue
|
/bincue
|
||||||
/follow_symlink
|
/follow_symlink
|
||||||
/freebsd
|
/freebsd
|
||||||
|
/bincue
|
||||||
/gnu_linux
|
/gnu_linux
|
||||||
/mmc
|
/mmc
|
||||||
/nrg
|
/nrg
|
||||||
|
|||||||
Reference in New Issue
Block a user