Home | History | Annotate | Download | only in menu
      1 #include <stdio.h>
      2 #include <unistd.h>
      3 #include <errno.h>
      4 #include <string.h>
      5 #include <sys/cpu.h>
      6 
      7 void drain_keyboard(void)
      8 {
      9     /* Prevent "ghost typing" and keyboard buffer snooping */
     10     volatile char junk;
     11     int rv;
     12 
     13     do {
     14 	rv = read(0, (char *)&junk, 1);
     15     } while (rv > 0);
     16 
     17     junk = 0;
     18 
     19     cli();
     20     *(volatile uint8_t *)0x419 = 0;	/* Alt-XXX keyboard area */
     21     *(volatile uint16_t *)0x41a = 0x1e;	/* Keyboard buffer empty */
     22     *(volatile uint16_t *)0x41c = 0x1e;
     23     memset((void *)0x41e, 0, 32);	/* Clear the actual keyboard buffer */
     24     sti();
     25 }
     26