Date: Thu, 01 Feb 2007 10:24:58 -0800 From: Julian Elischer <julian@elischer.org> To: Luigi Rizzo <rizzo@icir.org> Cc: freebsd-arch@freebsd.org Subject: Re: configurable device (and other) tables in the kernel ? Message-ID: <45C2307A.8000206@elischer.org> In-Reply-To: <20070201091605.A82313@xorpc.icir.org> References: <20070131115148.A60420@xorpc.icir.org> <200702011109.12821.jhb@freebsd.org> <20070201091605.A82313@xorpc.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Luigi Rizzo wrote: > On Thu, Feb 01, 2007 at 11:09:12AM -0500, John Baldwin wrote: >> On Wednesday 31 January 2007 14:51, Luigi Rizzo wrote: > ... >>> We have several tables in our kernel and modules, >>> containing at least device-id tables (pci, usb), >>> quirks for certain devices, and maybe more (i am excluding > ... >> Windows and MAC OS X both use plain text files to hold things like PCI device >> IDs to match drivers to devices. OS X uses an XML file format that lets you > > plain text files! > > too obvious to think of it :) > > but, where can i find an example of a piece of kernel code that can > read from a file "safely" (i.e. say in the modevent handler or maybe > at device probe time) ? > Something like > > char *load_file_into_kernel_memody(filename, max_size, &error); > > I have looked at the kernel side of execve and kldload, they are not > exactly straightforward (at least there are seveal indirections). > Maybe there are other simpler ones ? > >> list the PCI ID's a driver supports and the kernel auto-loads driver modules >> by matching on PCI IDs. Many drivers can't be helped by this though, as they >> use the device ID for for device-specific behavior (such as em(4) or >> brgpy(4)). I like the idea of specifying aliases.. "if you see XXXX then pretend you saw YYYY and treat it the same." > > well, that's a two-phase process, if you have the above table-based > mechanism, the kernel (actually the bus driver i would say) can > load the [device_id -> driver] table (or tables, assuming > each driver has its own file) to select and load the > correct driver, and then the driver itself could use the same > mechanism to load a [device_id -> quirks] table for internal use ? > > cheers > luigi > _______________________________________________ > freebsd-arch@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45C2307A.8000206>