]> Joshua Wise's Git repositories - netwatch.git/commitdiff
Merge branch 'master' of /storage/git/netwatch
authorJacob Potter <jdpotter@andrew.cmu.edu>
Sat, 13 Dec 2008 22:10:12 +0000 (17:10 -0500)
committerJacob Potter <jdpotter@andrew.cmu.edu>
Sat, 13 Dec 2008 22:10:12 +0000 (17:10 -0500)
aseg-paging/main.c

index 650f29139c2609144062cb2733e61a98259445d6..56e856c18944abf856a2c81148a25714ddc1d36c 100644 (file)
@@ -17,10 +17,11 @@ extern unsigned int counter;
 static int _ibf_ready = 0;
 static int _waiting_for_data = 0;
 static int curdev = 0;
+static int adding_locks_from_time_to_time = 0;
 
 static int _inject_ready()
 {
-       return _ibf_ready && !_waiting_for_data;
+       return _ibf_ready && !_waiting_for_data && !adding_locks_from_time_to_time;
 }
 
 void _try_inject()
@@ -38,6 +39,7 @@ void _try_inject()
                while ((inb(0x64) & 0x02) && i--)       /* wait for completion */
                        ;
                outl(0x844, 0x1000);
+               adding_locks_from_time_to_time++;
                smi_enable_event(SMI_EVENT_DEVTRAP_KBC);
        } else if (kbd_has_injected_scancode())
                outputf("Would like to inject, but %d %d", _ibf_ready, _waiting_for_data);
@@ -71,10 +73,12 @@ void pci_dump() {
                        
                        break;
                case 0x60:
-                       if ((curdev == 0) && kbd_has_injected_scancode())
+                       if ((curdev == 0) && kbd_has_injected_scancode() && !adding_locks_from_time_to_time)
                                b = kbd_get_injected_scancode();
                        else
                                b = inb(0x60);
+                       if (adding_locks_from_time_to_time)
+                               adding_locks_from_time_to_time--;
                        if ((curdev == 0) && (b == 0x01)) {     /* Escape */
                                outb(0xCF9, 0x4);       /* Reboot */
                                return;
This page took 0.027981 seconds and 4 git commands to generate.