Символьное устройство OracleSolaris 11.2 в /dev/*

Обычно в Linux драйверы PCI могут предоставлять интерфейс управления пользователю через символьное устройство, например. /dev/drv_ctl, а пользовательское приложение может читать/записывать команды управления вводом-выводом с ioctl() в дескрипторе открытого файла.

В Linux мы создаем это с помощью register_chrdev() API ядра.

Я хотел бы иметь такой же или похожий механизм и поведение в Solaris, но кажется, что в Solaris он работает немного иначе; Для процедуры DDI ddi_create_minor_node() требуется тип узла, указывающий аудио, блочное, сетевое и т. д. устройство, это выглядит довольно расплывчато для меня, например, к какому типу принадлежит криптографическое устройство PCI?

Кроме того, кажется, что ddi_create_minor_node() создает узел под /devices/*, а не под /dev/*

Я был бы признателен, если бы кто-то мог прояснить мои сомнения и указать правильные направления.

Спасибо.


person Mark    schedule 09.07.2015    source источник


Ответы (1)


Обычно вы сами создаете символическую ссылку в /dev, используя имя, которое вам удобно. Это будет указывать на ваш фактический путь /devices, который был создан путем вызова ddi_create_minor_node(). Вы найдете список типов узлов ddi в <sys/sunddi.h>; для криптоустройства (что это вообще такое?) вам, вероятно, понадобится DDI_PSEUDO.

person James McPherson    schedule 28.11.2015