git-svn-id: https://spexeah.com:8443/svn/Asuro@417 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
1 parent
9960a2235b
commit
df6faec9e0
12 files changed
+22
-18
No files matched your search
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
unit net;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
@@ -393,31 +393,28 @@ var
|
|||||||
data : uint32;
|
data : uint32;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
console.outputln('E1000 Driver', 'Interrupt begin.');
|
status:= readCommand($C0);
|
||||||
|
//console.output('E1000 Driver', 'Int Status: ');
|
||||||
CLI;
|
//console.writehexln(status);
|
||||||
|
|
||||||
requestConfig(bus, slot, func, 1);
|
|
||||||
data := inl($CFC);
|
|
||||||
data := data AND $FFF7FFFF;
|
|
||||||
writeConfig(bus, slot, func, 1, data);
|
|
||||||
status:= readCommand($0C);
|
|
||||||
|
|
||||||
console.output('E1000 Driver', 'Int Status: ');
|
|
||||||
console.writehexln(status);
|
|
||||||
|
|
||||||
if (status AND $04) > 0 then begin
|
if (status AND $04) > 0 then begin
|
||||||
|
//console.outputln('E1000 Driver', 'Link Status.');
|
||||||
startLink();
|
startLink();
|
||||||
end else if (Status AND $10) > 0 then begin
|
end else if (Status AND $10) > 0 then begin
|
||||||
|
//console.outputln('E1000 Driver', 'Good Threshold.');
|
||||||
//Good Threshold
|
//Good Threshold
|
||||||
end else if (Status AND $80) > 0 then begin
|
end else if (Status AND $80) > 0 then begin
|
||||||
|
//console.outputln('E1000 Driver', 'Packet Recv.');
|
||||||
handleReceive();
|
handleReceive();
|
||||||
end;
|
end;
|
||||||
|
//Clear the INT on the Device First by using write-1
|
||||||
|
writeCommand(REG_IMASK, 1);
|
||||||
|
|
||||||
|
//Clear INT on PIC and Cascade
|
||||||
outb($A0, $20);
|
outb($A0, $20);
|
||||||
outb($20, $20);
|
outb($20, $20);
|
||||||
|
|
||||||
console.outputln('E1000 Driver', 'Interrupt End.');
|
//CLI (Not 100% Nessisary as this is done on IRET)
|
||||||
|
CLI;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure console_command_mac(params : PParamList);
|
procedure console_command_mac(params : PParamList);
|
||||||
@@ -503,7 +500,7 @@ begin
|
|||||||
|
|
||||||
IDT.set_gate(32 + PCI_Info^.interrupt_line, uint32(@fire), $08, ISR_RING_0);
|
IDT.set_gate(32 + PCI_Info^.interrupt_line, uint32(@fire), $08, ISR_RING_0);
|
||||||
|
|
||||||
//enableInturrupt();
|
enableInturrupt();
|
||||||
rxinit();
|
rxinit();
|
||||||
txinit();
|
txinit();
|
||||||
|
|
||||||
Reference in new issue
Block a user