LINUX.ORG.RU

Как еще можно пробрасывать ф-ии из модулей ядра в userspace, кроме файлов в /dev?

 ,


0

2

Вот, например, есть модуль i2c-dev, который транслирует файловые операции над /dev/i2c-x в ф-ии модулей i2c из linux/drivers/i2c/buses/*

linux/drivers/i2c/i2c-dev.c:

static const struct file_operations i2cdev_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .read           = i2cdev_read,
        .write          = i2cdev_write,
        .unlocked_ioctl = i2cdev_ioctl,
        .open           = i2cdev_open,
        .release        = i2cdev_release,
};

Сеть?

Файлы в /proc или /sys, netlink-сокеты, сисколлы

deadNightTiger ★★★★★
()

procfs, sysfs, зарегистрировать syscall (фиговый путь, кто-то мог такой уже занять другим модулем и всё плохо). В Solaris есть ещё файлы типа Door (D в выводе ls), похожи на сокеты, прикольная штука.

evilface ★★
()
Ответ на: комментарий от dimon555

А в этом случае как?
Создать устройство, а потом как-то нарегистрировать обработчиков запросов ioctl для него? Знаком с этим системным вызовом весьма (очень весьма) поверхностно.

evilface ★★
()
Ответ на: комментарий от dimon555

ioctl ещё

Еще одна файловая операция над /dev, но с диспетчеризацией по параметрам (обычно, по второму параметру). То есть с ее помощью можно транслировать >1 ф-ии.

panzerito
() автор топика
Последнее исправление: panzerito (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.