Могу ли я установить Linux SIGUSR1 изнутри ядра? - PullRequest
1 голос
/ 07 января 2010

Я могу подойти ко всему неправильно, но ...

У меня есть драйвер устройства ядра Linux, который обрабатывает внешнее прерывание и в настоящее время выполняет printk (), когда это происходит.

Я хотел бы сообщить приложению пространства пользователя о том, что это событие произошло, чтобы оно могло проснуться и сделать что-то еще.

Возможно ли (/ просто / хорошая практика) установить SIGUSR1 из ядра, а затем перехватить его из пространства пользователя через

signal (SIGUSR1, <handler function>);

Спасибо

1 Ответ

3 голосов
/ 07 января 2010

Это не очень хорошая идея. Если это даже возможно, вам нужно как-то дать драйверу идентификатор процесса пользователя из пользовательского пространства, чтобы драйвер мог получить сигнал к нему.

Я бы создал / dev / xxx, открыл его, и драйвер мог бы сделать дескриптор файла активным, когда происходит событие. Может быть, даже предоставить больше информации.

...