Я разрабатываю драйвер DMA для Linux. Приложение userpace хочет, чтобы драйвер выполнял асинхронную операцию (передача данных) и получал информацию только после завершения операции. Как приложение userpace получает информацию асинхронно?Как прервать приложение для пользовательского пространства в Linux
Я знаю, что в пространстве ядра может быть установлен обработчик прерываний для обработки прерывания завершения. Мой вопрос касается пользовательского пространства, потому что мои данные должны обрабатываться в пользовательском пространстве. Я могу думать о том, чтобы создать поток в пользовательском пространстве и дождаться, когда драйвер выполнит задачу. Есть ли лучший способ справиться с этим? или я думаю не в том направлении?
В целом, как обрабатывать прерывание для Linux в пользовательском пространстве?