From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wartan Hachaturow Subject: Introducing my own interrupt in dosemu. Date: Fri, 16 Jul 2004 14:25:32 +0400 Sender: linux-msdos-owner@vger.kernel.org Message-ID: <20040716102532.GA5976@mojo.tepkom.ru> Mime-Version: 1.0 Return-path: Content-Disposition: inline List-Id: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-msdos@vger.kernel.org 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.