From f44e63555b76b651f786199253cae2d8e40f8d15 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 24 Dec 2022 04:12:05 +0200 Subject: [PATCH] Added network fetch cb --- Network/AMDPCNET/pcnet.cpp | 6 ++++++ Network/E1000/e1000.cpp | 10 ++++++++-- Network/RTL8139/rtl8139.cpp | 10 ++++++++-- Network/RTL8169/rtl8169.cpp | 6 ++++++ Network/Virtio/Virtio.cpp | 6 ++++++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Network/AMDPCNET/pcnet.cpp b/Network/AMDPCNET/pcnet.cpp index 39a8eae..3708317 100644 --- a/Network/AMDPCNET/pcnet.cpp +++ b/Network/AMDPCNET/pcnet.cpp @@ -108,6 +108,12 @@ int CallbackHandler(KernelCallback *Data) return DEVICE_NOT_SUPPORTED; break; } + case FetchReason: + { + KAPI->Util.memcpy(Data->NetworkCallback.Fetch.Name, (void *)"AMD PCNET", 10); + Data->NetworkCallback.Fetch.MAC = MAC.ToHex(); + break; + } case InterruptReason: { break; diff --git a/Network/E1000/e1000.cpp b/Network/E1000/e1000.cpp index ba61bb8..bfc91c9 100644 --- a/Network/E1000/e1000.cpp +++ b/Network/E1000/e1000.cpp @@ -384,6 +384,12 @@ int CallbackHandler(KernelCallback *Data) return DEVICE_NOT_SUPPORTED; break; } + case FetchReason: + { + KAPI->Util.memcpy(Data->NetworkCallback.Fetch.Name, (void*)"Intel 82540EM Gigabit Ethernet Controller", 42); + Data->NetworkCallback.Fetch.MAC = MAC.ToHex(); + break; + } case InterruptReason: { OutCMD(REG::IMASK, 0x1); @@ -404,8 +410,8 @@ int CallbackHandler(KernelCallback *Data) } case SendReason: { - TX[TXCurrent]->Address = (uint64_t)Data->NetworkCallback.Data; - TX[TXCurrent]->Length = Data->NetworkCallback.Length; + TX[TXCurrent]->Address = (uint64_t)Data->NetworkCallback.Send.Data; + TX[TXCurrent]->Length = Data->NetworkCallback.Send.Length; TX[TXCurrent]->Command = CMD::EOP | CMD::IFCS | CMD::RS; TX[TXCurrent]->Status = 0; uint8_t OldTXCurrent = TXCurrent; diff --git a/Network/RTL8139/rtl8139.cpp b/Network/RTL8139/rtl8139.cpp index 02914b9..f63f461 100644 --- a/Network/RTL8139/rtl8139.cpp +++ b/Network/RTL8139/rtl8139.cpp @@ -167,6 +167,12 @@ int CallbackHandler(KernelCallback *Data) return DEVICE_NOT_SUPPORTED; break; } + case FetchReason: + { + KAPI->Util.memcpy(Data->NetworkCallback.Fetch.Name, (void *)"RTL-8139", 9); + Data->NetworkCallback.Fetch.MAC = MAC.ToHex(); + break; + } case InterruptReason: { uint16_t Status = RTLIW(0x3E); @@ -186,8 +192,8 @@ int CallbackHandler(KernelCallback *Data) } case SendReason: { - RTLOL(TSAD[TXCurrent], static_cast(reinterpret_cast(Data->NetworkCallback.Data))); - RTLOL(TSD[TXCurrent++], Data->NetworkCallback.Length); + RTLOL(TSAD[TXCurrent], static_cast(reinterpret_cast(Data->NetworkCallback.Send.Data))); + RTLOL(TSD[TXCurrent++], Data->NetworkCallback.Send.Length); if (TXCurrent > 3) TXCurrent = 0; break; diff --git a/Network/RTL8169/rtl8169.cpp b/Network/RTL8169/rtl8169.cpp index 27ea49f..e917248 100644 --- a/Network/RTL8169/rtl8169.cpp +++ b/Network/RTL8169/rtl8169.cpp @@ -78,6 +78,12 @@ int CallbackHandler(KernelCallback *Data) return DEVICE_NOT_SUPPORTED; break; } + case FetchReason: + { + KAPI->Util.memcpy(Data->NetworkCallback.Fetch.Name, (void *)"RTL-8169", 9); + Data->NetworkCallback.Fetch.MAC = MAC.ToHex(); + break; + } case InterruptReason: { break; diff --git a/Network/Virtio/Virtio.cpp b/Network/Virtio/Virtio.cpp index 7e609af..5842e96 100644 --- a/Network/Virtio/Virtio.cpp +++ b/Network/Virtio/Virtio.cpp @@ -78,6 +78,12 @@ int CallbackHandler(KernelCallback *Data) return DEVICE_NOT_SUPPORTED; break; } + case FetchReason: + { + KAPI->Util.memcpy(Data->NetworkCallback.Fetch.Name, (void *)"Virtio Network", 15); + Data->NetworkCallback.Fetch.MAC = MAC.ToHex(); + break; + } case InterruptReason: { break;