git-svn-id: https://spexeah.com:8443/svn/Asuro@722 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								bin/kernel.bin
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/kernel.bin
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/E1000.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/E1000.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/arp.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/arp.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/asuro.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/asuro.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/eth2.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/eth2.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/ipv4.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/ipv4.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/kernel.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/kernel.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/libpsystem.a
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/libpsystem.a
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/net.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/net.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/nettypes.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/nettypes.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/netutils.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/netutils.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/shell.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/shell.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/terminal.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/terminal.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -89,6 +89,11 @@ type
 | 
				
			|||||||
        Padding       : uint8;
 | 
					        Padding       : uint8;
 | 
				
			||||||
    end;
 | 
					    end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PIPv4AsWORDs = ^TIPv4AsWORDs;
 | 
				
			||||||
 | 
					    TIPv4AsWORDs = bitpacked record
 | 
				
			||||||
 | 
					        WORDS : Array[0..11] of uint16;
 | 
				
			||||||
 | 
					    end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TTCPFlags = record
 | 
					    TTCPFlags = record
 | 
				
			||||||
        RS : Boolean;
 | 
					        RS : Boolean;
 | 
				
			||||||
        DF : Boolean;
 | 
					        DF : Boolean;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ procedure writeToLogLn(str : pchar);
 | 
				
			|||||||
implementation
 | 
					implementation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uses
 | 
					uses
 | 
				
			||||||
    ipv4, arp, eth2;
 | 
					    ipv4, arp, eth2, e1000, terminal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var
 | 
					var
 | 
				
			||||||
    CBSend : TNetSendCallback = nil;
 | 
					    CBSend : TNetSendCallback = nil;
 | 
				
			||||||
@@ -108,12 +108,18 @@ begin
 | 
				
			|||||||
    pop_trace;
 | 
					    pop_trace;
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					procedure terminal_command_e1000status(Params : PParamList);
 | 
				
			||||||
 | 
					begin
 | 
				
			||||||
 | 
					    console.writeHexLnWND(e1000.readStatus, getTerminalHWND);
 | 
				
			||||||
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
procedure init;
 | 
					procedure init;
 | 
				
			||||||
begin
 | 
					begin
 | 
				
			||||||
    push_trace('net.init');
 | 
					    push_trace('net.init');
 | 
				
			||||||
    eth2.register;
 | 
					    eth2.register;
 | 
				
			||||||
    arp.register;
 | 
					    arp.register;
 | 
				
			||||||
    ipv4.register;
 | 
					    ipv4.register;
 | 
				
			||||||
 | 
					    terminal.registerCommand('e1000status', @terminal_command_e1000status, 'e1000 status');
 | 
				
			||||||
    pop_trace;
 | 
					    pop_trace;
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,6 +67,18 @@ begin
 | 
				
			|||||||
    end;
 | 
					    end;
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function findCacheRecord(ip : puint8) : PARPCacheRecord;
 | 
				
			||||||
 | 
					var
 | 
				
			||||||
 | 
					    CacheRecord : PARPCacheRecord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					begin
 | 
				
			||||||
 | 
					    CacheRecord:= findCacheRecordByIP(ip);
 | 
				
			||||||
 | 
					    if CacheRecord = nil then begin
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    end;
 | 
				
			||||||
 | 
					    findCacheRecord:= CacheRecord;
 | 
				
			||||||
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
 | 
					procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
 | 
				
			||||||
var
 | 
					var
 | 
				
			||||||
    buf : void;
 | 
					    buf : void;
 | 
				
			||||||
@@ -124,6 +136,24 @@ begin
 | 
				
			|||||||
     freePacketContext(context);
 | 
					     freePacketContext(context);
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					procedure sendRequestGateway(ip : puint8);
 | 
				
			||||||
 | 
					var
 | 
				
			||||||
 | 
					    context : PPacketContext;
 | 
				
			||||||
 | 
					    CacheRecord : PARPCacheRecord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					begin
 | 
				
			||||||
 | 
					     context:= newPacketContext;
 | 
				
			||||||
 | 
					     CacheRecord:= findCacheRecordByIP(@getIPv4Config^.Gateway[0]);
 | 
				
			||||||
 | 
					     if CacheRecord <> nil then begin
 | 
				
			||||||
 | 
					        CopyMAC(@CacheRecord^.MAC[0], @context^.MAC.Destination[0]);
 | 
				
			||||||
 | 
					        CopyIPv4(ip, @context^.IP.Destination[0]);
 | 
				
			||||||
 | 
					        CopyIPv4(@getIPv4Config^.Address[0], @context^.IP.Source[0]);
 | 
				
			||||||
 | 
					        CopyMAC(GetMAC, @context^.MAC.Source[0]);
 | 
				
			||||||
 | 
					        arp.send($1, $0800, $1, context);
 | 
				
			||||||
 | 
					     end;
 | 
				
			||||||
 | 
					     freePacketContext(context);
 | 
				
			||||||
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
procedure sendRequest(ip : puint8);
 | 
					procedure sendRequest(ip : puint8);
 | 
				
			||||||
var
 | 
					var
 | 
				
			||||||
    context : PPacketContext;
 | 
					    context : PPacketContext;
 | 
				
			||||||
