Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Временное отключение прерываний  (Прочитано 116 раз)
0 Пользователей и 1 Гость смотрят эту тему.
WWX
Постоялец

ru
Offline Offline

« : 18-12-2024 09:30 » 

Доброго времени суток.

Есть ли ф-ция для оключения / включения обработки legacy прерываний от PCIe платы? (Аналог линуксовой ф-ции pci_intx)

(Можно конечно отключать генерацию прерываний на самом устройстве (как я сейчас и делаю). Но хотелось бы понять, можно ли корректным способом "замаскировать" вызов обработчика в драйвере, не трогая устройство.)
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 19-12-2024 11:16 » 

Доброго!
Давно этим не занимался, но по-моему не встречал такого способа...  Линии ж аппаратные, к тому же могут быть расшарены между слотами/устройствами... Если мне не изменяет память.
Если прерывание кто то выставил, то какой то зарегенный драйвер должен определить, что прерывание от его устройства и сказать целевой плате остановить выставление флага на этой линии, иначе кто ее остановит? там же LevelSensitive  прерывания на PCI  вроде были.
может через регистры PCI config-space что то есть, но это наверное будет то же самое что вы уже делаете.

ЗЫ ну можно обработчик отрегистрировать попробовать но вроде это только при загрузке/выкгрузке делается... и помоему оно упадет или зависнет, если обработчика не будет а прерывание возникнет.
но могу ошибаться.
« Последнее редактирование: 19-12-2024 11:36 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
WWX
Постоялец

ru
Offline Offline

« Ответ #2 : 19-12-2024 13:31 » new

Спасибо за ответ.

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

Про IoDisconnectInterrupt / IoConnectInterrupt тоже думал, но пришёл к выводу что это ещё более неправильно...

Просто немного смущает: что иногда для того, что в Линуксе делается в 1 – 2 строки, в Винде приходится ужом вертеться...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines