Sourcecode Fortschritt
-
0.0.4.191 - Rev: 1577
apic: Fehler behoben in IOAPIC redirection table
-
Version 0.0.4.192:
- IPC unterscheidet nun mehrere Integer-Typen: UINT, INT, QWORD und SIZE
- Überprüft Vorhandensein des IO-APIC vor Benutzung
- FAT12-Formatierung: Floppy-Abhängigkeit beseitigt
- Codevereinfachung in usb_msd.c
-
0.0.4.193 - Rev: 1579
usb_msd: repariert (Blöcke anstelle bytes)
-
0.0.4.194 - Rev: 1580
pci.h/c: PCIdev->irqPin zur info ergänzt
irq.h/interrupts.asm: pic_remap
Vor dem APIC start wird dieser remap ebenfalls durchgeführt.
Bochs arbeitet wieder vernünftig!
-
0.0.4.195 - Rev: 1581
apic: redir tabelle überarbeitet: Unterscheidung zwischen ISA IRQ 1-15 und PCI A,B,C,D und Sonstiges.
-
0.0.4.196 - Rev: 1582
pci: PIN #A bis #D erfasst bei PCI-to-(E)ISA bridge
apic: PIN #A bis #D in redir table nach 16-19
ckernel: umgebaut, damit pci_scan vor apic_install erfolgt (beide nach syscall_install)
-
0.0.4.197 - Rev: 1583
apic: kleine Änderungen
pic: disable etwas ergänzt
-
0.0.4.198 - Rev: 1584
pci/apic: PCI Lines E-H ergänzt für ICH7 etc. <== es gibt sie also doch!
test-PC (mit ICH7): ehci erkennt eingesteckten highspeed stick!
Vbox: mit ICH9 funktioniert es noch nicht (E-H zeigt 128 = default, wird also nicht verwendet)Datenblatt ICH7/9:
60h–63h PIRQ[n]_ROUT PIRQ[A–D] Routing Control 80808080h R/W
68h–6Bh PIRQ[n]_ROUT PIRQ[E–H] Routing Control 80808080h R/WR/W klingt besonders interessant.
Damit könnte man nämlich endlich mal Interrupts auseinander sortieren.
-
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)