Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Aug 2005 15:05:02 +0200
From:      Marc Olzheim <marcolz@stack.nl>
To:        soc-victor@freebsd.org
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: O_NONBLOCK for devices with removable media
Message-ID:  <20050801130502.GA39470@stack.nl>
In-Reply-To: <494025505080104427c3f91f6@mail.gmail.com>
References:  <494025505080104427c3f91f6@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
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

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFC7h3+ezjnobFOgrERAtlKAJwOytkg9PPLqeIXJ6TmSFDwrZRiEwCgynB8
JTtEaJ3En4jNvgYdnKYCN1Q=
=Rrpr
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050801130502.GA39470>