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

This commit is contained in:
kieron
2018-05-10 10:33:37 +00:00
parent b050773dda
commit b03ae36a9a
17 changed files with 126 additions and 32 deletions
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
uses
lmemorymanager, util,
tracer,
nettypes, netutils,
net,
netlog,
console;
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
procedure register;
@@ -27,6 +29,27 @@ begin
pop_trace;
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);
var
Header : PEthernetHeader;
File diff suppressed because it is too large Load Diff
+6
View File
@@ -10,6 +10,7 @@ uses
eth2;
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
function getIPv4Config : PIPv4Configuration;
procedure register;
implementation
@@ -19,6 +20,11 @@ var
Protocols : Array[0..255] of TRecvCallback;
Config : TIPv4Configuration;
function getIPv4Config : PIPv4Configuration;
begin
getIPv4Config:= @Config;
end;
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
var
Header : PIPV4Header;
+2 -2
View File
@@ -9,14 +9,14 @@ const
VERSION_SUB = '1';
REVISION = '677';
RELEASE = 'ia';
LINE_COUNT = 27683;
LINE_COUNT = 27777;
FILE_COUNT = 89;
DRIVER_COUNT = 32;
FPC_VERSION = '2.6.4';
NASM_VERSION = '2.10.09';
MAKE_VERSION = '3.81';
COMPILE_DATE = '10/05/18';
COMPILE_TIME = '10:07:09';
COMPILE_TIME = '11:33:11';
implementation