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.

Reply via email to