Здравствуйте, anna_savelieva, Вы писали:
_>Во-первых должна быть поддержка со стороны устройства, что-то наподобие регистра статуса, и если твое устройство не поддерживает возможность разделения прерываний — то все усилия напрасны.
_>Теперь, если же твое устройство поддерживает возможность разделения прерываний.
_>Когда ты регистрируешь обработчик c помощью _>request_irq(irq, handler, flags, name, void *dev_id) _>последний аргумент dev_id как раз нужен будет для идентификации твоего устройства.
_>То есть в обработчике вторым аргументом будет передаваться именно твой dev_id, который ты указал при регистрации. Соответственно тебе нужно в обработчике всего лишь проверить, твой это dev_id или не твой
Дак вот в том то и прикол что он всегда мой, я в нем передаю локальный контекст (свою структуру данных устройста).
Устройство на прямую не дает этой возможности (подтверждения прерывания), но факт что в Windows аналогичный драйвер работатет, а в Linux нет, при том и там и там несколько устр-в сидят на одном прерывании.
Нужно просто в обработчике узнать с какого слота pci было прерывание, но вот как?