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
|
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;
|
||||||
|
|||||||
+95
-30
File diff suppressed because it is too large.
Load diff
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user