summaryrefslogtreecommitdiff
path: root/driver/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/keyboard.c')
-rw-r--r--driver/keyboard.c9
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)