Как реагировать на прерывания для блочного драйвера Linux - PullRequest
0 голосов
/ 06 ноября 2019

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

...