From f7b07eabcb33ebf9938907edd2df7f1e9dc46c88 Mon Sep 17 00:00:00 2001 From: Anton Kling 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(-) (limited to 'kernel/drivers') 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