summaryrefslogtreecommitdiff
path: root/src/kernel/int.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/int.c')
-rw-r--r--src/kernel/int.c22
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() {
+}