提交 0b6ab841 创建 作者: kaashoek's avatar kaashoek

don't send keyboard interrupts to the second cpu, if we have only one cpu.

xv6 seems to work fine on uniprocessor now.
上级 7abf49d2
...@@ -117,7 +117,6 @@ echo foo > bar should truncate bar ...@@ -117,7 +117,6 @@ echo foo > bar should truncate bar
so O_CREATE should not truncate so O_CREATE should not truncate
but O_TRUNC should but O_TRUNC should
make it work on one cpu
make it work on a real machine make it work on a real machine
release before acquire at end of sleep? release before acquire at end of sleep?
check 2nd disk (i.e. if not in .bochsrc) check 2nd disk (i.e. if not in .bochsrc)
...@@ -365,8 +365,9 @@ console_read(int minor, char *dst, int n) ...@@ -365,8 +365,9 @@ console_read(int minor, char *dst, int n)
acquire(&kbd_lock); acquire(&kbd_lock);
while(kbd_w == kbd_r) while(kbd_w == kbd_r) {
sleep(&kbd_r, &kbd_lock); sleep(&kbd_r, &kbd_lock);
}
while(n > 0 && kbd_w != kbd_r){ while(n > 0 && kbd_w != kbd_r){
*dst = (kbd_buf[kbd_r]) & 0xff; *dst = (kbd_buf[kbd_r]) & 0xff;
...@@ -392,7 +393,7 @@ console_init() ...@@ -392,7 +393,7 @@ console_init()
devsw[CONSOLE].d_write = console_write; devsw[CONSOLE].d_write = console_write;
devsw[CONSOLE].d_read = console_read; devsw[CONSOLE].d_read = console_read;
ioapic_enable (IRQ_KBD, 1); ioapic_enable (IRQ_KBD, 0);
use_console_lock = 1; use_console_lock = 1;
} }
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论