diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-07-08 19:14:11 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-07-08 19:14:11 +0200 |
| commit | ab398b66081a5595776ac9121aaae07a3c2fe455 (patch) | |
| tree | 94763e08cf1af3665d9fb4f0081b0964ea07f0d3 | |
| parent | c4cc22b897fed06d040d8fdcc0b40b0f0dcf5bcf (diff) | |
start implement software interrupt test handler
| -rw-r--r-- | kernel/interrupts.c | 2 | ||||
| -rw-r--r-- | kernel/kernel.c | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/kernel/interrupts.c b/kernel/interrupts.c index 198822e..7b44482 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -80,7 +80,7 @@ void int_init(uint16_t sel) void int_install() { - idtd.size=8*34; //TODO + idtd.size=sizeof(struct int_desc)*INT_MAX; //TODO idtd.baseHi=0x0000; idtd.baseLo=&idt[0]; diff --git a/kernel/kernel.c b/kernel/kernel.c index db9c60e..9bc3d64 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -8,6 +8,21 @@ void int_kb_handler(); ////////// KERNEL MAIN///// ///// // + +// test handler +void int_test_handler() +{ + __asm__("pusha"); + + scr_put_string_nl("inside software interrupt handler 8"); + + + __asm__("popa"); + __asm__("leave"); + __asm__("iret"); + +} + void kernel_main() { @@ -26,6 +41,9 @@ void kernel_main() // install keyboard handler int_install_ir(33, 0b10001110, 0x08,&int_kb_handler); + // install test handler +// int_install_ir(33, 0b10001110, 0x08,&int_kb_handler); + scr_put_string_nl("Interrupts are up and running"); // kernel main loop |
