From b86f48da7fc46934d576698bb4f16be9b2a7eaf9 Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 26 Sep 2018 23:58:14 +0200 Subject: some bugfixes --- driver/mouse.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'driver/mouse.c') diff --git a/driver/mouse.c b/driver/mouse.c index 7ec5e68..cebafed 100644 --- a/driver/mouse.c +++ b/driver/mouse.c @@ -1,6 +1,9 @@ +#include "mouse.h" + +#include "ringbuffer.h" +#include "interrupts.h" #include "kernel/kernel.h" #include "log.h" -#include "mouse.h" #include "driver/vesa.h" //http://forum.osdev.org/viewtopic.php?t=10247 @@ -17,6 +20,8 @@ volatile int16_t mouse_x; volatile int16_t mouse_y; static volatile uint8_t mouse_a; +static ringbuffer mouse_in; + uint8_t mouse_read(); void mouse_wait(uint8_t a_type) //unsigned char @@ -67,8 +72,20 @@ int8_t mouse_get_y() return mouse_y; } +uint32_t mouse_interrupt(uint32_t esp) +{ + uint8_t b=x86_inb(0x60); + ringbuffer_put(&mouse_in,b); + //klog("%d",b); + return esp; +} + void mouse_init() { + + interrupt_register(INTERRUPT_MOUSE,&mouse_interrupt); + mouse_in=ringbuffer_init(1);// 4096 bytes ringbuffer; + mouse_x=mouse_y=0; mouse_cycle=0; -- cgit v1.2.3