Also, most device functions related to IRQ handling no longer take a device pointer. We make so many assumptions about the machine's layout in irq.c that this just seemed silly.