LINUX.ORG.RU

Установить обработчик прерывания


0

0

Ситуация следующая: запущена некоторая программа, один из блоков
которой предполагается использовать в качестве обработчика прерывания
(то есть нужно установить адрес этого блока в качестве вектора соответствующего прерывания). Как это сделать из самой программы?
И будет ли после этого данный обработчик отдельным процессом?

anonymous

ты наверно форумы дос и линукс перепутал Ж-))

обработчики прерываний инсталлятся только из ядра

request_IRQ etc

anonymous
()
Ответ на: комментарий от anonymous

На самом деле я Linux перепутал с QNX (кстати, что это за система?
По виду на UNIX/Linux весьма похожа). Так вот, в QNX это очень
просто делается - прямо из программы вызываешь процедуру под названием qnx_hint_attach(), передав ей номер IRQ и адрес обработчика, и она возвращает id процесса прерывания. А когда обработчик больше не нужен, вызываешь qnx_hint_detach(), и она
по этому id процесс удаляет. А в Linux так можно? Или как-то по
другому?

anonymous
()

хм. раз уж заговорил о qnx - дай линк на место, откуда эту инфу брал.

теперь замечания по сказанному - qnx - микроядерная ос (не совсем unix) - там несколько другие принципы. ос конечно же паше в 32bit mode, потому понятие "обработчика прерывания" - это чушь в отношении ее. запись в idt это не совсем адрес обработчика прерывания. irq - другое дело. на uinc.ru в разделе новостей за вчера есть линк на инфу о новой версии.

ps: www.qnx.org.ru

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за подсказку про request_irq. Я тут про нее посмотрел и не совсем понятно, сколько же у нее аргументов - два (irq и handler)
или четыре (еще flags и device)?
И еще один вопрос: как в нее аргументы передаются - через стек или
через регистры (и через какие)?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.