summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-10-01 23:22:03 +0200
committerMiguel <m.i@gmx.at>2018-10-01 23:22:03 +0200
commita455cd5af26bf8731e7c981a9421b16ab34dae6f (patch)
tree140b184bf306cef258ba6e7965a78b3eecb598b9 /driver
parentb518f39803eaaf0b25b95baf951b12ef4d5a727e (diff)
fukkin scheduler
Diffstat (limited to 'driver')
-rw-r--r--driver/keyboard.c1
-rw-r--r--driver/mouse.c22
-rw-r--r--driver/timer.c6
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;
}