Subject: multiple cdev open/close
To: None <tech-kern@netbsd.org>
From: Jiri Slaby <jirislaby@gmail.com>
List: tech-kern
Date: 09/04/2006 11:20:45
Hello,

I have netbsd cdev driver. I do multiple opens (more instances) on it, is there 
any way to get know about each close of these instances?

'A' process does:
open
ioctl(START_IT) + others
for (;;) {
poll
ioctl(LOCK_IT)
read it by mmap
ioctl(UNLOCK_IT)
}

^C, so kernel calls close for it and releases A process' resources.

If there is also process B, which does the very same thing, for first process 
killed there is no close call and kernel turns into ddb. I do need to know about 
all closes -- is there such a way?

Maybe this breaks some netbsd development rules. Ok, then what's the matter of 
implementing multiple access of processes into kernel space -- userspace mmap 
area with data filled by the driver. Each process (instance) has its own queue, 
which is filled by the driver according to hardware data.

thanks,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E