git-svn-id: https://spexeah.com:8443/svn/Asuro@682 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
1 parent
b050773dda
commit
b03ae36a9a
17 files changed
+126
-32
No files matched your search
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