61 static uint32_t interrupt_irq(uint32_t interrupt,
UNUSED uint32_t error,
UNUSED struct thread *t)
64 uint32_t irq = interrupt -
irqBase;
108 assert((interruptOffset & 7) == 0);
bool interruptReserve(uint32_t interrupt, interrupt_callback callback)
Request an interrupt.
#define PIC1_COMMAND_PORT
void outb(uint16_t port, uint8_t val)
uint8_t inb(uint16_t port)
uint32_t(* irq_callback)(uint32_t irq)
bool picReserveIRQ(uint32_t irq, irq_callback callback)
Assign a callback function to an IRQ.
void consoleWriteHex32(uint32_t value)
Write a 32 bit integer as hex value on the console.
void picInit(uint32_t interruptOffset)
Initializes the programmable interrupt controller.
void consoleWriteString(const char *str)
Write a C string to the console.
void picFreeIRQ(uint32_t irq)
Release an IRQ.
#define INTERRUPT_CONTINUE_EXECUTION
#define PIC2_COMMAND_PORT
irq_callback irqTable[IRQ_COUNT]