Я мог бы подойти к этому все неправильно, но ...Могу ли я установить Linux SIGUSR1 из ядра?
У меня есть драйвер устройства ядра Linux, который обрабатывает внешнее прерывание и в настоящее время выполняет printk(), когда это происходит.
Что бы я хотел сделать, это сообщить пользователю о пространстве, что это событие произошло, чтобы оно могло проснуться и сделать что-то.
Можно ли (/ простой/хорошая практика), чтобы установить SIGUSR1 внутри ядра, а затем захватить его из пользовательского пространства с помощью
signal (SIGUSR1, <handler function>);
Благодарности
Да, это хороший совет. Зарегистрируйте устройство на устройстве символов; программа userpace затем открывает соответствующий узел устройства и блокирует в 'read' или' select'; драйвер устройства создает сообщение (может быть, даже один байт), доступное для чтения, когда происходит прерывание, и пробуждает приложение пользовательского пространства. – caf