From owner-cvs-all@FreeBSD.ORG Thu Dec 4 10:14:48 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 835A116A4CE; Thu, 4 Dec 2003 10:14:48 -0800 (PST) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id C7B7943FE1; Thu, 4 Dec 2003 10:14:46 -0800 (PST) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.10/8.12.9) with ESMTP id hB4IEhLS001382; Thu, 4 Dec 2003 11:14:43 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Thu, 04 Dec 2003 11:14:30 -0700 (MST) Message-Id: <20031204.111430.78763615.imp@bsdimp.com> To: gurney_j@efn.org From: "M. Warner Losh" In-Reply-To: <20031204174838.GH54398@funkthat.com> References: <20031203.175806.132781932.imp@bsdimp.com> <20031204174838.GH54398@funkthat.com> X-Mailer: Mew version 2.1 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org cc: jhb@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/i386 machdep.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 18:14:48 -0000 In message: <20031204174838.GH54398@funkthat.com> John-Mark Gurney writes: : M. Warner Losh wrote this message on Wed, Dec 03, 2003 at 17:58 -0700: : > : Ideally, acpi.ko would contain two modules: 1 main acpi.kld module : > : that was required and one optional madt.kld module that just contained : > : madt.o and was optional. Then loading the module would succeed so : > : long as the required 'acpi' module linked but if the optional 'madt' : > : module failed to link, it would just be tossed. We don't really seem : > : to be setup to do such things right now though. A more feasible model : > : might be an acpi.a that contains acpi.ko and madt.ko and allow the : > : kernel linker to handle foo.a by requiring the first .ko in the archive : > : to link and having any additional .ko's be optional. This would work : > : both for the acpi.ko/madt.ko case as well as bus attachments for device : > : drivers such as a sym.a with sym.ko/sym_pci.ko/sym_cbus.ko, etc. : > : > I'm not sure I follow what you are saying here. You need to have : > something to resolve the symbols that madt provides. : : I don't know the acpi/madt interface, but why wouldn't a SYSINIT in : madt that calls an acpi function with a struct of function pointers : to notify acpi that it exists work? Then you don't have problems with : acpi referencing madt's symbols and being required to load. acpi will : get the pointers registered if it exists. This seems like a much more straight forward way to deal. acpi.ko and madt.ko aren't unloadable at this point anyway (and any extra work that the table would cause is so lost in the noise to make the reloadable as to not be worth considering now). Function pointers or kobj are the same thing in this context, so either could potentially be used. However, it isn't an interface that needs to be 'stable to external users' so the normal reason to use kobj applies much less to this case. Warner