Subject: Re: Kernel source tree specifications
To: None <tech-kern@netbsd.org>
From: Ian Zagorskih <ianzag@megasignal.com>
List: tech-kern
Date: 06/21/2003 02:41:54
On Wednesday 18 June 2003 23:54, Ian Zagorskih wrote:

Thanks all for your replies, finally I found the way :)

Just a note from userland: config and autoconf stuff could [must ?!] be=20
documented and described much better. From my last three week's learning=20
experience this is the key thing i spent the most of my time to do realiz=
e=20
how a hell it works. Of course autoconf source code is avaibale and so on=
 but=20
if it were well documented with examples and user guides a'la "step-by-st=
ep"=20
it would save me *tons* of time and i bet it would save me time in the=20
future. Pseudo device driver guide is fine but IMO it's just the very ver=
y=20
beginning.

Ok, not so matter.

A question is: is it supposed to get close call on *every* open call in d=
river=20
code ? I.e. code like this:

fd =3D open("/dev/mydev1");
ioctl(fd);   /* this call blocks process for some significant time... */
close(fd);

=2E..triggers my open, ioctl and close callbacks in driver just fine and =
in=20
right order. Ok. But when i execute several clients doing code above call=
s=20
are like:

open1
ioctl1
open2
ioctl2
close1

i.e. *no close2* call as if process2 would still exist and have fd opene.=
 But=20
it isn't so. Is it supposed to work this way i.e. close callback is calle=
d=20
only once per set of clients ? If it is then why ? What i missed ?

Thank you.

// wbr