From owner-freebsd-current Wed May 28 05:33:37 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id FAA09138 for current-outgoing; Wed, 28 May 1997 05:33:37 -0700 (PDT) Received: from Sisyphos.MI.Uni-Koeln.DE (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id FAA09133 for ; Wed, 28 May 1997 05:33:34 -0700 (PDT) Received: from x14.mi.uni-koeln.de (annexr3-2.slip.Uni-Koeln.DE) by Sisyphos.MI.Uni-Koeln.DE with SMTP id AA10511 (5.67b/IDA-1.5 for ); Wed, 28 May 1997 14:33:06 +0200 Received: (from se@localhost) by x14.mi.uni-koeln.de (8.8.5/8.6.9) id OAA00847; Wed, 28 May 1997 14:32:23 +0200 (CEST) X-Face: " Date: Wed, 28 May 1997 14:32:23 +0200 From: Stefan Esser To: "Justin T. Gibbs" Cc: 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 References: <19970527200740.32152@x14.mi.uni-koeln.de> <199705271911.NAA04925@pluto.plutotech.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.74 In-Reply-To: <199705271911.NAA04925@pluto.plutotech.com>; from Justin T. Gibbs on Tue, May 27, 1997 at 02:09:00PM -0600 Sender: owner-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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. Regards, STefan