Moved IOAPIC functionality into ioapic.c, added support for ISA IRQs (pit keyboard...
authorPaul Pearce <pearce@eecs.berkeley.edu>
Sat, 25 Jul 2009 02:40:01 +0000 (19:40 -0700)
committerPaul Pearce <pearce@eecs.berkeley.edu>
Sat, 25 Jul 2009 02:40:01 +0000 (19:40 -0700)
commitba28fdcba25902d6ed4d7f43afd479228997fc5a
tree4ee5f562d364eac9d5222e4c70a7f4cc15dd894d
parent872b707a49e46a12f7589dc66862d95e47ec42f2
Moved IOAPIC functionality into ioapic.c, added support for ISA IRQs (pit keyboard, etc)

Net result is we can now reroute any IRQ on the PCI or ISA bus, this includes
anything that is listed on the ISA bus (in mptables), such as the PIT,
Keyboard, etc.

Moved ioapic_reroute_irq() into ioapic.c. Also added an ioapic_init() function
that runs through the PIC and ISA structures (discussed below) and creates an
IRQ->IOAPIC mapping, so there is a single source of truth as far as the route
functions are concerned.

Added an ioapic_unroute_irq() that basically masks an irq.

Added ISA IRQ related parsing to MPTables that allows for things like the PIT
to be routed via the IOAPIC. This creates a structure like the one found for
pci that maps IRQ's to ioapic entries. This is used in ioapic_init()

Added ioapic_init() to the init process after pci_init.
12 files changed:
include/arch/apic.h
include/arch/ioapic.h [new file with mode: 0644]
include/mptables.h
include/rl8168.h
kern/src/Makefrag
kern/src/apic.c
kern/src/init.c
kern/src/ioapic.c [new file with mode: 0644]
kern/src/mptables.c
kern/src/pci.c
kern/src/rl8168.c
kern/src/trap.c