diff options
Diffstat (limited to 'kernel/src/cpu')
| -rw-r--r-- | kernel/src/cpu/idt.c | 3 | ||||
| -rw-r--r-- | kernel/src/cpu/io.c | 1 | ||||
| -rw-r--r-- | kernel/src/cpu/irq.c | 80 |
3 files changed, 49 insertions, 35 deletions
diff --git a/kernel/src/cpu/idt.c b/kernel/src/cpu/idt.c index bf285b7..e900c77 100644 --- a/kernel/src/cpu/idt.c +++ b/kernel/src/cpu/idt.c @@ -1,4 +1,5 @@ #include <idt.h> + #include <irq.h> #include <pic.h> @@ -14,7 +15,7 @@ void add_to_idt(uint16_t num, uint64_t offset, uint16_t selector, uint8_t type) { idt_table[num].offset_1 = offset & 0xFFFF; idt_table[num].offset_2 = (offset >> 16) & 0xFFFF; - idt_table[num].offset_3 = offset >> 32; + idt_table[num].offset_3 = (uint32_t)(offset >> 32); idt_table[num].selector = selector; idt_table[num].type_attributes = type; idt_table[num].ist = 0; diff --git a/kernel/src/cpu/io.c b/kernel/src/cpu/io.c index a73c5b1..84298cb 100644 --- a/kernel/src/cpu/io.c +++ b/kernel/src/cpu/io.c @@ -1,4 +1,5 @@ #include <types.h> +#include <io.h> uint8_t inb(uint32_t port) { diff --git a/kernel/src/cpu/irq.c b/kernel/src/cpu/irq.c index c81cc98..be0d2a2 100644 --- a/kernel/src/cpu/irq.c +++ b/kernel/src/cpu/irq.c @@ -1,11 +1,13 @@ #include <types.h> +#include <irq_handler.h> #include <pic.h> #include <io.h> #include <keyboard.h> -#include <graphics.h> +#include <paging.h> +#include <libk/stdio.h> -char* exception_name[] = { +const char* exception_name[] = { "Divide-by-zero Error", "Debug", "Non-maskable Interrupt", @@ -42,162 +44,172 @@ char* exception_name[] = { void isr0_handler(void) { - fb_draw_string(fb, exception_name[0], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[0]); } void isr1_handler(void) { - fb_draw_string(fb, exception_name[1], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[1]); } void isr2_handler(void) { - fb_draw_string(fb, exception_name[2], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[2]); } void isr3_handler(void) { - fb_draw_string(fb, exception_name[3], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[3]); } void isr4_handler(void) { - fb_draw_string(fb, exception_name[4], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[4]); } void isr5_handler(void) { - fb_draw_string(fb, exception_name[5], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[5]); } void isr6_handler(void) { - fb_draw_string(fb, exception_name[6], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[6]); } void isr7_handler(void) { - fb_draw_string(fb, exception_name[7], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[7]); } void isr8_handler(uint64_t error) { - fb_draw_string(fb, exception_name[8], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[8]); + printf("error: %d\n", error); } void isr9_handler(void) { - fb_draw_string(fb, exception_name[9], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[9]); } void isr10_handler(uint64_t error) { - fb_draw_string(fb, exception_name[10], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[10]); + printf("error: %d\n", error); } void isr11_handler(uint64_t error) { - fb_draw_string(fb, exception_name[11], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[11]); + printf("error: %d\n", error); } void isr12_handler(uint64_t error) { - fb_draw_string(fb, exception_name[12], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[12]); + printf("error: %d\n", error); } void isr13_handler(uint64_t error) { - fb_draw_string(fb, exception_name[13], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[13]); + printf("error: %d\n", error); } void isr14_handler(uint64_t error) { - fb_draw_string(fb, exception_name[14], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[14]); + printf("error: %d\n", error); } void isr15_handler(void) { - fb_draw_string(fb, exception_name[15], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[15]); } void isr16_handler(void) { - fb_draw_string(fb, exception_name[16], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[16]); } void isr17_handler(uint64_t error) { - fb_draw_string(fb, exception_name[17], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[17]); + printf("error: %d\n", error); } void isr18_handler(void) { - fb_draw_string(fb, exception_name[18], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[18]); } void isr19_handler(void) { - fb_draw_string(fb, exception_name[19], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[19]); } void isr20_handler(void) { - fb_draw_string(fb, exception_name[20], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[20]); } void isr21_handler(uint64_t error) { - fb_draw_string(fb, exception_name[21], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[21]); + printf("error: %d\n", error); } void isr22_handler(void) { - fb_draw_string(fb, exception_name[22], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[22]); } void isr23_handler(void) { - fb_draw_string(fb, exception_name[23], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[23]); } void isr24_handler(void) { - fb_draw_string(fb, exception_name[24], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[24]); } void isr25_handler(void) { - fb_draw_string(fb, exception_name[25], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[25]); } void isr26_handler(void) { - fb_draw_string(fb, exception_name[26], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[26]); } void isr27_handler(void) { - fb_draw_string(fb, exception_name[27], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[27]); } void isr28_handler(void) { - fb_draw_string(fb, exception_name[28], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[28]); } void isr29_handler(uint64_t error) { - fb_draw_string(fb, exception_name[29], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[29]); + printf("error: %d\n", error); } void isr30_handler(uint64_t error) { - fb_draw_string(fb, exception_name[30], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[30]); + printf("error: %d\n", error); } void isr31_handler(void) { - fb_draw_string(fb, exception_name[31], 0, 0, WHITE, BLACK); + printf("%s\n", exception_name[31]); } void irq0_handler(void) |
