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

This commit is contained in:
kieron committed 2018-04-09 14:35:35 +00:00
1 parent 9960a2235b
commit df6faec9e0
12 files changed
+22 -18

No files matched your search

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.
Binary file not shown.
+7
View File
@@ -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();