Sourcecode Fortschritt


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


  • Mod

    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)


  • Mod

    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


  • Mod

    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


  • Mod

    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


  • Mod

    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


  • Mod

    0.0.4.218 - Rev: 1604

    fat.c: Neue thematische Anordnung der Funktionen

    TODO: Namen der Funktionen überprüfen/harmonisieren


  • Mod

    0.0.4.219 - Rev: 1605

    fat.c: Funktionsnamen harmonisiert



  • Version 0.0.4.220:

    - Funktionen in fat.c noch etwas umsortiert, um Forward-Deklarationen zu reduzieren, Schnittstellenfunktionen analog fsmanager benannt (FAT_folderClose), FAT_createDIR in FAT_createFolder aufgehen lassen
    - Bounds-Checks in apic.c korrigiert
    - Ungetestete ramdisk_fwrite-Implementation ergänzt
    - refreshScreen nutzt vga_fillLine, anstatt Leerzeichen-Strings zu schreiben
    - Kleine Verbesserung am devmgr


Anmelden zum Antworten