Date: Wed, 28 Feb 2001 14:11:24 +0000 (GMT) From: Doug Rabson <dfr@nlsystems.com> To: Kostas Magoutis <magoutis@eecs.harvard.edu> Cc: <freebsd-arch@freebsd.org> Subject: Re: Logical device instances Message-ID: <Pine.BSF.4.33.0102281408270.35940-100000@herring.nlsystems.com> In-Reply-To: <200102280048.f1S0m9n09106@wally.eecs.harvard.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 27 Feb 2001, Kostas Magoutis wrote: > I am writing a device driver for a user-level networking card. User > level code interacts with it via open, close, mmap, and ioctl. A > separate logical instance of the device needs to be created each time > a process opens the device (as in when a file is created when a vnode > is opened). The device driver needs to have a way to find out on what > logical instance of the device a system call is performed. It seems > to me that at present (with either specfs or devfs), the device driver > has no way to find out on what opened instance of the device an > operation is performed. Am I missing something or the present device > driver interfaces just don't support such functionality? Until yesterday, I thought that there was no way to do this (I wanted to do this when porting a Linux device driver). As it turns out, there is a cunning trick which you can use to generate a new 'struct file' with your own ops table and private data. Check out sys/dev/streams/streams.c and see what it does at the end of streamsopen(). -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.33.0102281408270.35940-100000>