diff options
author | Anton Kling <anton@kling.gg> | 2024-06-27 22:37:13 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-06-27 22:37:13 +0200 |
commit | f7b07eabcb33ebf9938907edd2df7f1e9dc46c88 (patch) | |
tree | 47d9e8472802394012975193b0068e1610fd2273 /kernel | |
parent | 565ef5415437bde9635e8e252e4aa9f503d3ef8d (diff) |
RTL8139: Nicer code
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/drivers/rtl8139.c | 11 |
1 files 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); |