From 3e7d1acffd81175246fab1ed8be30569c9cd3289 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sun, 10 Apr 2022 15:13:49 +0200 Subject: kernel: idle process --- src/kernel/arch/i386/driver/ps2.c | 9 ++++----- src/kernel/arch/i386/driver/ps2.h | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/kernel/arch/i386/driver') diff --git a/src/kernel/arch/i386/driver/ps2.c b/src/kernel/arch/i386/driver/ps2.c index 697bd34..5121b9e 100644 --- a/src/kernel/arch/i386/driver/ps2.c +++ b/src/kernel/arch/i386/driver/ps2.c @@ -7,17 +7,16 @@ static volatile uint8_t backlog[BACKLOG_CAPACITY] = {}; static volatile size_t backlog_size = 0; +bool ps2_ready(void) { + return backlog_size > 0; +} + void ps2_recv(uint8_t s) { if (backlog_size >= BACKLOG_CAPACITY) return; backlog[backlog_size++] = s; } size_t ps2_read(uint8_t *buf, size_t len) { - irq_interrupt_flag(true); - while (backlog_size == 0) - asm("hlt" ::: "memory"); - irq_interrupt_flag(false); - if (backlog_size <= len) len = backlog_size; backlog_size -= len; /* guaranteed to never be < 0 */ diff --git a/src/kernel/arch/i386/driver/ps2.h b/src/kernel/arch/i386/driver/ps2.h index 4b56056..712b157 100644 --- a/src/kernel/arch/i386/driver/ps2.h +++ b/src/kernel/arch/i386/driver/ps2.h @@ -3,5 +3,6 @@ #include #include +bool ps2_ready(void); void ps2_recv(uint8_t scancode); size_t ps2_read(uint8_t *buf, size_t max_len); -- cgit v1.2.3