Subject: SCSI MMC device abstraction and UDF patch for review
To: None <>
From: Reinoud Zandijk <>
List: tech-kern
Date: 12/21/2005 19:04:13
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Dear developers,

Two patches for review this time. Due to the size of the 2nd i've put them 
both on

The first is a patch on src/sys/dev/scsipi/cd.c that adds two IOCTL's that 
implement a SCSI MultiMediaCommandset (upto MMC-4 for now) device 
abstraction providing pre-chewed readdiscinfo and readtrackinfo ioctls.

For devices like CD-ROM and DVD-ROM that implement only a limited subset of 
the MMC commands the abstraction is helt up as far as possible. Usage of 
the ioctl's is currently blocked for userland to allow its datastructures 
to mature without binary compatability issues. Its a new add-on in that it 
doesn't change existing behaviour and doesn't change any other code.

The second patch is my initial commit of my UDF filingsystem implementation 
for CD and DVD. It is dependent on the 1st patch as it uses the ioctl's to 
avoid it having intimate knowledge of SCSI internals. Its currently 
supports read access to all media types that CD/DVD type drives can 
recognize including DVD-RAM and BD- drives. Write access is planned and in 
preparation. To facilitate this some hooks are present in the code that are 
not strictly needed in a read-only implementation but which allow writing 
to be added more easily. UDF versions upto the latest 2.60 are to be 
supported though due to lack of test media version 2.50 and 2.60 are not 
implemented yet though easy to add. Both open and closed media are 
supported. Support for harddisc partitions and optionally for files (like 
using vnd) is not implemented yet though on my TODO list.

Implemented and tested media types are CD-ROM, CD-R, CD-RW, CD-MRW, 
DVD-ROM, DVD*R, DVD*RW, DVD+MRW but the same code can also read DVD-RAM, 
HD-DVD and BluRay discs. Discs created and written by UDFclient, Nero's 
InCD and Roxio's DirectCD/Drag2Disc read fine.

With regards,
Reinoud Zandijk

Content-Type: application/pgp-signature
Content-Disposition: inline

Version: GnuPG v1.2.6 (NetBSD)