From owner-freebsd-current Thu Apr 6 04:24:28 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id EAA23589 for current-outgoing; Thu, 6 Apr 1995 04:24:28 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id EAA23580 ; Thu, 6 Apr 1995 04:23:56 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id VAA18008; Thu, 6 Apr 1995 21:05:16 +1000 Date: Thu, 6 Apr 1995 21:05:16 +1000 From: Bruce Evans Message-Id: <199504061105.VAA18008@godzilla.zeta.org.au> To: bde@zeta.org.au, jkh@freefall.cdrom.com Subject: Re: Strange kernel printf... Cc: ache@astral.msk.su, freebsd-current@freefall.cdrom.com, rgrimes@gndrsh.aac.dev.com Sender: current-owner@FreeBSD.org Precedence: bulk >Hmmmmm. Would it be useful to have config changed to: >1. Generate arrays of allocated addresses, IRQs (are there any devices > made that more than one?), DMA channels, etc. where it currently holds > only a single value. Config already seem to handle this reasonably: device foo0 at isa? port 1 iomem 2 iosize 3 drq 4 irq 5 vector foointr device foo0 at isa? port 6 iomem 7 iosize 8 drq 9 irq 10 You can repeat everything except the vector and a reasonable arrays are built. >2. Accept a somewhat altered config file specification: >device at [#|?] port [, ..] irq [, ..] drq [, ..] > [conflict_ok [, ..]] Although repeating the device lines is a hack, its syntax is simpler and exactly matches the data structures that should be built, at least in ioconf.c (you wouldn't want variable length arrays or linked lists). >Where "conflict_ok" would take arguments like "iomem, irq, drq, etc." >to enable bits in an "allowed conflicts" mask. This would eliminate >the ALLOW_CONFLICT_* horrors I inflicted upon the code many months ago. I don't like this. Conflicts need to be resolved at runtime. The static conflict checking code in isa.c should go away and be replaced by calls such as register_iobase(iobase, iosize, id, flags); There should be flags for exclusive access and for preventing exclusive access by other drivers. Bruce