提交 04b24182 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Bring the PIC code back..

上级 ab043853
...@@ -36,6 +36,7 @@ OBJS = \ ...@@ -36,6 +36,7 @@ OBJS = \
memide.o \ memide.o \
mp.o \ mp.o \
ns.o \ ns.o \
picirq.o \
pipe.o \ pipe.o \
proc.o \ proc.o \
rcu.o \ rcu.o \
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "kernel.h" #include "kernel.h"
#include "cpu.h" #include "cpu.h"
extern void initpic(void);
extern void inituart(void); extern void inituart(void);
extern void initcga(void); extern void initcga(void);
extern void initconsole(void); extern void initconsole(void);
...@@ -76,6 +77,7 @@ cmain(void) ...@@ -76,6 +77,7 @@ cmain(void)
{ {
extern pml4e_t kpml4[]; extern pml4e_t kpml4[];
initpic(); // interrupt controller
inituart(); inituart();
initcga(); initcga();
initconsole(); initconsole();
......
...@@ -12,10 +12,10 @@ ...@@ -12,10 +12,10 @@
// Current IRQ mask. // Current IRQ mask.
// Initial IRQ mask has interrupt 2 enabled (for slave 8259A). // Initial IRQ mask has interrupt 2 enabled (for slave 8259A).
static ushort irqmask = 0xFFFF & ~(1<<IRQ_SLAVE); static u16 irqmask = 0xFFFF & ~(1<<IRQ_SLAVE);
static void static void
picsetmask(ushort mask) picsetmask(u16 mask)
{ {
irqmask = mask; irqmask = mask;
outb(IO_PIC1+1, mask); outb(IO_PIC1+1, mask);
...@@ -30,7 +30,7 @@ picenable(int irq) ...@@ -30,7 +30,7 @@ picenable(int irq)
// Initialize the 8259A interrupt controllers. // Initialize the 8259A interrupt controllers.
void void
picinit(void) initpic(void)
{ {
// mask all interrupts // mask all interrupts
outb(IO_PIC1+1, 0xFF); outb(IO_PIC1+1, 0xFF);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论