summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaashoek <kaashoek>2006-09-03 17:34:09 +0000
committerkaashoek <kaashoek>2006-09-03 17:34:09 +0000
commit0b6ab8416e50dcbf790163282f461647e180dbc6 (patch)
tree4116afa412b392f3afea069db88f8bc5a3e2798f
parent7abf49d2f22af633f2fb3546f9f9fd818cef25df (diff)
downloadxv6-labs-0b6ab8416e50dcbf790163282f461647e180dbc6.tar.gz
xv6-labs-0b6ab8416e50dcbf790163282f461647e180dbc6.tar.bz2
xv6-labs-0b6ab8416e50dcbf790163282f461647e180dbc6.zip
don't send keyboard interrupts to the second cpu, if we have only one cpu.
xv6 seems to work fine on uniprocessor now.
-rw-r--r--Notes1
-rw-r--r--console.c5
2 files changed, 3 insertions, 3 deletions
diff --git a/Notes b/Notes
index 4e1703b..8b47668 100644
--- a/Notes
+++ b/Notes
@@ -117,7 +117,6 @@ echo foo > bar should truncate bar
so O_CREATE should not truncate
but O_TRUNC should
-make it work on one cpu
make it work on a real machine
release before acquire at end of sleep?
check 2nd disk (i.e. if not in .bochsrc)
diff --git a/console.c b/console.c
index 1a64122..438e332 100644
--- a/console.c
+++ b/console.c
@@ -365,8 +365,9 @@ console_read(int minor, char *dst, int n)
acquire(&kbd_lock);
- while(kbd_w == kbd_r)
+ while(kbd_w == kbd_r) {
sleep(&kbd_r, &kbd_lock);
+ }
while(n > 0 && kbd_w != kbd_r){
*dst = (kbd_buf[kbd_r]) & 0xff;
@@ -392,7 +393,7 @@ console_init()
devsw[CONSOLE].d_write = console_write;
devsw[CONSOLE].d_read = console_read;
- ioapic_enable (IRQ_KBD, 1);
+ ioapic_enable (IRQ_KBD, 0);
use_console_lock = 1;
}