From 3922adcdec5bd003b4106ffce79c28553bc40c15 Mon Sep 17 00:00:00 2001
From: Anton Kling <anton@kling.gg>
Date: Wed, 14 Feb 2024 17:40:06 +0100
Subject: Kernel: Update signal handling and IPC

---
 kernel/drivers/keyboard.c | 1 +
 kernel/drivers/rtl8139.c  | 6 ++++++
 2 files changed, 7 insertions(+)

(limited to 'kernel/drivers')

diff --git a/kernel/drivers/keyboard.c b/kernel/drivers/keyboard.c
index f59e6a8..da04b1c 100644
--- a/kernel/drivers/keyboard.c
+++ b/kernel/drivers/keyboard.c
@@ -183,6 +183,7 @@ int keyboard_read(u8 *buffer, u64 offset, u64 len, vfs_fd_t *fd) {
 }
 
 void add_keyboard(void) {
+  kprintf("very important");
   kb_inode = devfs_add_file("/keyboard", keyboard_read, NULL, NULL, 0, 0,
                             FS_TYPE_CHAR_DEVICE);
 }
diff --git a/kernel/drivers/rtl8139.c b/kernel/drivers/rtl8139.c
index 6e738db..b178078 100644
--- a/kernel/drivers/rtl8139.c
+++ b/kernel/drivers/rtl8139.c
@@ -105,6 +105,12 @@ void rtl8139_handler(void *regs) {
 }
 
 void rtl8139_send_data(u8 *data, u16 data_size) {
+  if (data_size > 0x1000) {
+    rtl8139_send_data(data, 0x1000);
+    data += 0x1000;
+    data_size -= 0x1000;
+    return rtl8139_send_data(data, data_size);
+  }
   kprintf("ipc_write\n");
   ipc_write(0, data, data_size);
   /*
-- 
cgit v1.2.3