Sourcecode Fortschritt
-
0.0.4.228 - Rev: 1614
fat.h/c: format für FAT16 eingefügt.
-
Version 0.0.4.228:
- Kommando "cd" implementiert
EDIT: Versionsnummer und Revisionsnummer um 1 zu niedrig!
-
0.0.4.230 - Rev: 1616
fat.c: format für FAT32 versuchsweise implementiert.
-
0.0.4.231 - Rev: 1617
fat.c: Erstellungsdatum ergänzt (bisher war dort nur die Zeit)
-
Version 0.0.4.232:
- Mutex um Disk-Cache gesetzt, Algorithmus vereinfacht
- Tasking-Korrekturen:
-- Stacksegment des kernelTask auf 0x10 gesetzt (testweise - sollte wohl für alle Ring-0-Tasks der Fall sein, also auch für den kernelTask)
-- Unbenutzte Member von task_t beseitigt
- Einige Fehlerabfragen verbessert:
-- Kein Absturz mehr von format bei unbekannter Partition
-- "1:0" (u.ä.) wird nicht mehr als valide Partitionsangabe akzeptiert
-- Kein Pufferüberlauf bei Partitionsnummern größer/gleich 4
- Vergessene Debugausgaben aus IPC entfernt
-
Version 0.0.4.233:
- CMOS-Funktionen, COM-Ports und paging_acquirePciMemory mit mutex geschützt
- Scheduler-Stabilisierungsversuch:
-- Potentielle Race-Conditions beseitigt
-- Benutzung von task_switching und cli/sti verbessert
- Ausgabe beim Boot etwas aufgeräumt
- Treiber für serielle Schnittstelle überarbeitet - atomare Funktionen extrahiert
- Präprozessorweichen in userlib_cpp korrigiert
-
0.0.4.234 - Rev: 1620
TEST: count int/sec (Anzeige in dritter Infozeile)
Idee: Mehr interne Infos über das OS zeigen, um Fehler besser aufzuspüren.
-
0.0.4.235 - Rev: 1621
interrupts/sec aufgeschlüsselt (alle, syscall, timer, switch)
*test-PC (3,4 GHz, dual core): ca. 608000 syscalls/sec (bei 250 Hz)
*
-
0.0.4.236 - Rev: 1622
Nun klappt das Kompilieren mit und ohne #define _SERIAL_LOG_
-
0.0.4.237 - Rev: 1623
Damit bochs wieder mitspielt:
- cli(); und sti(); in scheduler.c, unblockTask() entfernt (wegen #GP bei bochs) (Fund von MrX)
- mit GCC kompilieren (bei clang erfolgt keine Ausführung der Eingaben)
==> bochs läuft (ca. 200 syscalls/sec)
-
0.0.4.238 - Rev: 1624
ehci.c:
e->OpRegs->USBSTS = 0x00000000; is not useful!
Hence, we set it to: 0000 0000 0000 0000 0001 0000 0011 1111 = 0x0000103F
-
0.0.4.239 - Rev: 1625
Beseitigung überflüssiger Zeilen in fat.c (Fund von MrX mittels cppcheck)
-
Version 0.0.4.240:
- Unzählige Clang (-Weverything)- und Cppcheck-Warnungen behoben
- Kein "Press key for exit!" bei Kernel-Absturz
- Caches invalidiert beim Entfernen einer Disk
-
Version 0.0.4.241:
- Pufferüberlauf in FAT_FormatFileName behoben -> Clang-Hack in fsmanager.c entfernt
- Pufferüberläufe beim Zugriff auf partition_t::serial behoben, serial ist nun Integer, Partitionsname in separatem Feld partition_t::name gespeichert, disk_t::name entfernt
- irq_uninstallHandler implementiert
- Einstellungen in PCNet-Treiber überarbeitet (non-promiscuous-Modus, automatische Aushandlung Full-/Halbduplex, etc.)
- HACKs in video.h verbessert und in fat.c und pcnet.c behoben
-
Version 0.0.4.242:
- Treiber für RTL8168/8169 weiterentwickelt:
-> Initialisierung, Senden und Empfangen funktionieren weitgehend, aber keine Interrupts
-
Version 0.0.4.243:
- xHCI/EHCI: Speicherverwaltungsfehler behoben - allokiere soviel Speicher wie nötig anstatt immer eine page
- xHCI: Timeout in HC-Halted-Warteschleife eingebaut
- RTL8186/RTL8139: PCI_CMD_FASTBACKTOBACKENABLE aktiviert; RTL8168: PCI_CMD_MEMORYWRITEINVALIDATEENABLE aktiviert
- RTL8168: Aktiviere Transmitter, bevor TxConfig geschrieben wird
-
0.0.4.244 - Rev: 1630
e->bar oder x->bar = (uintptr_t)paging_acquirePciMemory(bar_phys, alignUp(bar_size, PAGESIZE)/PAGESIZE) + (bar_phys % PAGESIZE);
ehci läuft wieder, xhci bleibt bei der port-behandlung stecken (port check, detect device war alles auskommentiert?!).
-
0.0.4.245 - Rev: 1631
xhci.c: detect Device wieder aktiviert (war auskommentiert).
Test-PC: Stick wird erkannt und Programm kann gestartet werden!
bochs: läuft
vmware: 3 x timeout beim Erkennen (xhci) und freeze.
qemu 2.0 oder 2.1 stürzt wegen xhci ab.
-
Version 0.0.4.246:
- OHCI: Timeouts und Wartezeiten an Spezifikationswerte angepasst, keine bis zu 10 Sek. Wartezeit mehr
- OHCI: Zahlreiche Ausgaben hinter _OHCI_DIAGNOSIS_ versteckt
- PCI/xHCI: Auslesen der PCI-Capabilities nach pci.c verschoben
- Bugfix: Loslassen der STRG-Taste bei Strg+I wird nun erkannt
-
Version 0.0.4.247:
- switch_context erzwingt Task-Wechsel nur noch auf Wunsch - Einsparung von 250 Interrupts pro Sekunde im Idle-Zustand
- Netzwerktreiber deaktivierbar (_NETWORK_ENABLE_)
- FS_ERROR-enum zwischen Kernel und Usertools synchronisiert
- Paketlänge auf Pufferlänge begrenzt in allen Netzwerkkartentreibern
- Bugfix: RTL8168 Tx/RxBuffers korrekt verwendet
- Bugfix: RTL8168/RTL8139 nehmen nun erste statt letzte MMIO-BAR, falls mehrere verfügbar sind
- Bugfix: Entry size in memory map sollte 20 sein (führte zu ASSERTION beim Start mit GRUB)