Use Global debugger

For some unknown reasons, NetworkStack debugger is not working
This commit is contained in:
valentinbreiz 2021-01-20 10:41:34 +01:00
parent a5789fcd0e
commit c310d54535
12 changed files with 33 additions and 37 deletions

View file

@ -4,6 +4,7 @@ using System.Collections.Generic;
using Cosmos.Core; using Cosmos.Core;
using Cosmos.Debug.Kernel; using Cosmos.Debug.Kernel;
using Cosmos.HAL.BlockDevice; using Cosmos.HAL.BlockDevice;
using Cosmos.HAL.Network;
namespace Cosmos.HAL namespace Cosmos.HAL
{ {
@ -63,7 +64,8 @@ namespace Cosmos.HAL
AHCI.InitDriver(); AHCI.InitDriver();
//EHCI.InitDriver(); //EHCI.InitDriver();
Network.NetworkInit.Init(); mDebugger.Send("Network Devices Init");
NetworkInit.Init();
mDebugger.Send("Done initializing Cosmos.HAL.Global"); mDebugger.Send("Done initializing Cosmos.HAL.Global");

View file

@ -86,10 +86,13 @@ namespace Cosmos.System
mDebugger.Send("HW Init"); mDebugger.Send("HW Init");
HAL.Global.Init(textScreen); HAL.Global.Init(textScreen);
Network.NetworkStack.Init();
mDebugger.Send("Network Stack Init");
NumLock = false; NumLock = false;
CapsLock = false; CapsLock = false;
ScrollLock = false; ScrollLock = false;
Network.NetworkStack.Init();
} }
/// <summary> /// <summary>

View file

@ -58,7 +58,7 @@ namespace Cosmos.System.Network.ARP
ARPRequest_Ethernet arp_request = new ARPRequest_Ethernet(packetData); ARPRequest_Ethernet arp_request = new ARPRequest_Ethernet(packetData);
if (arp_request.SenderIP == null) 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); arp_request = new ARPRequest_Ethernet(packetData);
@ -66,7 +66,7 @@ namespace Cosmos.System.Network.ARP
if (NetworkStack.AddressMap.ContainsKey(arp_request.TargetIP.Hash) == true) 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]; NetworkDevice nic = NetworkStack.AddressMap[arp_request.TargetIP.Hash];
ARPReply_Ethernet reply = ARPReply_Ethernet reply =
@ -81,9 +81,9 @@ namespace Cosmos.System.Network.ARP
if ((arp_packet.HardwareType == 1) && (arp_packet.ProtocolType == 0x0800)) if ((arp_packet.HardwareType == 1) && (arp_packet.ProtocolType == 0x0800))
{ {
ARPReply_Ethernet arp_reply = new ARPReply_Ethernet(packetData); ARPReply_Ethernet arp_reply = new ARPReply_Ethernet(packetData);
NetworkStack.debugger.Send("Received ARP Reply"); Global.mDebugger.Send("Received ARP Reply");
NetworkStack.debugger.Send(arp_reply.ToString()); Global.mDebugger.Send(arp_reply.ToString());
NetworkStack.debugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString()); Global.mDebugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString());
ARPCache.Update(arp_reply.SenderIP, arp_reply.SenderMAC); ARPCache.Update(arp_reply.SenderIP, arp_reply.SenderMAC);
OutgoingBuffer.ARPCache_Update(arp_reply); OutgoingBuffer.ARPCache_Update(arp_reply);

View file

@ -62,7 +62,7 @@ namespace Cosmos.System.Network.ARP
mSenderIP = new Address(RawData, 28); mSenderIP = new Address(RawData, 28);
if (SenderIP == null) if (SenderIP == null)
{ {
NetworkStack.debugger.Send("But its already null again"); Global.mDebugger.Send("But its already null again");
} }
mTargetMAC = new MACAddress(RawData, 32); mTargetMAC = new MACAddress(RawData, 32);
mTargetIP = new Address(RawData, 38); mTargetIP = new Address(RawData, 38);
@ -219,7 +219,7 @@ namespace Cosmos.System.Network.ARP
{ {
if (SenderIP == null) if (SenderIP == null)
{ {
NetworkStack.debugger.Send("In ARPRequest_Ethernet, SenderIP is null!"); Global.mDebugger.Send("In ARPRequest_Ethernet, SenderIP is null!");
} }
} }

View file

@ -96,7 +96,7 @@ namespace Cosmos.System.Network.Config
{ {
var config = new IPConfig(ip, subnet, gw); var config = new IPConfig(ip, subnet, gw);
NetworkStack.ConfigIP(device, config); NetworkStack.ConfigIP(device, config);
NetworkStack.debugger.Send(config.ToString()); Global.mDebugger.Send("Config OK.");
return true; return true;
} }
return false; return false;

