[lkml]   [2005]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC] Changes to the driver model class code.
    On Tue, Mar 15, 2005 at 09:08:34AM -0800, Greg KH wrote:
    > Then I moved the USB host controller code to use this new interface.
    > That was a bit more complex as it used the struct class and struct
    > class_device code directly. As you can see by the patch, the result is
    > pretty much identical, and actually a bit smaller in the end.
    > So I'll be slowly converting the kernel over to using this new
    > interface, and when finished, I can get rid of the old class apis (or
    > actually, just make them static) so that no one can implement them
    > improperly again...
    > Comments?

    The "old" class api _forced_ you to think of reference counting of
    dynamically allocated objects, while it gets easier to get reference
    counting wrong using this "simple"/"new" interface: while struct class will
    always have fine reference counting, the "parent" struct [with struct class
    no longer being embedded] needs to be thought of individually; and the
    reference count cannot be shared any longer.

    Also, it seems to me that you view the class subsystem to be too closely
    related to /dev entries -- and for these /dev entries class_simple was
    introduced, IIRC. However, /dev is not the reason the class subsystem was
    introduced for -- instead, it describes _types_ of devices which want to
    share (userspace and in-kernel) interfaces. For example pcmcia sockets which
    can reside on different buses, but can be handled (mostly) the same way by
    kernel- and userspace. For example, temperature sensors could be exported
    using /sys/class/temp_sensors/... -- then userspace wouldn't need to know
    whether the temperature was determined using an ACPI BIOS call or by
    accessing an i2c device. Such "abstractions", and other kernel code whcih
    uses these "abstractions" (a.k.a. class interfaces) are a great feature to
    have, and one too less used by now.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:11    [W:0.020 / U:91.448 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site