From 05b9ca73793047e795e46a2ae13db02c34b8a7c3 Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Mon, 6 Mar 2017 02:52:05 +0100 Subject: idt: add interruption handling The Interruption Descriptor Table (IDT) is implemented in idt.{c,h} as part of the core, but the setup and activation of the IDT and the registration of specific interruption request handlers is part of arch.{c,h}. The request handlers are implemented in idt.s and delegate to kernel_handle_interrupt. --- include/garmos/arch.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include/garmos/arch.h') diff --git a/include/garmos/arch.h b/include/garmos/arch.h index 6d0f54d..ff1627e 100644 --- a/include/garmos/arch.h +++ b/include/garmos/arch.h @@ -44,4 +44,19 @@ struct gdtp { } __attribute__((packed)); void gdtset(struct gdtp gdtp); +/* interrupt description table initialization and activation */ +struct idtp { + uint16_t limit; + void *pointer; +} __attribute((packed)); +void idtset(struct idtp idtp); +void idtact(void); + +/* interrupt handler for ignores and a list of handlers to register */ +extern uint8_t irqnos[]; +extern uint32_t irqhdls[]; +void irqign(void); +void irqhdl0x00(void); +void irqhdl0x01(void); + #endif -- cgit v1.2.1