[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-devel] Re: Submission of new mmc function for libcdio
From: |
Thomas Schmitt |
Subject: |
[Libcdio-devel] Re: Submission of new mmc function for libcdio |
Date: |
Wed, 27 Jan 2010 22:11:43 +0100 |
Hi,
i am not in charge for submissions.
Nevertheless my two cents about MMC:
> http://www.13thmonkey.org/documentation/SCSI/
Consider to read at least up to MMC-3.
MMC-1 is ok for most CD things, but MMC-2 and
MMC-3 added more CD info.
MMC-5 is current, but it lacks some CD info
that was present in earlier versions.
> mmc_run_cmd (p_cdio, 0, &cdb, SCSI_MMC_DATA_READ, sizeof(buf), &buf);
> if (buf[2] & 0x10) //works even if the 'mmc_run_cmd' command fails
One should examine the sense reply of the
command in order to determine whether its payload
is valid or not.
See MMC-1 Annex A, Additional sense codei for CD.
In the git version of libcdio you can get
the sense bytes by mmc_last_cmd_sense().
This is implemented for Linux and FreeBSD,
currently.
<cdio/mmc.h>:
/** Obtain the SCSI sense reply of the most-recently-performed MMC command.
These bytes give an indication of possible problems which occured in
the drive while the command was performed. With some commands they tell
about the current state of the drive (e.g. 00h TEST UNIT READY).
@param sense returns the sense bytes received from the drive.
This is allocated memory or NULL if no sense bytes are
available. Dispose non-NULL pointers by free() when
no longer needed.
See SPC-3 4.5.3 Fixed format sense data.
SCSI error codes as of SPC-3 Annex D, MMC-5 Annex F:
sense[2]&15 = Key , sense[12] = ASC , sense[13] = ASCQ
@return number of valid bytes in sense,
0 in case of no sense bytes available,
<0 in case of internal error.
*/
int mmc_last_cmd_sense ( const CdIo_t *p_cdio, unsigned char **sense);
A more general method for media type detection
is the Current Profile from 46h GET CONFIGURATION
which appears in MMC-2 (see also 5.4. Profile
Definitions).
It actually tells the drive capabilities with
the media, not the media capabilities themselves.
But a CD-ROM drive is allowed to report a CD-RW
as non-erasable, too.
Have a nice day :)
Thomas
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Frank Endres, 2010/01/27
- [Libcdio-devel] Re: Submission of new mmc function for libcdio,
Thomas Schmitt <=
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/28
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/28
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Frank Endres, 2010/01/28
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/28
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/28
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/29
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/29