Introducing my own interrupt in dosemu.

Wartan Hachaturow
2004-07-16T10:25:32Z

Hello.

I've got a rather simple task: generate an irq inside dosemu and let
PIC propagate it further into DOS or whatever is running inside.
The irq generation should be driven by a signal to a dosemu process.
I've managed to set my signal handler in arch/linux/async/signal.c, and
I see dosemu actully recieving the needed signal.
Then, in signal handler:
pic_sched(PIC_IRQ10, 1); /* That should schedule an irq 10 in
* 1 "dosemu jiffie", right?
*/
do_irq();
(I decided to use IRQ10 for my needs, since it doesn't look being used
for other stuff in real mode).
If I understand right, this should be enough for IRQ to be generated by
PIC emulation -- but for some reason, when I install a 0x72 interrupt
handler in FreeDOS running under DOSEmu, I don't see any actual calls.

Additionally, I initialize PIC to unmask the interrupt in init.c:
pic_seti(PIC_IRQ10, my_interrupt, 0, NULL);
pic_unmaski(PIC_IRQ10);

But my_interrupt() (which should just do a warn()) doesn't get called
either :(
I must say I'm pretty lost in the code. If someone would show me some
basic direction to go, I'll be thankful..

--
TIA, Wartan.