Если я правильно понимаю, Linux организует устройства в древовидную структуру с узлами типа struct kobject
:
struct kobject {
struct list_head entry;
struct kobject *parent;
struct kset *kset;
// ...
};
. Имеет поля:
parent
, который указывает на своего родителя struct kobject
kset
, указатель на struct kset
связанных kobjects entry
, похоже, что это необходимо дляподдерживать ksets, но я не уверен,
Эти поля указывают либо на родительский объект, либо на объекты того же уровня.Ни один из них не указывает на дочерние узлы.Похоже, пропущенные поля не имеют отношения к проблеме.
Учитывая все это, как Linux пересекает свое дерево устройств, не имея узлов, явно указывающих на их дочерние элементы?