提交 42c41a06 创建 作者: Austin Clements's avatar Austin Clements

Move halt functionality to main.c

Avoid calling sys_halt from inside the kernel.
上级 7770d60c
......@@ -148,6 +148,9 @@ void lapic_tlbflush(hwid_t);
void lapic_sampconf(hwid_t);
void lapicpc(char mask);
// main.c
void halt(void) __attribute__((noreturn));
// mp.c
extern int ncpu;
int mpbcpu(void);
......
......@@ -183,7 +183,7 @@ kerneltrap(struct trapframe *tf)
printtrace(tf->rbp);
panicked = 1;
sys_halt();
halt();
for(;;)
;
}
......@@ -204,7 +204,7 @@ panic(const char *fmt, ...)
printtrace(rrbp());
panicked = 1;
sys_halt();
halt();
for(;;)
;
}
......
......@@ -140,3 +140,14 @@ cmain(u64 mbmagic, u64 mbaddr)
panic("Unreachable");
}
void
halt(void)
{
int i;
const char s[] = "Shutdown";
for(i = 0; i < 8; i++)
outb(0x8900, s[i]);
for (;;);
}
......@@ -148,12 +148,8 @@ sys_unmap(userptr<void> addr, size_t len)
int
sys_halt(void)
{
int i;
const char s[] = "Shutdown";
for(i = 0; i < 8; i++)
outb(0x8900, s[i]);
return 0;
halt();
panic("halt returned");
}
//SYSCALL
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论