git-svn-id: https://spexeah.com:8443/svn/Asuro@682 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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;
|
||||
|
||||
+95
-30
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user