Transparent bridges (a. k. a. HUB-to-PCI bridges)?
cswiger at mac.com
Wed Nov 24 12:29:27 PST 2004
On Nov 24, 2004, at 1:41 PM, John-Mark Gurney wrote:
>> True OOP involves encapsulation, polymorphism, and inheritence, and
>> requires language support which is not really available in pure C.
>> being said, careful programming in C lets you create several
>> closely-related structs for different types of "objects" which can
>> all be
>> utilized by a common set of functions.
> You should read up on KOBJ's which is how device_t's are implemented
> in FreeBSD... kobj's are a loop more OOP that you think...
OK. I've taken a look at sys/kobj.h and sys/kern/subr_kobj.c, is there
something else I should read?
My take on it, for what it is worth, is that KOBJs implement the class
versus instance paradigm, have a dynamic runtime & method dispatch
rather similar to the implementation of Objective-C or virtual C++
methods. Yes, this is a lot more object-oriented than what I said
about being disciplined using C struct's. :-)
Things that one still doesn't have is encapsulation in the sense of
data hiding; what Java calls protected or private ivar's. Object
memory management for instances via reference counting or GC would also
be nice, although I even saw a hint of that in kobj_delete(), as well
as a bit of the alloc/init & delete/free seperation.
More information about the freebsd-current