From owner-freebsd-chat Sat Jun 23 5:36:44 2001 Delivered-To: freebsd-chat@freebsd.org Received: from probity.mcc.ac.uk (probity.mcc.ac.uk [130.88.200.94]) by hub.freebsd.org (Postfix) with ESMTP id 07A1937B408 for ; Sat, 23 Jun 2001 05:36:41 -0700 (PDT) (envelope-from jcm@freebsd-uk.eu.org) Received: from dogma.freebsd-uk.eu.org ([130.88.200.97] ident=root) by probity.mcc.ac.uk with esmtp (Exim 2.05 #7) id 15DmeV-0008Rz-00; Sat, 23 Jun 2001 13:36:39 +0100 Received: (from jcm@localhost) by dogma.freebsd-uk.eu.org (8.11.3/8.11.1) id f5NCadu84670; Sat, 23 Jun 2001 13:36:39 +0100 (BST) (envelope-from jcm) Date: Sat, 23 Jun 2001 13:36:38 +0100 From: j mckitrick To: Terry Lambert Cc: freebsd-chat@freebsd.org Subject: Re: most complex code in BSD? Message-ID: <20010623133638.A84446@dogma.freebsd-uk.eu.org> References: <20010622221453.B64495@dogma.freebsd-uk.eu.org> <200106222143.OAA28673@usr06.primenet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1i In-Reply-To: <200106222143.OAA28673@usr06.primenet.com>; from tlambert@primenet.com on Fri, Jun 22, 2001 at 09:43:09PM +0000 Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Fri, Jun 22, 2001 at 09:43:09PM +0000, Terry Lambert wrote: | > | The VFS code is trivial, if you just understand call-by-descriptor, | > | > could you explain what call-by-descriptor is? | Now you can stack an FS that doesn't know about fsfunc42 on top of | one that does, and have it still work fine when you make a system | call that depends on fsfunc42. | | Basically, this allows implementation class inheritance to be | implemented in C, instead of requiring C++. Great info, as usual. Thanks, Terry. I still have your explanation of what *really* caused BSD forking. ;-) This sounds pretty much to me like a vector table, or even thunking. How is it different? Also, if fsfunc49 (Joe Walsh reference ;-) exists but the fs doesn't know about it, how will it still work? Do you simply leave an empty stub that returns without doing anything, or do you direct it to a corresponding set of older calls that accomplish the same thing? | | This is also how the X widget sets work. Motif is the best | example, where you can have a scrollbar widget, and you can have | a feedback scrollbar widget, and then you can implement the | feedback scrollbar widget by wrapping the draw routines, and trapping | the value changed callbacks and change value routines, and let the | mouse motion-notify events go down to the underlying scrollbar | functions that handle such things, and not have to implement them | a second time for the feedback scrollbar widget. | | This is how we all used to do object-oriented programming. Jonathon -- Microsoft complaining about the source license used by Linux is like the event horizon calling the kettle black. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message