diff options
| author | Miguel <m.i@gmx.at> | 2018-10-01 23:22:03 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-10-01 23:22:03 +0200 |
| commit | a455cd5af26bf8731e7c981a9421b16ab34dae6f (patch) | |
| tree | 140b184bf306cef258ba6e7965a78b3eecb598b9 /driver | |
| parent | b518f39803eaaf0b25b95baf951b12ef4d5a727e (diff) | |
fukkin scheduler
Diffstat (limited to 'driver')
| -rw-r--r-- | driver/keyboard.c | 1 | ||||
| -rw-r--r-- | driver/mouse.c | 22 | ||||
| -rw-r--r-- | driver/timer.c | 6 |
3 files changed, 17 insertions, 12 deletions
diff --git a/driver/keyboard.c b/driver/keyboard.c index 757bbb8..cc060c7 100644 --- a/driver/keyboard.c +++ b/driver/keyboard.c @@ -30,7 +30,6 @@ int hex_to_dec(char c) extern struct netdev e1000_dev; static void put(uint8_t c) { - if(c=='p')net_packet(&e1000_dev); syscall_generic(SYSCALL_WRITE,kb_stream, (char *)&c , 1, 0); } diff --git a/driver/mouse.c b/driver/mouse.c index d0f1591..810cb83 100644 --- a/driver/mouse.c +++ b/driver/mouse.c @@ -19,12 +19,17 @@ static ringbuffer mouse_in; bool mouse_worker() { - bool wake=false; - while(ringbuffer_has(&mouse_in)){ - mouse_handler(ringbuffer_get(&mouse_in)); - wake=true; - } - return wake; + if(ringbuffer_full(&mouse_in)) + { + klog("mouse buffer full"); + } + + bool wake=false; + while(ringbuffer_has(&mouse_in)){ + mouse_handler(ringbuffer_get(&mouse_in)); + wake=true; + } + return wake; } @@ -121,7 +126,7 @@ void mouse_action() if(mouse_byte[0]&0x80||mouse_byte[0]&0x40) { - klog("mouse overflow, skipping packet"); + // klog("mouse overflow, skipping packet"); return; //skip packet on overflow } @@ -146,6 +151,7 @@ void mouse_action() if(mouse_x<0)mouse_x=0; if(mouse_y<0)mouse_y=0; + if(mouse_x>=1920)mouse_x=1920-1; if(mouse_y>=1080)mouse_y=1080-1; @@ -164,7 +170,7 @@ void mouse_handler(uint8_t byte)//struct regs *a_r) //struct regs *a_r (not used mouse_cycle++; if(!(mouse_byte[0]&0x8)) { - klog("mouse out of sync, try resync"); + //klog("mouse out of sync, try resync"); mouse_cycle--; // kpanic("mouse packets out of sync!?"); // this bit is always 1, otherwise panic! } diff --git a/driver/timer.c b/driver/timer.c index 6f0977c..1a97ad8 100644 --- a/driver/timer.c +++ b/driver/timer.c @@ -161,7 +161,7 @@ uint64_t timer_init() uint64_t epoch_time=get_rtc_time(); task_system_clock_start=epoch_time*100; // since pit ticks 100 times a second - asm_pit_rate_10ms(); //tick at 100hz + asm_pit_rate_50ms(); //tick at 100hz interrupt_register(INTERRUPT_PIT_TIMER,&timer_interrupt); @@ -170,10 +170,10 @@ uint64_t timer_init() uint64_t timer_get_ms() { - return (asm_pit_get_ticks()+task_system_clock_start)*10; + return (asm_pit_get_ticks()+task_system_clock_start)*50; } uint64_t timer_get_uptime_ms() { - return asm_pit_get_ticks()*10; + return asm_pit_get_ticks()*50; } |
