O_NONBLOCK for devices with removable media

Marc Olzheim marcolz at stack.nl
Mon Aug 1 13:05:04 GMT 2005


On Mon, Aug 01, 2005 at 02:42:21PM +0300, victor cruceru wrote:
> Hi all,
> I'm just wondering if it's OK for an open syscall on such a device (i.e. 
> /dev/acd0 or /dev/da1 with a CF reader attached) to block till the media is 
> ready or a timeout occurs.

I'd say that depends completely on whether you supply O_NONBLOCK or not,
so yes.

Quoted from a sound driver discussion at: 
http://sourceforge.net/mailarchive/message.php?msg_id=10011826


 On block devices, O_NONBLOCK also is a way to say "don't try to do any 
 device discovery", ie you can do a O_NONBLOCK open on a removable disk 
 that doesn"t even have any media in it. Again, this has _nothing_ to do 
 with whether the device is "busy" or not.

...

 Short summary:
 
  - O_NONBLOCK should generally be seen as just setting the O_NONBLOCK flag 
    "early" (ie it"s conceptually equivalent to doing a "F_SETFL" fcntl 
    before the open. It _may_ affect the open itself, but when it does, it 
    is generally considered to mean that you can open something that isn't 
    even _reachable_.
 
  - POSIX doesn't say anything much about its behaviour, except for named 
    pipes, where it says the total reverse of what ALSA does. But that 
    doesn't actually mean anything, because even that is very much defined 
    as a special case by POSIX.

Marc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20050801/da0a06d9/attachment.bin


More information about the freebsd-hackers mailing list