From f7b07eabcb33ebf9938907edd2df7f1e9dc46c88 Mon Sep 17 00:00:00 2001
From: Anton Kling <anton@kling.gg>
Date: Thu, 27 Jun 2024 22:37:13 +0200
Subject: RTL8139: Nicer code

---
 kernel/drivers/rtl8139.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/kernel/drivers/rtl8139.c b/kernel/drivers/rtl8139.c
index 610ca47..ff22041 100644
--- a/kernel/drivers/rtl8139.c
+++ b/kernel/drivers/rtl8139.c
@@ -12,7 +12,12 @@
 #define CMD 0x37
 #define IMR 0x3C
 
-#define RTL8139_RXBUFFER_SIZE (8192 << 3)
+// 0 - 8K
+// 1 - 16K
+// 2 - 32K
+// 3 - 64K
+#define RTL8139_CHOSEN_BUFFER 3
+#define RTL8139_RXBUFFER_SIZE (8192 << (RTL8139_CHOSEN_BUFFER))
 
 #define TSD0 0x10  // transmit status
 #define TSAD0 0x20 // transmit start address
@@ -182,11 +187,9 @@ void rtl8139_init(void) {
   // Set transmit and reciever enable
   outb(base_address + 0x37, (1 << 2) | (1 << 3));
 
-  int buffer_length = 3; // 0b11 for 64K + 16 byte
-
   // Configure the recieve buffer
   outl(base_address + 0x44,
-       0xf | (buffer_length << 11)); // 0xf is AB+AM+APM+AAP
+       0xf | ((RTL8139_CHOSEN_BUFFER) << 11)); // 0xf is AB+AM+APM+AAP
 
   install_handler((interrupt_handler)rtl8139_handler,
                   INT_32_INTERRUPT_GATE(0x3), 0x20 + interrupt_line);
-- 
cgit v1.2.3