@@ -135,10 +165,10 @@ begin
 | 
				
			|||||||
     CopyIPv4(@getIPv4Config^.Address[0], @context^.IP.Source[0]);
 | 
					     CopyIPv4(@getIPv4Config^.Address[0], @context^.IP.Source[0]);
 | 
				
			||||||
     CopyMAC(GetMAC, @context^.MAC.Source[0]);
 | 
					     CopyMAC(GetMAC, @context^.MAC.Source[0]);
 | 
				
			||||||
     CacheRecord:= findCacheRecordByIP(@getIPv4Config^.Gateway[0]);
 | 
					     CacheRecord:= findCacheRecordByIP(@getIPv4Config^.Gateway[0]);
 | 
				
			||||||
     if CacheRecord <> nil then CopyMAC(@CacheRecord^.MAC[0], @context^.MAC.Destination[0])
 | 
					     CopyMAC(@NULL_MAC[0], @context^.MAC.Destination[0]);
 | 
				
			||||||
     else CopyMAC(@NULL_MAC[0], @context^.MAC.Destination[0]);
 | 
					 | 
				
			||||||
     arp.send($1, $0800, $1, context);
 | 
					     arp.send($1, $0800, $1, context);
 | 
				
			||||||
     freePacketContext(context);
 | 
					     freePacketContext(context);
 | 
				
			||||||
 | 
					     sendRequestGateway(ip);
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
 | 
					procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -135,6 +135,7 @@ type
 | 
				
			|||||||
procedure init();
 | 
					procedure init();
 | 
				
			||||||
function getMACAddress : puint8;
 | 
					function getMACAddress : puint8;
 | 
				
			||||||
function sendPacket(p_data : void; p_len : uint16) : sint32;
 | 
					function sendPacket(p_data : void; p_len : uint16) : sint32;
 | 
				
			||||||
 | 
					function readStatus : uint32;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
implementation
 | 
					implementation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -186,6 +187,11 @@ begin
 | 
				
			|||||||
    pop_trace; 
 | 
					    pop_trace; 
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function readStatus : uint32;
 | 
				
			||||||
 | 
					begin
 | 
				
			||||||
 | 
					    readStatus:= readCommand(REG_STATUS);
 | 
				
			||||||
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function detectEEPROM() : boolean;
 | 
					function detectEEPROM() : boolean;
 | 
				
			||||||
var
 | 
					var
 | 
				
			||||||
    val, i : uint32;
 | 
					    val, i : uint32;
 | 
				
			||||||
@@ -305,7 +311,7 @@ begin
 | 
				
			|||||||
    writeCommand(REG_RXDESCLO, uint32(outptr));
 | 
					    writeCommand(REG_RXDESCLO, uint32(outptr));
 | 
				
			||||||
    writeCommand(REG_RXDESCHI, 0);
 | 
					    writeCommand(REG_RXDESCHI, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    writeCommand(REG_RXDESCLEN, E1000_NUM_RX_DESC * 16);
 | 
					    writeCommand(REG_RXDESCLEN, E1000_NUM_RX_DESC * sizeof(TE1000_rx_desc));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    writeCommand(REG_RXDESCHEAD, 0);
 | 
					    writeCommand(REG_RXDESCHEAD, 0);
 | 
				
			||||||
    writeCommand(REG_RXDESCTAIL, E1000_NUM_RX_DESC-1);
 | 
					    writeCommand(REG_RXDESCTAIL, E1000_NUM_RX_DESC-1);
 | 
				
			||||||
@@ -343,7 +349,7 @@ begin
 | 
				
			|||||||
    writeCommand(REG_TXDESCHI, 0);
 | 
					    writeCommand(REG_TXDESCHI, 0);
 | 
				
			||||||
    writeCommand(REG_TXDESCLO, uint32(outptr));
 | 
					    writeCommand(REG_TXDESCLO, uint32(outptr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    writeCommand(REG_TXDESCLEN, E1000_NUM_TX_DESC * 16);
 | 
					    writeCommand(REG_TXDESCLEN, E1000_NUM_TX_DESC * sizeof(TE1000_tx_desc));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    writeCommand( REG_TXDESCHEAD, 0 );
 | 
					    writeCommand( REG_TXDESCHEAD, 0 );
 | 
				
			||||||
    writeCommand( REG_TXDESCTAIL, 0 );
 | 
					    writeCommand( REG_TXDESCTAIL, 0 );
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,14 +9,14 @@ const
 | 
				
			|||||||
     VERSION_SUB   = '1';
 | 
					     VERSION_SUB   = '1';
 | 
				
			||||||
     REVISION      = '677';
 | 
					     REVISION      = '677';
 | 
				
			||||||
     RELEASE       = 'ia';
 | 
					     RELEASE       = 'ia';
 | 
				
			||||||
     LINE_COUNT    = 28049;
 | 
					     LINE_COUNT    = 28096;
 | 
				
			||||||
     FILE_COUNT    = 90;
 | 
					     FILE_COUNT    = 90;
 | 
				
			||||||
     DRIVER_COUNT  = 32;
 | 
					     DRIVER_COUNT  = 32;
 | 
				
			||||||
     FPC_VERSION   = '2.6.4';
 | 
					     FPC_VERSION   = '2.6.4';
 | 
				
			||||||
     NASM_VERSION  = '2.10.09';
 | 
					     NASM_VERSION  = '2.10.09';
 | 
				
			||||||
     MAKE_VERSION  = '3.81';
 | 
					     MAKE_VERSION  = '3.81';
 | 
				
			||||||
     COMPILE_DATE  = '11/05/18';
 | 
					     COMPILE_DATE  = '12/05/18';
 | 
				
			||||||
     COMPILE_TIME  = '10:15:31';
 | 
					     COMPILE_TIME  = '10:20:16';
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
implementation
 | 
					implementation
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user