From owner-freebsd-current@FreeBSD.ORG Thu Jun 5 09:17:25 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C79DE37B401 for ; Thu, 5 Jun 2003 09:17:25 -0700 (PDT) Received: from mx0.freebsd-services.com (survey.codeburst.net [195.149.39.161]) by mx1.FreeBSD.org (Postfix) with ESMTP id E066443FD7 for ; Thu, 5 Jun 2003 09:17:24 -0700 (PDT) (envelope-from paul@freebsd-services.com) Received: by mx0.freebsd-services.com (Postfix, from userid 1002) id A0DFC1B213; Thu, 5 Jun 2003 17:17:23 +0100 (BST) Date: Thu, 5 Jun 2003 17:17:23 +0100 From: Paul Richards To: Doug Rabson Message-ID: <20030605161723.GA6086@survey.codeburst.net> References: <26877.1054676171@critter.freebsd.dk> <20030603.160943.102571653.imp@bsdimp.com> <1054594801.1641.49.camel@cf.freebsd-services.com> <200306041001.07145.dfr@nlsystems.com> <20030604122445.GB68108@survey.codeburst.net> <1054730025.32554.15.camel@builder02.qubesoft.com> <20030604131628.GE68108@survey.codeburst.net> <1054734198.32568.23.camel@builder02.qubesoft.com> <20030605145111.GF76193@survey.codeburst.net> <1054825575.32554.28.camel@builder02.qubesoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054825575.32554.28.camel@builder02.qubesoft.com> User-Agent: Mutt/1.5.4i cc: current@freebsd.org Subject: Re: VFS: C99 sparse format for struct vfsops X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jun 2003 16:17:26 -0000 On Thu, Jun 05, 2003 at 04:06:16PM +0100, Doug Rabson wrote: > On Thu, 2003-06-05 at 15:51, Paul Richards wrote: > > On Wed, Jun 04, 2003 at 02:43:20PM +0100, Doug Rabson wrote: > > > On Wed, 2003-06-04 at 14:16, Paul Richards wrote: > > > > On Wed, Jun 04, 2003 at 01:33:46PM +0100, Doug Rabson wrote: > > > > > > > > > Interfaces actually can be added at runtime. Existing objects (i.e. > > > > > objects instantiated before the new interface was added) will continue > > > > > to work as before. If methods from the new interface are called on old > > > > > objects, the default method will be called. > > > > > > > > How can you add an interface at runtime? > > > > > > By loading a kernel module. If I load e.g. the agp kernel module, I add > > > the agp_if interface to the kernel. > > > > Yes, I know that you can load a pre-compiled interface at runtime > > and thereby add that interface, but you can only "create" interfaces > > at build time because each method in the interface is uniquely > > identified by a kobjop_desc struct, which is what I was referring to. > > What has build time got to do with anything? At build time, you have no > idea what interfaces are available either. Besides modules can be built > at a different time from the rest of the kernel. My point was simply that interfaces can't be "created" other than at compile time because the kobjop_desc structures are used as unique identifiers. I wasn't making this point in relation to the discussion on knowing what methods are in the class, just from the point that interfaces can't be created or modified at runtime. -- Tis a wise thing to know what is wanted, wiser still to know when it has been achieved and wisest of all to know when it is unachievable for then striving is folly. [Magician]