История изменений
Исправление Tayler, (текущая версия) :
так понимаю, что требуется перенести часть программы из kernel в userspace. Для уведомления от ядра есть select и poll с вариациями, которые д.б. реализованы в модуле ядра (ну или у обькта ядра - блока памяти и т.п. д.б. дескриптор) И к которым нужно обращаться из US. В качестве оберток над ними есть библиотеки libev, libevent и тд.
Вот здесь правильный ответ зарыт.
Т.е. ты поймал событие в kernel space, теперь нужно пробросить его в user space средствами системных вызовов. Что использовать конкретно, зависит от задачи. char device + poll, наверное, самый очевидный и универсальный ответ.
Есть и другие способы, netlink, тупо блокирующий read, гуглить что-то вроде «kernel and user space interaction linux», например https://pothos.github.io/papers/linux_userspace_kernel_interaction.pdf
Исходная версия Tayler, :
так понимаю, что требуется перенести часть программы из kernel в userspace. Для уведомления от ядра есть select и poll с вариациями, которые д.б. реализованы в модуле ядра (ну или у обькта ядра - блока памяти и т.п. д.б. дескриптор) И к которым нужно обращаться из US. В качестве оберток над ними есть библиотеки libev, libevent и тд.
Вот здесь правильный ответ зарыт.
Т.е. ты поймал событие в kernel space, теперь нужно пробросить его в user space средствами системных вызовов. Что использовать конкретно, зависит от задачи. char device + poll, наверное, самый очевидный и универсальный ответ.
Есть и другие способы, netlink, тупо блокирующий read, гуглить что-то вроде «kernel and user space interaction linux», например https://pothos.github.io/papers/linux_userspace_kernel