Sourcecode Fortschritt
-
Version 0.0.4.199:
- APIC-Code vereinfacht; invalide PCI-Interrupts werden disabled
- Einige überflüssige/doppelte PCI-Informationen wieder entfernt
- Geräteinstallation aus PCI-Scan getrennt; PCI-Scan vorgezogen, Installation nach hinten verschoben beim Boot
- cmos.c und mouse_wait() etwas übersichtlicher gemacht
- Fehlerkorrektur: Partition-Array für MSDs genullt
-
0.0.4.200 - Rev: 1586
apic: für xhci wird APICIRQ 0 verwendet (via MSI)
(auf der 2 war vorher störendes Dauerfeuer)Ansonsten nur kleine Veränderungen.
-
0.0.4.201 - Rev: 1587
paging: Vorbereitung für die Verwendung zweier Bittables, eine für verschiebbare und eine für speicher-fixierte physische Allokierungen.
-
Version 0.0.4.202:
- Paging weiter überarbeitet:
-- MAX_DWORDS auf das für die gegebene RAM-Ausstattung Nötige beschränkt (erspart bis zu 256 KiB Placement-Speicher, v.a. auf Systemen mit wenig Speicher)
-- paging_allocPhysMem, paging_allocPhysAddr angelegt,
-- paging_mapVirtToPhysAddr implementiert (von JonasOSDever)
-- Prototypen von paging_allocVirtMem und paging_freeVirtMem erzeugt
-- Dokumentation der (neuen) Funktionen verbessert
- APIC-Interrupt 2 abgeschaltet (Slave-PIC-Dauerfeuer)
- IO-Code von ckernel.c nach interrupts.asm verschoben
-
0.0.4.203 - Rev: 1589
shell und fat: rmdir/rd vorbereitet.
-
Version 0.0.4.204:
- Syscall rename angelegt
- remove im fsmanager beseitigt, im Userspace implementiert
-
0.0.4.205 - Rev: 1591
Experimenteller Zwischenstand bezüglich Löschen von Files.
Versuch:
VBox, usb-stick via ehci, Löschen von ttt.ELF via rm 3:/ttt.ELF (in shell)
(temporär debug-Ausgaben in den Funktionen)Probleme:
- stdio.c, z.30: return rename(path, "del"); Mit 0 klappte es nicht (work-around).
2a) Ende mit #PF eip 10c73b ==> FAT_remove
2b) FAT_remove gelangt nur bis fat.c, z.1313. Ausstieg bei: fileptr->handle.dirCluster = folder->handle.firstCluster;
Problem bestand darin, dass im fsmanager nicht der part->rootFolder, sondern einfach 0 zurück gegeben wurde.
- stdio.c, z.30: return rename(path, "del"); Mit 0 klappte es nicht (work-around).
-
0.0.4.206 - Rev: 1592
fsmanager.c und fat.c: File löschen funktioniert nun. Es passiert allerdings noch, dass das "File" von Windows im Directory evtl. angezeigt wird, auch wenn PrettyOS das eigentlich File nicht mehr findet.
`$> rm 3:/ttt.ELF <--
remove: 3:/ttt.ELF
syscalls.c: rename: 3:/ttt.ELF,del
fsmanager.c: rename: 3:/ttt.ELF,del
fsmanager.c: remove: 3:/ttt.ELF
FATremove E01ABF00
FAT_searchFile
FAT_fileErase: fileptr: E01ABE88 fHandle: 481 EraseClusters (y/n): 1
retVal of FAT_fileErase: 0
$> 3:/ttt.ELF <--
Looking for file...
FAT_searchFile
FAT_searchFile => File not found
$> rm 3:/ttt.ELF <--
remove: 3:/ttt.ELF
syscalls.c: rename: 3:/ttt.ELF,del
fsmanager.c: rename: 3:/ttt.ELF,del
fsmanager.c: remove: 3:/ttt.ELF
FATremove E01ABF00
FAT_searchFile
Take screenshot.`
-
0.0.4.207 - Rev: 1593
Vorübergehendes Debugging aus fat.c, fsmanager.c und syscalls.c entfernt.
Versuche zeigen, dass das Löschen nicht zuverlässig erfolgt.
-
0.0.4.208 - Rev: 1594
fat.c:
Anfangsbereich von FAT_fopen, FAT_remove, FAT_rename durch gemeinsame Funktion FAT_lookForFile ersetzt und damit vereinheitlicht.Das Löschen ist allerdings noch Glücksache. Fehler noch unbekannt.
-
0.0.4.209 - Rev: 1595
fsmanager.c: Nach flushen des cache klappt es nun sicher. ^^
shell.c: nun geht sowohl rm ... als auch del ...
-
0.0.4.210 - Rev: 1596
shell.c: rename eingefügt
fat.c: FAT_rename
(z.Z. noch mit temporären debugs)Umbenennen von Files auf Floppydisk (FAT12) und Sticks (FAT16 und FAT32) klappt! (VBox, device durchgereicht)
-
0.0.4.211 - Rev: 1597
rename file1 file2 mit verschiedenen Partitionen (move file1 file 2) klappt (VBox: move file von FDD auf usb-Stick: rename 1:/ttt.ELF 3:/ttt.ELF)
Ohne error = rename(oldpath, "__del__"); wäre es ein copy file.
TODO: Implementiere copy file1 file2 in shell.c
-
0.0.4.212 - Rev: 1598
"copy fil1 file2" auf Basis von rename (ohne Löschen) hinzugefügt.
-
Version 0.0.4.213:
- Generische Argumentezerlegung für Shell-Befehle genutzt; Fehlermeldung bei falscher Parameterzahl
- fmove (syscall) und rename (Standardbibliothek getrennt)
- Kopieren auf gleicher Partition funktioniert nun
- "__del__"-Hack beseitigt
-
0.0.4.214 - Rev: 1600
fat.c: deleteFolder
-
Version 0.0.4.215:
- FAT-Treiber überarbeitet:
-- Diverse Funktionen aufgeräumt, umbenannt und von FAT_file_t gelöst
-- deleteFolder nutzt vorhandere Funktionen zum Suchen und Löschen
- Shell verbessert:
-- Memory-Leak beseitigt (Bei Pfadvervollständigung)
-- Hängt automatisch 1:| vor Pfad, wenn Partitionsangabe fehlt
-- rm/del funktioniert nun wieder (erwartete falsche Parameterzahl)
- Kaputte Einträge aus PCI-Vendorliste entfernt
-
0.0.4.216 - Rev: 1602
fat: zeitstempel eingebaut
-
Version 0.0.4.217:
- Massive Boot-Beschleunigung:
-- Timeout im Maustreiber reduziert (aber: Noch immer timeout, jetzt mit Meldung)
-- Anscheinend falsches waitForIRQ() im Floppytreiber beseitigt: Kein Interrupt nach Setzen des CCR (laut osdev.org und manchen Treiber-Implementationen. Spezifikation und andere Quellen widersprechen sich)
-- rekursiver PCI-Scan (Scannt nur vorhandene Busse; PCI-to-PCI-Bridges geben Vorhandensein anderer Busse als #0 an)
- Interrupts früher aktiviert (erforderte Fehlerkorrekturen bei Benutzung von task_switching an diversen Stellen)
- PIT-Timer (i8254) nur aktiviert, wenn APIC nicht vorhanden (sonst wird der APIC-Timer genutzt)
- FAT-Treiber weiter aufgeräumt (diverse fHandle-Variablen durch handle.entry ersetzt; unnützes cacheDirEntry() in openFolder beseitigt; FAT_renameHandle neu implementiert)
- Bugfix: #PF in flpydsk_read_directory behoben
-
0.0.4.218 - Rev: 1604
fat.c: Neue thematische Anordnung der Funktionen
TODO: Namen der Funktionen überprüfen/harmonisieren