Gilles, now I think I've got what you mean.
Something like this ?
inter_domain_irq = ipipe_alloc_virq();
ret = request_irq(inter_domain_irq, linux_handler, SA_INTERRUPT, "virtualIRQ",
NULL);
enable_irq(inter_domain_irq);
void ipipe_handler(unsigned irq) {
[...]
ipipe_trigger_irq(inter_domain_irq);
[...]
}
void linux_handler(void) {
wake_up_interruptible(&skeleton_wait);
}
I've tried this, but the linux_handler is never called.
I bet I'm missing something very trivial here, but it
doesn't come to mind...
On the other hand, if I request_irq() for the parallelport
INT and pass that INT from IPIPE to linux, the linux_handler
is called. But it doesn't work with a virq.
Thanks and best regards,
Hannes.