git-svn-id: https://spexeah.com:8443/svn/Asuro@682 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron committed 2018-05-10 10:33:37 +00:00
1 parent b050773dda
commit b03ae36a9a
17 files changed
+126 -32

No files matched your search

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+23
View File
@@ -3,12 +3,14 @@ unit eth2;
interface interface
uses uses
lmemorymanager, util,
tracer, tracer,
nettypes, netutils, nettypes, netutils,
net, net,
netlog, netlog,
console; console;
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
procedure registerType(eType : uint16; RecvCB : TRecvCallback); procedure registerType(eType : uint16; RecvCB : TRecvCallback);
procedure register; procedure register;
@@ -27,6 +29,27 @@ begin
pop_trace; pop_trace;
end; end;
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
var
buffer : void;
hdr : TEthernetHeader;
begin
push_trace('eth2.send');
writeToLogLn(' L2: eth2.send');
if p_context <> nil then begin
buffer:= kalloc(p_len + sizeof(TEthernetHeader));
copyMAC(@p_context^.MAC.Source[0], @hdr.src[0]);
copyMAC(@p_context^.MAC.Destination[0], @hdr.dst[0]);
hdr.EthTypeHi:= 0;
hdr.EthTypeLo:= 1;
memcpy(uint32(@hdr), uint32(buffer), sizeof(TEthernetHeader));
memcpy(uint32(p_data), uint32(buffer+sizeof(TEthernetHeader)), p_len);
net.send(buffer, p_len + sizeof(TEthernetHeader));
kfree(buffer);
end;
end;
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext); procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
var var
Header : PEthernetHeader; Header : PEthernetHeader;
File diff suppressed because it is too large. Load diff
+6
View File
@@ -10,6 +10,7 @@ uses
eth2; eth2;
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback); procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
function getIPv4Config : PIPv4Configuration;
procedure register; procedure register;
implementation implementation
@@ -19,6 +20,11 @@ var
Protocols : Array[0..255] of TRecvCallback; Protocols : Array[0..255] of TRecvCallback;
Config : TIPv4Configuration; Config : TIPv4Configuration;
function getIPv4Config : PIPv4Configuration;
begin
getIPv4Config:= @Config;
end;
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext); procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
var var
Header : PIPV4Header; Header : PIPV4Header;
+2 -2
View File
@@ -9,14 +9,14 @@ const
VERSION_SUB = '1'; VERSION_SUB = '1';
REVISION = '677'; REVISION = '677';
RELEASE = 'ia'; RELEASE = 'ia';
LINE_COUNT = 27683; LINE_COUNT = 27777;
FILE_COUNT = 89; FILE_COUNT = 89;
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 = '10/05/18'; COMPILE_DATE = '10/05/18';
COMPILE_TIME = '10:07:09'; COMPILE_TIME = '11:33:11';
implementation implementation