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