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

Peel initseg off of inittrap.

上级 0b9afb2a
...@@ -67,7 +67,7 @@ xv6memfs.img: bootblock kernelmemfs ...@@ -67,7 +67,7 @@ xv6memfs.img: bootblock kernelmemfs
clean: clean:
rm -f *.o *.d *.asm *.sym initcode kernel bootother rm -f *.o *.d *.asm *.sym initcode kernel bootother
QEMUOPTS = -smp $(CPUS) -m 512 QEMUOPTS = -smp $(CPUS) -m 512 -nographic
qemu: kernel qemu: kernel
$(QEMU) $(QEMUOPTS) -kernel kernel #-S -s $(QEMU) $(QEMUOPTS) -kernel kernel #-S -s
......
...@@ -12,6 +12,7 @@ extern void initmp(void); ...@@ -12,6 +12,7 @@ extern void initmp(void);
extern void initlapic(void); extern void initlapic(void);
extern void inittls(void); extern void inittls(void);
extern void inittrap(void); extern void inittrap(void);
extern void initseg(void);
extern void initkalloc(void); extern void initkalloc(void);
extern void initrcu(void); extern void initrcu(void);
extern void initproc(void); extern void initproc(void);
...@@ -20,7 +21,6 @@ extern void inituser(void); ...@@ -20,7 +21,6 @@ extern void inituser(void);
static volatile int bstate; static volatile int bstate;
#if 1
// Common CPU setup code. // Common CPU setup code.
// Bootstrap CPU comes here from mainc(). // Bootstrap CPU comes here from mainc().
// Other CPUs jump here from bootother.S. // Other CPUs jump here from bootother.S.
...@@ -28,9 +28,9 @@ void ...@@ -28,9 +28,9 @@ void
mpboot(void) mpboot(void)
{ {
// XXX(sbw) load VA for gdt, etc // XXX(sbw) load VA for gdt, etc
initseg();
panic("mpboot"); panic("mpboot");
} }
#endif
// Start the non-boot processors. // Start the non-boot processors.
static void static void
...@@ -74,6 +74,7 @@ cmain(void) ...@@ -74,6 +74,7 @@ cmain(void)
initcga(); initcga();
initconsole(); initconsole();
inittrap(); inittrap();
initseg();
initpg(); initpg();
initmp(); initmp();
initlapic(); initlapic();
......
...@@ -33,7 +33,6 @@ trap(struct trapframe *tf) ...@@ -33,7 +33,6 @@ trap(struct trapframe *tf)
void void
inittrap(void) inittrap(void)
{ {
volatile struct desctr dtr;
uint64 entry; uint64 entry;
uint32 bits; uint32 bits;
int i; int i;
...@@ -43,6 +42,12 @@ inittrap(void) ...@@ -43,6 +42,12 @@ inittrap(void)
entry = trapentry[i]; entry = trapentry[i];
idt[i] = INTDESC(KCSEG, entry, bits); idt[i] = INTDESC(KCSEG, entry, bits);
} }
}
void
initseg(void)
{
volatile struct desctr dtr;
dtr.limit = sizeof(idt) - 1; dtr.limit = sizeof(idt) - 1;
dtr.base = (u64)idt; dtr.base = (u64)idt;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论