Sat, 29 Apr 2023 17:03:17 +0200
2 files changed,
8 insertions(+),
1 deletions(-)
M
src/kernel/drivers/ps2_keyboard.c
→
src/kernel/drivers/ps2_keyboard.c
@@ -3,6 +3,7 @@ #include "cedos/interrupts.h"
#include "cedos/pic.h" #include "cedos/core.h" #include "cedos/sched/sched.h" +#include "cedos/mm/memory.h" #include "assembly.h" #define PS2_DATA 0x60@@ -47,7 +48,7 @@ ps2_kb_init,
ps2_kb_read }; -uint8_t buffer[BUFFER_LENGTH]; +uint8_t *buffer; volatile uint32_t buffer_head, buffer_tail; __attribute__((always_inline)) inline void buffer_enqueue(uint8_t value) {@@ -79,6 +80,11 @@ pic1_eoi();
} int ps2_kb_init(void) { + buffer_head = 0; + buffer_tail = 0; + + buffer = os_kernel_malloc(BUFFER_LENGTH); + // clear incoming data inb(PS2_DATA);
M
src/kernel/string.c
→
src/kernel/string.c
@@ -20,6 +20,7 @@ while (source[i]) {
destination[i] = source[i]; i++; } + destination[i] = 0; return destination; }