We should have a working interrupt table
This commit is contained in:
parent
42a76ff1ec
commit
1747d88ff3
4 changed files with 78 additions and 51 deletions
|
@ -1,4 +1,5 @@
|
|||
#include <kernel/init.h>
|
||||
#include <kernel/interrupt.h>
|
||||
#include <string.h>
|
||||
#include <sys/io.h>
|
||||
#include "gdt.h"
|
||||
|
@ -43,6 +44,7 @@ int init(void) {
|
|||
NMI_disable();
|
||||
A20_enable();
|
||||
setup_gdt();
|
||||
idt_init();
|
||||
printf("Fenix Dev Pre-release v0.0.3\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,55 +1,72 @@
|
|||
global irq0
|
||||
global irq1
|
||||
global irq2
|
||||
global irq3
|
||||
global irq4
|
||||
global irq5
|
||||
global irq6
|
||||
global irq7
|
||||
global irq8
|
||||
global irq9
|
||||
global irq10
|
||||
global irq11
|
||||
global irq12
|
||||
global irq13
|
||||
global irq14
|
||||
global irq15
|
||||
.globl irq0
|
||||
.type irq0,%function
|
||||
.globl irq1
|
||||
.type irq1,%function
|
||||
.globl irq2
|
||||
.type irq2,%function
|
||||
.globl irq3
|
||||
.type irq3,%function
|
||||
.globl irq4
|
||||
.type irq4,%function
|
||||
.globl irq5
|
||||
.type irq5,%function
|
||||
.globl irq6
|
||||
.type irq6,%function
|
||||
.globl irq7
|
||||
.type irq7,%function
|
||||
.globl irq8
|
||||
.type irq8,%function
|
||||
.globl irq9
|
||||
.type irq9,%function
|
||||
.globl irq10
|
||||
.type irq10,%function
|
||||
.globl irq11
|
||||
.type irq11,%function
|
||||
.globl irq12
|
||||
.type irq12,%function
|
||||
.globl irq13
|
||||
.type irq13,%function
|
||||
.globl irq14
|
||||
.type irq14,%function
|
||||
.globl irq15
|
||||
.type irq15,%function
|
||||
|
||||
global load_idt
|
||||
.globl load_idt
|
||||
.type load_idt,%function
|
||||
|
||||
global irq0_handler
|
||||
global irq1_handler
|
||||
global irq2_handler
|
||||
global irq3_handler
|
||||
global irq4_handler
|
||||
global irq5_handler
|
||||
global irq6_handler
|
||||
global irq7_handler
|
||||
global irq8_handler
|
||||
global irq9_handler
|
||||
global irq10_handler
|
||||
global irq11_handler
|
||||
global irq12_handler
|
||||
global irq13_handler
|
||||
global irq14_handler
|
||||
global irq15_handler
|
||||
.globl irq0_handler
|
||||
.globl irq1_handler
|
||||
.globl irq2_handler
|
||||
.globl irq3_handler
|
||||
.globl irq4_handler
|
||||
.globl irq5_handler
|
||||
.globl irq6_handler
|
||||
.globl irq7_handler
|
||||
.globl irq8_handler
|
||||
.globl irq9_handler
|
||||
.globl irq10_handler
|
||||
.globl irq11_handler
|
||||
.globl irq12_handler
|
||||
.globl irq13_handler
|
||||
.globl irq14_handler
|
||||
.globl irq15_handler
|
||||
|
||||
extern irq0_handler
|
||||
extern irq1_handler
|
||||
extern irq2_handler
|
||||
extern irq3_handler
|
||||
extern irq4_handler
|
||||
extern irq5_handler
|
||||
extern irq6_handler
|
||||
extern irq7_handler
|
||||
extern irq8_handler
|
||||
extern irq9_handler
|
||||
extern irq10_handler
|
||||
extern irq11_handler
|
||||
extern irq12_handler
|
||||
extern irq13_handler
|
||||
extern irq14_handler
|
||||
extern irq15_handler
|
||||
.extern irq0_handler
|
||||
.extern irq1_handler
|
||||
.extern irq2_handler
|
||||
.extern irq3_handler
|
||||
.extern irq4_handler
|
||||
.extern irq5_handler
|
||||
.extern irq6_handler
|
||||
.extern irq7_handler
|
||||
.extern irq8_handler
|
||||
.extern irq9_handler
|
||||
.extern irq10_handler
|
||||
.extern irq11_handler
|
||||
.extern irq12_handler
|
||||
.extern irq13_handler
|
||||
.extern irq14_handler
|
||||
.extern irq15_handler
|
||||
|
||||
irq0:
|
||||
pusha
|
||||
|
@ -149,6 +166,6 @@ irq15:
|
|||
|
||||
load_idt:
|
||||
mov 4(%esp), %edx
|
||||
lidt %edx
|
||||
lidt (%edx)
|
||||
sti
|
||||
ret
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <kernel/interrupt.h>
|
||||
#include <sys/io.h>
|
||||
|
||||
void idt_init(void) {
|
||||
extern int load_idt();
|
||||
|
|
|
@ -3,4 +3,11 @@ KERNEL_ARCH_CPPFLAGS=
|
|||
KERNEL_ARCH_LDFLAGS=
|
||||
KERNEL_ARCH_LIBS=
|
||||
|
||||
KERNEL_ARCH_OBJS=$(ARCHDIR)/boot.o $(ARCHDIR)/tty.o $(ARCHDIR)/init.o $(ARCHDIR)/cmos.o $(ARCHDIR)/gdt.o $(ARCHDIR)/gdt_load.o
|
||||
KERNEL_ARCH_OBJS=$(ARCHDIR)/boot.o \
|
||||
$(ARCHDIR)/tty.o \
|
||||
$(ARCHDIR)/init.o \
|
||||
$(ARCHDIR)/cmos.o \
|
||||
$(ARCHDIR)/gdt.o \
|
||||
$(ARCHDIR)/gdt_load.o \
|
||||
$(ARCHDIR)/interrupt.o \
|
||||
$(ARCHDIR)/inter.o
|
Loading…
Reference in a new issue