Sourcecode Fortschritt



  • 0.0.4.190 - Rev: 1576
    madt.c: strlen von uninitialisiertem Zeiger gefixt
    madt.h: Masks fuer Flags hinzugefuegt


  • Mod

    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


  • Mod

    0.0.4.193 - Rev: 1579

    usb_msd: repariert (Blöcke anstelle bytes)


  • Mod

    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!


  • Mod

    0.0.4.195 - Rev: 1581

    apic: redir tabelle überarbeitet: Unterscheidung zwischen ISA IRQ 1-15 und PCI A,B,C,D und Sonstiges.


  • Mod

    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)


  • Mod

    0.0.4.197 - Rev: 1583

    apic: kleine Änderungen
    pic: disable etwas ergänzt


  • Mod

    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/W

    R/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


  • Mod

    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.


  • Mod

    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


  • Mod

    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


  • Mod

    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:

    1. 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.


  • Mod

    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.`


  • Mod

    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.


  • Mod

    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.


  • Mod

    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 ...


Anmelden zum Antworten