From owner-freebsd-current Wed May 28 06:07:13 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id GAA10276 for current-outgoing; Wed, 28 May 1997 06:07:13 -0700 (PDT) Received: from nlsystems.com (nlsys.demon.co.uk [158.152.125.33]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id GAA10266; Wed, 28 May 1997 06:06:58 -0700 (PDT) Received: from herring.nlsystems.com (herring.nlsystems.com [10.0.0.2]) by nlsystems.com (8.8.5/8.8.5) with SMTP id OAA20078; Wed, 28 May 1997 14:07:33 +0100 (BST) Date: Wed, 28 May 1997 14:07:33 +0100 (BST) From: Doug Rabson To: Stefan Esser cc: "Justin T. Gibbs" , Bruce Evans , current@freebsd.org, gurney_j@resnet.uoregon.edu Subject: Re: cvs commit: src/sys/sys interrupt.h src/sys/kern kern_intr.c In-Reply-To: <19970528143223.25591@x14.mi.uni-koeln.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Wed, 28 May 1997, Stefan Esser wrote: > On May 27, "Justin T. Gibbs" wrote: > > >But the original question was, whether the new shared interrupt > > >support might be applicable to ISA drivers, and the consent seems > > >to be, that it isn't for the reason you give below: > > > > I think that we should support it since I can see it being used not > > only in the sio driver but for other multi-function devices like > > sound cards. Having a separate driver for each function on a card is > > much cleaner than a single monolithic driver and since it seems > > easy to add the ability to handle this case (set a flag in the descriptor > > that says "run me again please"), why not do it? > > Yes, we could do that. This would require that the drivers > keep a pointer to the interrupt descriptors for each "unit". > > We need to modify struct isa_device to hold the pointer, and > have to define another flag bit passed to intr_create() for > the shared edge-trggered case. Whenever an ISA handler is > linked into the chain, a multiplex handler that tests some > bit in the interrupt descriptor for a "needed service" flag. > > This would not slow down the shared level-triggered case, > since thge current simple multiplexer loop could be kept. If we do this, can the interrupt descriptor fiddling happen through a function call? I don't want drivers to know what is inside this structure. In fact I would be happiest if intrec wasn't declared in a public header file at all but was private to kern_intr.c -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891 Fax: +44 181 381 1039