Fix ps2 keyboard handling
This commit is contained in:
@ -22,17 +22,18 @@ void ps2kbproc_init(Proc *proc) {
|
||||
|
||||
void ps2kbproc_fn(void) {
|
||||
for (;;) {
|
||||
int32_t kbchr;
|
||||
int32_t kbchr = 0;
|
||||
uint8_t *buf = (uint8_t *)&kbchr;
|
||||
size_t i = 0;
|
||||
size_t total = 0;
|
||||
spinlock_acquire(&PS2KB_BUF.spinlock);
|
||||
for (; i < sizeof(kbchr); i++) {
|
||||
for (size_t i = 0; i < sizeof(kbchr); i++) {
|
||||
if (rbuf_pop(&PS2KB_BUF.rbuf, &buf[i]) < 0) {
|
||||
break;
|
||||
}
|
||||
total++;
|
||||
}
|
||||
spinlock_release(&PS2KB_BUF.spinlock);
|
||||
if (i > 0) {
|
||||
if (total == sizeof(kbchr)) {
|
||||
spinlock_acquire(&PS2KBPROC->bcast_pipes.spinlock);
|
||||
IpcPipe *head = PS2KBPROC->bcast_pipes.list;
|
||||
while (head != NULL) {
|
||||
|
Reference in New Issue
Block a user