Skip to contentSkip to conversation

Question on "embedded" classes

DISCUSSION Luben Tuikov 2 participants 2 messages Jun 27, 2005 SCSI

lore
Share & tools
lore
#0 lore raw

Hi,

I was wondering what the reason was for allowing class and classdev to only be at level 3 and level 4 respectively of sysfs (/ is level 0)?

1) Some devices would not have any relevance ouside the scope of the "parent" device.
2) "Hooking" them all at /sys/class/ level would create quite a lot of symlinks (and with cryptic names in order to reference the proper "parent" device in the same directory).

E.g. Some devices, like SAS host adapters, have "devices inside devices" and I'd like to represent this in sysfs.

/sys/class/sas          (a class)
/sys/class/sas/ha0/     (a classdev)
/sys/class/sas/ha1/     (a classdev)

/sys/class/sas/ha0/device -> symlink to PCI device
/sys/class/sas/ha0/device_name (text attribute)

/sys/class/sas/ha0/phys/ (a class)
/sys/class/sas/ha0/phys/0/ (a classdev)

etc.

Question: how does one "marry" the class to the classdev?

Or what is the alternative?

Thanks,
Luben

#1 lore raw
Quoted 21 lines · Luben Tuikov

Hi,

I was wondering what the reason was for allowing class and classdev to only be at level 3 and level 4 respectively of sysfs (/ is level 0)?

1) Some devices would not have any relevance ouside the scope of the "parent" device.
2) "Hooking" them all at /sys/class/ level would create quite a lot of symlinks (and with cryptic names in order to reference the proper "parent" device in the same directory).

E.g. Some devices, like SAS host adapters, have "devices inside devices" and I'd like to represent this in sysfs.

/sys/class/sas          (a class)
/sys/class/sas/ha0/     (a classdev)
/sys/class/sas/ha1/     (a classdev)
Quoted 5 lines

/sys/class/sas/ha0/device -> symlink to PCI device
/sys/class/sas/ha0/device_name (text attribute)

/sys/class/sas/ha0/phys/ (a class)
/sys/class/sas/ha0/phys/0/ (a classdev)

Nope, this is not allowed.

Classes are not allowed to have children classes.
class devices can not have children, be they class_device or a class.

That is the reason you are getting oopses :)

thanks,

greg k-h