diff --git a/bin/kernel.bin b/bin/kernel.bin index b85be84a..4549463c 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index b85be84a..4549463c 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/AHCI_OLD.ppu b/lib/AHCI_OLD.ppu new file mode 100644 index 00000000..5f9d50e5 Binary files /dev/null and b/lib/AHCI_OLD.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 40648db7..ddbf33c2 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu new file mode 100644 index 00000000..c51ba19f Binary files /dev/null and b/lib/IDE.ppu differ diff --git a/lib/isr76.ppu b/lib/isr76.ppu new file mode 100644 index 00000000..bb32fd07 Binary files /dev/null and b/lib/isr76.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 590834aa..36eaabc1 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 3684ca3e..1c4ffb2c 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 8ec607f6..2b656cd1 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu new file mode 100644 index 00000000..2cce6119 Binary files /dev/null and b/lib/storagemanagement.ppu differ diff --git a/src/driver/net/net.pas b/src/driver/net/net.pas new file mode 100644 index 00000000..931a7710 --- /dev/null +++ b/src/driver/net/net.pas @@ -0,0 +1,7 @@ +unit net; + +interface + +implementation + +end. \ No newline at end of file diff --git a/src/driver/network/E1000.pas b/src/driver/netdev/E1000.pas similarity index 97% rename from src/driver/network/E1000.pas rename to src/driver/netdev/E1000.pas index be35e278..1d0be6ec 100644 --- a/src/driver/network/E1000.pas +++ b/src/driver/netdev/E1000.pas @@ -393,31 +393,28 @@ var data : uint32; begin - console.outputln('E1000 Driver', 'Interrupt begin.'); - - CLI; - - 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); - + status:= readCommand($C0); + //console.output('E1000 Driver', 'Int Status: '); + //console.writehexln(status); if (status AND $04) > 0 then begin + //console.outputln('E1000 Driver', 'Link Status.'); startLink(); end else if (Status AND $10) > 0 then begin + //console.outputln('E1000 Driver', 'Good Threshold.'); //Good Threshold end else if (Status AND $80) > 0 then begin + //console.outputln('E1000 Driver', 'Packet Recv.'); 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($20, $20); - - console.outputln('E1000 Driver', 'Interrupt End.'); + + //CLI (Not 100% Nessisary as this is done on IRET) + CLI; end; 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); - //enableInturrupt(); + enableInturrupt(); rxinit(); txinit();