Skip site navigation (1)Skip section navigation (2)
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>