diff --git a/source/Cosmos.HAL2/Global.cs b/source/Cosmos.HAL2/Global.cs index 5bd14cba2..cc801aa9d 100644 --- a/source/Cosmos.HAL2/Global.cs +++ b/source/Cosmos.HAL2/Global.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Cosmos.Core; using Cosmos.Debug.Kernel; using Cosmos.HAL.BlockDevice; +using Cosmos.HAL.Network; namespace Cosmos.HAL { @@ -63,7 +64,8 @@ namespace Cosmos.HAL AHCI.InitDriver(); //EHCI.InitDriver(); - Network.NetworkInit.Init(); + mDebugger.Send("Network Devices Init"); + NetworkInit.Init(); mDebugger.Send("Done initializing Cosmos.HAL.Global"); diff --git a/source/Cosmos.System2/Global.cs b/source/Cosmos.System2/Global.cs index 2fc541ed9..bc2320d30 100644 --- a/source/Cosmos.System2/Global.cs +++ b/source/Cosmos.System2/Global.cs @@ -86,10 +86,13 @@ namespace Cosmos.System mDebugger.Send("HW Init"); HAL.Global.Init(textScreen); + + Network.NetworkStack.Init(); + mDebugger.Send("Network Stack Init"); + NumLock = false; CapsLock = false; ScrollLock = false; - Network.NetworkStack.Init(); } /// diff --git a/source/Cosmos.System2/Network/ARP/ARPPacket.cs b/source/Cosmos.System2/Network/ARP/ARPPacket.cs index 196cd8cf3..f1aaa8459 100644 --- a/source/Cosmos.System2/Network/ARP/ARPPacket.cs +++ b/source/Cosmos.System2/Network/ARP/ARPPacket.cs @@ -58,7 +58,7 @@ namespace Cosmos.System.Network.ARP ARPRequest_Ethernet arp_request = new ARPRequest_Ethernet(packetData); if (arp_request.SenderIP == null) { - NetworkStack.debugger.Send("SenderIP null in ARPHandler!"); + Global.mDebugger.Send("SenderIP null in ARPHandler!"); } arp_request = new ARPRequest_Ethernet(packetData); @@ -66,7 +66,7 @@ namespace Cosmos.System.Network.ARP if (NetworkStack.AddressMap.ContainsKey(arp_request.TargetIP.Hash) == true) { - NetworkStack.debugger.Send("ARP Request Recvd from " + arp_request.SenderIP.ToString()); + Global.mDebugger.Send("ARP Request Recvd from " + arp_request.SenderIP.ToString()); NetworkDevice nic = NetworkStack.AddressMap[arp_request.TargetIP.Hash]; ARPReply_Ethernet reply = @@ -81,9 +81,9 @@ namespace Cosmos.System.Network.ARP if ((arp_packet.HardwareType == 1) && (arp_packet.ProtocolType == 0x0800)) { ARPReply_Ethernet arp_reply = new ARPReply_Ethernet(packetData); - NetworkStack.debugger.Send("Received ARP Reply"); - NetworkStack.debugger.Send(arp_reply.ToString()); - NetworkStack.debugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString()); + Global.mDebugger.Send("Received ARP Reply"); + Global.mDebugger.Send(arp_reply.ToString()); + Global.mDebugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString()); ARPCache.Update(arp_reply.SenderIP, arp_reply.SenderMAC); OutgoingBuffer.ARPCache_Update(arp_reply); diff --git a/source/Cosmos.System2/Network/ARP/ARPPacket_Ethernet.cs b/source/Cosmos.System2/Network/ARP/ARPPacket_Ethernet.cs index c4c60375c..cd7eeea92 100644 --- a/source/Cosmos.System2/Network/ARP/ARPPacket_Ethernet.cs +++ b/source/Cosmos.System2/Network/ARP/ARPPacket_Ethernet.cs @@ -62,7 +62,7 @@ namespace Cosmos.System.Network.ARP mSenderIP = new Address(RawData, 28); if (SenderIP == null) { - NetworkStack.debugger.Send("But its already null again"); + Global.mDebugger.Send("But its already null again"); } mTargetMAC = new MACAddress(RawData, 32); mTargetIP = new Address(RawData, 38); @@ -219,7 +219,7 @@ namespace Cosmos.System.Network.ARP { if (SenderIP == null) { - NetworkStack.debugger.Send("In ARPRequest_Ethernet, SenderIP is null!"); + Global.mDebugger.Send("In ARPRequest_Ethernet, SenderIP is null!"); } } diff --git a/source/Cosmos.System2/Network/Config/IPConfig.cs b/source/Cosmos.System2/Network/Config/IPConfig.cs index f248388c0..c04c09d75 100644 --- a/source/Cosmos.System2/Network/Config/IPConfig.cs +++ b/source/Cosmos.System2/Network/Config/IPConfig.cs @@ -96,7 +96,7 @@ namespace Cosmos.System.Network.Config { var config = new IPConfig(ip, subnet, gw); NetworkStack.ConfigIP(device, config); - NetworkStack.debugger.Send(config.ToString()); + Global.mDebugger.Send("Config OK."); return true; } return false; diff --git a/source/Cosmos.System2/Network/IPV4/UDP/DHCP/DHCPClient.cs b/source/Cosmos.System2/Network/IPV4/UDP/DHCP/DHCPClient.cs index b78b38cf9..95645a9b8 100644 --- a/source/Cosmos.System2/Network/IPV4/UDP/DHCP/DHCPClient.cs +++ b/source/Cosmos.System2/Network/IPV4/UDP/DHCP/DHCPClient.cs @@ -198,17 +198,17 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP packet.Client.ToString() == null || packet.Client.ToString() == null) { - NetworkStack.debugger.Send("Parsing DHCP ACK Packet failed, can't apply network configuration."); + Global.mDebugger.Send("Parsing DHCP ACK Packet failed, can't apply network configuration."); } else { if (message) { - NetworkStack.debugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration..."); - NetworkStack.debugger.Send(" IP Address : " + packet.Client.ToString()); - NetworkStack.debugger.Send(" Subnet mask : " + packet.Subnet.ToString()); - NetworkStack.debugger.Send(" Gateway : " + packet.Server.ToString()); - NetworkStack.debugger.Send(" DNS server : " + packet.DNS.ToString()); + Global.mDebugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration..."); + Global.mDebugger.Send(" IP Address : " + packet.Client.ToString()); + Global.mDebugger.Send(" Subnet mask : " + packet.Subnet.ToString()); + Global.mDebugger.Send(" Gateway : " + packet.Server.ToString()); + Global.mDebugger.Send(" DNS server : " + packet.DNS.ToString()); } IPConfig.Enable(networkDevice, packet.Client, packet.Subnet, packet.Server); @@ -216,7 +216,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP if (message) { - NetworkStack.debugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied."); + Global.mDebugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied."); asked = false; } } diff --git a/source/Cosmos.System2/Network/IPV4/UDP/DNS/DNSPacket.cs b/source/Cosmos.System2/Network/IPV4/UDP/DNS/DNSPacket.cs index b09df143f..89fd171d5 100644 --- a/source/Cosmos.System2/Network/IPV4/UDP/DNS/DNSPacket.cs +++ b/source/Cosmos.System2/Network/IPV4/UDP/DNS/DNSPacket.cs @@ -329,7 +329,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DNS if ((ushort)(DNSFlags & 0x0F) != (ushort)ReplyCode.OK) { - NetworkStack.debugger.Send("DNS Packet response not OK. Passing packet."); + Global.mDebugger.Send("DNS Packet response not OK. Passing packet."); return; } diff --git a/source/Cosmos.System2/Network/IPv4/ICMPPacket.cs b/source/Cosmos.System2/Network/IPv4/ICMPPacket.cs index 741aa3487..f47acd641 100644 --- a/source/Cosmos.System2/Network/IPv4/ICMPPacket.cs +++ b/source/Cosmos.System2/Network/IPv4/ICMPPacket.cs @@ -37,7 +37,7 @@ namespace Cosmos.System.Network.IPv4 /// Thrown if packetData is invalid. internal static void ICMPHandler(byte[] packetData) { - NetworkStack.debugger.Send("ICMP Handler called"); + Global.mDebugger.Send("ICMP Handler called"); ICMPPacket icmp_packet = new ICMPPacket(packetData); switch (icmp_packet.ICMP_Type) { @@ -47,12 +47,12 @@ namespace Cosmos.System.Network.IPv4 { receiver.receiveData(icmp_packet); } - NetworkStack.debugger.Send("Received ICMP Echo reply from " + icmp_packet.SourceIP.ToString()); + Global.mDebugger.Send("Received ICMP Echo reply from " + icmp_packet.SourceIP.ToString()); break; case 8: ICMPEchoRequest request = new ICMPEchoRequest(packetData); ICMPEchoReply reply = new ICMPEchoReply(request); - NetworkStack.debugger.Send("Sending ICMP Echo reply to " + reply.DestinationIP.ToString()); + Global.mDebugger.Send("Sending ICMP Echo reply to " + reply.DestinationIP.ToString()); OutgoingBuffer.AddPacket(reply); NetworkStack.Update(); break; diff --git a/source/Cosmos.System2/Network/IPv4/IPPacket.cs b/source/Cosmos.System2/Network/IPv4/IPPacket.cs index e6503cd39..dfd4d230a 100644 --- a/source/Cosmos.System2/Network/IPv4/IPPacket.cs +++ b/source/Cosmos.System2/Network/IPv4/IPPacket.cs @@ -38,7 +38,7 @@ namespace Cosmos.System.Network.IPv4 //Sys.Console.WriteLine(ip_packet.ToString()); if (ip_packet.SourceIP == null) { - NetworkStack.debugger.Send("SourceIP null in IPv4Handler!"); + Global.mDebugger.Send("SourceIP null in IPv4Handler!"); } ARPCache.Update(ip_packet.SourceIP, ip_packet.SourceMAC); diff --git a/source/Cosmos.System2/Network/IPv4/OutgoingBuffer.cs b/source/Cosmos.System2/Network/IPv4/OutgoingBuffer.cs index 890fb0706..a94840131 100644 --- a/source/Cosmos.System2/Network/IPv4/OutgoingBuffer.cs +++ b/source/Cosmos.System2/Network/IPv4/OutgoingBuffer.cs @@ -157,7 +157,7 @@ namespace Cosmos.System.Network.IPv4 if (second >= 4) { - NetworkStack.debugger.Send("No response in 4 secondes..."); + Global.mDebugger.Send("No response in 4 secondes..."); break; } diff --git a/source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs b/source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs index dfe7c1b73..166166358 100644 --- a/source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs +++ b/source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs @@ -33,7 +33,7 @@ namespace Cosmos.System.Network.IPv4.UDP { UDPPacket udp_packet = new UDPPacket(packetData); - NetworkStack.debugger.Send("[Received] UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString()); + Global.mDebugger.Send("[Received] UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString()); if (udp_packet.SourcePort == 67) { diff --git a/source/Cosmos.System2/Network/NetworkStack.cs b/source/Cosmos.System2/Network/NetworkStack.cs index 8e6ef296b..6eec1c1d8 100644 --- a/source/Cosmos.System2/Network/NetworkStack.cs +++ b/source/Cosmos.System2/Network/NetworkStack.cs @@ -5,6 +5,8 @@ * Port of Cosmos Code. */ +#define COSMOSDEBUG + using System; using System.Collections.Generic; using Cosmos.Debug.Kernel; @@ -43,17 +45,6 @@ namespace Cosmos.System.Network { AddressMap = new TempDictionary(); MACMap = new TempDictionary(); - - // VMT Scanner issue workaround - ARPPacket.VMTInclude(); - ARPPacket_Ethernet.VMTInclude(); - ARPReply_Ethernet.VMTInclude(); - ARPRequest_Ethernet.VMTInclude(); - ICMPPacket.VMTInclude(); - ICMPEchoReply.VMTInclude(); - ICMPEchoRequest.VMTInclude(); - UDPPacket.VMTInclude(); - //TCPPacket.VMTInclude(); } /// @@ -156,10 +147,10 @@ namespace Cosmos.System.Network /// Thrown on fatal error (contact support). internal static void HandlePacket(byte[] packetData) { - debugger.Send("Packet Received Length=" + packetData.Length.ToString()); + Global.mDebugger.Send("Packet Received Length=" + packetData.Length.ToString()); if (packetData == null) { - debugger.Send("Error packet data null"); + Global.mDebugger.Send("Error packet data null"); return; }