diff options
author | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-29 02:52:48 -0500 |
---|---|---|
committer | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-29 02:52:48 -0500 |
commit | 1f71b9576db536af84155363e14fc49e92de2eef (patch) | |
tree | 23f65a31cc89785befb70517b203625e2296326f /src/kernel/int.c | |
parent | dc0e84d5779db68e081c667faadc19a20de861ea (diff) |
backup 8.29.21
Diffstat (limited to 'src/kernel/int.c')
-rw-r--r-- | src/kernel/int.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/kernel/int.c b/src/kernel/int.c index 34f1c78..5901a90 100644 --- a/src/kernel/int.c +++ b/src/kernel/int.c @@ -4,7 +4,7 @@ #include <paging.h> #include <printf.h> #include <isv.h> -#include <kernel.h> +#include <addr.h> #include <libc.h> #include <madt.h> #include <timer.h> @@ -44,7 +44,6 @@ .present = 1 \ }) -#define GDT_ADDR (uint64_t)PHYS_TO_VIRT(0x7e22) #define IOAPICR_VER 1 @@ -74,18 +73,10 @@ struct idt_reg { uint64_t offset; } __attribute__((packed)); -struct gdt_reg { - uint16_t size; - uint64_t offset; -} __attribute__((packed)); - struct idt_descriptor *idt; static struct idt_reg idtr; -struct gdt_reg gdtr = { - .size = 0x17, - .offset = GDT_ADDR -}; + lapic_t lapic; //would make this static but it's needed by timer.c @@ -211,7 +202,7 @@ void init_exceptions() { //void new_idt -void init_interrupts() { +void init_interrupts_bsp() { init_madt(); debug_madt(); lapic = get_lapic(); @@ -232,9 +223,7 @@ void init_interrupts() { bzero(&isr_bitmap, sizeof(isr_bitmap)); isr_bitmap[0] = (((uint64_t)1 << 32) - 1); - //set idt and new gdt - asm("lgdt [%0]\n" - "lidt [%1]\n":: "m"(gdtr), "m"(idtr)); + asm("lidt [%0]\n"::"m"(idtr)); //Spurrious Interrupt (permanent, required for APIC) @@ -251,3 +240,6 @@ void init_interrupts() { init_timer(); asm("sti\n"); } + +void smp_init_interrupts() { +} |