diff --git a/kernel/Makefile b/kernel/Makefile index 54aba9c..6ed77b6 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -15,7 +15,7 @@ export CXXFLAGS := -Wall -O2 -fno-rtti -fno-exceptions export LDFLAGS := -T $(LDSCRIPT) -Map $(KERNEL).map export LDLIBS := `$(CC) -print-libgcc-file-name` -SUBDIRS := boot mm lang +SUBDIRS := boot mm lang isr SUBDIRS_clean := $(SUBDIRS:%=%.clean) .PHONY: all diff --git a/kernel/isr/Makefile b/kernel/isr/Makefile new file mode 100755 index 0000000..cae81d7 --- /dev/null +++ b/kernel/isr/Makefile @@ -0,0 +1,2 @@ + +include $(HOS_TOPLEVEL)/subdir.mak diff --git a/kernel/isr/interrupts.cc b/kernel/isr/interrupts.cc new file mode 100755 index 0000000..43e71d4 --- /dev/null +++ b/kernel/isr/interrupts.cc @@ -0,0 +1,19 @@ + +#include "hos_types.h" +#include "interrupts.h" + +extern "C" { + +void isr(u8_t int_num, int_stack_t * int_stack) +{ + switch (int_num) + { + } +} + +} /* extern "C" */ + +void interrupts_bootstrap() +{ + /* TODO: set up IDTR, IDT */ +} diff --git a/kernel/isr/interrupts.h b/kernel/isr/interrupts.h new file mode 100644 index 0000000..608de31 --- /dev/null +++ b/kernel/isr/interrupts.h @@ -0,0 +1,17 @@ + +#ifndef INTERRUPTS_H +#define INTERRUPTS_H + +#ifdef __cplusplus +extern "C" { +#endif + +void isr(u8_t int_num, int_stack_t * int_stack); + +#ifdef __cplusplus +} +#endif + +void interrupts_bootstrap(); + +#endif diff --git a/kernel/boot/isr.asm b/kernel/isr/isr.asm similarity index 100% rename from kernel/boot/isr.asm rename to kernel/isr/isr.asm