Redirecting IRQs to Linux kernel from FreeMWare

Kevin Lawton (kevin@bochs.com)
Sun, 15 Aug 1999 16:42:44 -0400


I'm working on the virtual machine monitor for FreeMWare
(open source project like VMWare) initially for Linux.

Essentially I'm creating a mini-OS-like monitor which
runs in a "parallel world" as Linux. It's pretty funky
and the logic goes something like this. During a user
process's time quantum, I call an ioctl() into a
kernel module I wrote, which changes over to a completely
different set of mappings {GDT, IDT, TR, ...} and
runs a virtualized guest OS over there during the time slice.

The monitor doesn't handle hardware interrupts itself,
as FreeMWare doesn't talk to real hardware. What
I need to do is to redirect any hardware interrupts
from my monitor IDT handler back to Linux, which they
were originally destined for.

So I switch everything back over to Linux mappings upon
hardware interrupt. I have in hand the IRQ# and vector of
the interrupt. How do you recommend I call interrupt handlers
in the Linux kernel from my kernel module, given I have these
parameters?

I need the handlers to think they were called as a result of
a real hardware interrupt, and not know about the software
intervention of the virtual machine monitor of FreeMWare.

Much appreciated
-Kevin Lawton
http://www.freemware.org/
http://www.bochs.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/