View file

@ -198,17 +198,17 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP
packet.Client.ToString() == null || packet.Client.ToString() == null ||
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 else
{ {
if (message) if (message)
{ {
NetworkStack.debugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration..."); Global.mDebugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration...");
NetworkStack.debugger.Send(" IP Address : " + packet.Client.ToString()); Global.mDebugger.Send(" IP Address : " + packet.Client.ToString());
NetworkStack.debugger.Send(" Subnet mask : " + packet.Subnet.ToString()); Global.mDebugger.Send(" Subnet mask : " + packet.Subnet.ToString());
NetworkStack.debugger.Send(" Gateway : " + packet.Server.ToString()); Global.mDebugger.Send(" Gateway : " + packet.Server.ToString());
NetworkStack.debugger.Send(" DNS server : " + packet.DNS.ToString()); Global.mDebugger.Send(" DNS server : " + packet.DNS.ToString());
} }
IPConfig.Enable(networkDevice, packet.Client, packet.Subnet, packet.Server); IPConfig.Enable(networkDevice, packet.Client, packet.Subnet, packet.Server);
@ -216,7 +216,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP
if (message) if (message)
{ {
NetworkStack.debugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied."); Global.mDebugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied.");
asked = false; asked = false;
} }
} }

View file

@ -329,7 +329,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DNS
if ((ushort)(DNSFlags & 0x0F) != (ushort)ReplyCode.OK) 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; return;
} }

View file

@ -37,7 +37,7 @@ namespace Cosmos.System.Network.IPv4
/// <exception cref="ArgumentException">Thrown if packetData is invalid.</exception> /// <exception cref="ArgumentException">Thrown if packetData is invalid.</exception>
internal static void ICMPHandler(byte[] packetData) internal static void ICMPHandler(byte[] packetData)
{ {
NetworkStack.debugger.Send("ICMP Handler called"); Global.mDebugger.Send("ICMP Handler called");
ICMPPacket icmp_packet = new ICMPPacket(packetData); ICMPPacket icmp_packet = new ICMPPacket(packetData);
switch (icmp_packet.ICMP_Type) switch (icmp_packet.ICMP_Type)
{ {
@ -47,12 +47,12 @@ namespace Cosmos.System.Network.IPv4
{ {
receiver.receiveData(icmp_packet); 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; break;
case 8: case 8:
ICMPEchoRequest request = new ICMPEchoRequest(packetData); ICMPEchoRequest request = new ICMPEchoRequest(packetData);
ICMPEchoReply reply = new ICMPEchoReply(request); 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); OutgoingBuffer.AddPacket(reply);
NetworkStack.Update(); NetworkStack.Update();
break; break;

View file

@ -38,7 +38,7 @@ namespace Cosmos.System.Network.IPv4
//Sys.Console.WriteLine(ip_packet.ToString()); //Sys.Console.WriteLine(ip_packet.ToString());
if (ip_packet.SourceIP == null) 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); ARPCache.Update(ip_packet.SourceIP, ip_packet.SourceMAC);

View file

@ -157,7 +157,7 @@ namespace Cosmos.System.Network.IPv4
if (second >= 4) if (second >= 4)
{ {
NetworkStack.debugger.Send("No response in 4 secondes..."); Global.mDebugger.Send("No response in 4 secondes...");
break; break;
} }

View file

@ -33,7 +33,7 @@ namespace Cosmos.System.Network.IPv4.UDP
{ {
UDPPacket udp_packet = new UDPPacket(packetData); 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) if (udp_packet.SourcePort == 67)
{ {

View file

@ -5,6 +5,8 @@
* Port of Cosmos Code. * Port of Cosmos Code.
*/ */
#define COSMOSDEBUG
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Cosmos.Debug.Kernel; using Cosmos.Debug.Kernel;
@ -43,17 +45,6 @@ namespace Cosmos.System.Network
{ {
AddressMap = new TempDictionary<uint, NetworkDevice>(); AddressMap = new TempDictionary<uint, NetworkDevice>();
MACMap = new TempDictionary<uint, NetworkDevice>(); MACMap = new TempDictionary<uint, NetworkDevice>();
// 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();
} }
/// <summary> /// <summary>
@ -156,10 +147,10 @@ namespace Cosmos.System.Network
/// <exception cref="OverflowException">Thrown on fatal error (contact support).</exception> /// <exception cref="OverflowException">Thrown on fatal error (contact support).</exception>
internal static void HandlePacket(byte[] packetData) 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) if (packetData == null)
{ {
debugger.Send("Error packet data null"); Global.mDebugger.Send("Error packet data null");
return; return;
} }