diff options
Diffstat (limited to 'driver/keyboard.c')
| -rw-r--r-- | driver/keyboard.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/driver/keyboard.c b/driver/keyboard.c index cc060c7..2be9c12 100644 --- a/driver/keyboard.c +++ b/driver/keyboard.c @@ -17,7 +17,6 @@ static bool shift_l=false; static bool shift_r=false; static bool capslock=false; -static uint32_t kb_stream; static char num_syms[]={')','!','@','#','$','%','^','&','*','('}; int hex_to_dec(char c) @@ -30,13 +29,12 @@ int hex_to_dec(char c) extern struct netdev e1000_dev; static void put(uint8_t c) { - syscall_generic(SYSCALL_WRITE,kb_stream, (char *)&c , 1, 0); +// syscall_generic(SYSCALL_WRITE,kb_stream, (char *)&c , 1, 0); } uint32_t keyboard_interrupt(uint32_t esp) { - - ringbuffer_put(&kb_in,x86_inb(0x60)); + if(!ringbuffer_put(&kb_in,x86_inb(0x60))) kpanic("full"); return esp; } @@ -51,11 +49,10 @@ bool keyboard_worker() } -void keyboard_init(uint32_t s) +void keyboard_init() { kb_in=ringbuffer_init(1);// 4096 bytes ringbuffer; interrupt_register(INTERRUPT_KEYBOARD,&keyboard_interrupt); - kb_stream=s; } void keyboard_handle(uint8_t in) |
