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/idt.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 include/garmos/idt.h (limited to 'include/garmos/idt.h') diff --git a/include/garmos/idt.h b/include/garmos/idt.h new file mode 100644 index 0000000..05fb1bd --- /dev/null +++ b/include/garmos/idt.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2017 Robin Krahl + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#ifndef GARMOS_IDT_H +#define GARMOS_IDT_H + +#include + +void idt_init(void); +void idt_activate(void); + +uint32_t idt_handle_interrupt(uint8_t no, uint32_t esp); + +#endif -- cgit v1.2.1