Re: unify sysfs device tree

Kay Sievers
2006-01-13T12:42:45Z

On Thu, Jan 12, 2006 at 11:24:49PM -0500, Dmitry Torokhov wrote:
> On Thursday 12 January 2006 20:56, Kay Sievers wrote:
> > Here is for illustration the "input" layer as a flat /sys/class directory. All
> > devices point to /sys/devices which exposes the device hierarchy if userspace
> > wants to know that:
> >         /sys/class/
> >         ...
> >         |-- input
> >         |   |-- input0 -> ../../devices/platform/i8042/serio1/input0
> >         |   |-- input1 -> ../../devices/platform/i8042/serio0/input1
> >         |   |-- input3 -> ../../devices/platform/i8042/serio0/serio2/input3
> >         |   |-- input4 -> ../../devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input4
> >         |   |-- mice -> ../../devices/mice
> >         |   |-- mouse0 -> ../../devices/platform/i8042/serio0/input1/mouse0
> >         |   |-- mouse1 -> ../../devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input4/mouse1
> >         |   `-- mouse2 -> ../../devices/platform/i8042/serio0/serio2/input3/mouse2
>
> Looks nice with exception of my standard argument that inputX and
> mouseX are objects of different (but related) classes.

You can easily distinguish them by the device instance name, we have this
in a lot of other classes too: /class/sound/controlC0 is very different from
/class/sound/pcmC0D0p, /class/sound/timer, ...

> I believe this also relies on overriding class' methods (release, uevent)
> by individual devices and inability for class to define standard attributes
> for such devices. Pretty yucky...

You can, if you want separate classes, put them in different classes.
This will work fine with this model now, cause the device hierarchy is
still nicely exposed in /sys/devices.

Thanks,
Kay