libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libcdio-devel] Miscellaneous questions, primarily on design


From: Thomas Schmitt
Subject: Re: [Libcdio-devel] Miscellaneous questions, primarily on design
Date: Sat, 21 Mar 2020 14:11:27 +0100

Hi,

Rocky Bernstein wrote:
> > > In particular there is
> > > read/write (_AM_MMC_RDWR) and read/write exclusive (_AM_MMC_RDWR_EXCL)

I wrote:
> > Aren't those about the exclusive or shared use of the device file ?

> I am not sure I uderstand. The "device file" can be be a device like
> /dev/sr0 or /dev/cdrom with is the CD/ROM device.

For example in cdio_open_am_linux(), _AM_MMC_RDWR causes open(2) with
    open_access_mode |= O_RDWR;
whereas _AM_MMC_RDWR_EXCL causes
    open_access_mode |= O_RDWR | O_EXCL;
On a Linux device file, O_EXCL causes open(2) to fail if another file
descriptor opened with O_EXCL is still open. (This is not the POSIX
meaning of O_EXCL, which is undefined for device files.)

But Samuel May experiences the drive tray locked against the user.
This is a MMC feature, which may or may not be applied by the operating
system on open or by a program which sends the SCSI command to lock the
tray.

  https://www.kernel.org/doc/Documentation/ioctl/cdrom.txt
lists:

  CDROM_LOCKDOOR                        lock or unlock door
        usage:
          int lock;
          ioctl(fd, CDROM_LOCKDOOR, lock);
        inputs:
          Door lock flag, 1=lock, 0=unlock

If higher levels than SCSI/MMC are used, the default behavior of the
operating system can vary.

For example on Linux 3.16 it is normal that USB attached drives have the
tray locked after reading by dd, whereas SATA attached drives can get
ejected without having to seek help from inside the computer.
This might even be Samuel May's problem: Having read data from the drive
by POSIX i/o like read(2).


(I have a little list of Linux bugs. Some diagnosed and with remedy
 proposal. If ever an interested kernel developer reads this: Contact me
 via address@hidden .)


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]