Древовидная структура устройства для драйвера Linux

Я пытаюсь построить структуру, похожую на дерево устройств. По сути, я хочу получить драйвер, который создан для работы с деревом устройств, чтобы работать так же без него. Я хочу создать оболочку и структуру, содержащие всю информацию, имеющуюся в дереве устройств, и передать ее драйверу.

У кого-нибудь есть идеи, как я могу это сделать или хорошее место, чтобы прочитать об этом? Я искал это, но не мог найти ничего или какого-либо примера чего-то похожего на то, как это сделать.

С уважением и спасибо за вашу помощь


person Ichigo-San    schedule 12.04.2016    source источник


Ответы (1)


Недавно это уже было сделано в ядре и называется унифицированным API свойств устройства, в частности, он поддерживает те же свойства, которые поступают из DeviceTree, ACPI или встроены в код платформы. Дополнительную информацию об API вы можете найти в источниках include / linux / property.h, drivers / base / property.c. Один из примеров - драйвер rfkill_gpio, то есть net / rfkill / rfkill-gpio.c [потребитель], arch / arm / mach-tegra / board-paz00.c [провайдер].

person 0andriy    schedule 12.04.2016
comment
Я проверил, что вы мне сказали, и заметил, что этот API перешел в основную ветку только ядра 3.19. К сожалению для меня, мне нужно разработать это для ядра 3.18. Вы знаете, как я могу сделать это без использования этого API? - person Ichigo-San; 13.04.2016
comment
Бэкпорт с 3.19 на 3.18.y может быть не такой уж большой проблемой. - person 0andriy; 13.04.2016