Sourcecode Fortschritt



  • Version 0.0.4.19:

    - ataPoll in readSectorPIOLBA28 aufgerufen, um Lesefehler zu beheben (JonasOSDever)
    - maxcls im FAT-Treiber nicht mehr von USB-Stick-Größe abhängig
    - ATA/HDD im Devicemanager nicht mehr als "Unknown" angezeigt
    - Logausgabe im HDD-Treiber Windows-konform umgebrochen (\r\n)
    - HDD-Testcode in ckernel.c entfernt, da obsolet



  • Version 0.0.4.20:

    - Unterstützung für C++-Userprogramme in user/other_userprogs
    - Neues Userprogramm: Editor (C++). Kann bislang nur Dateien anzeigen (absoluten Pfad als erstes Kommandozeilenargument übergeben)
    - -ffreestanding sollte nicht für Userprogramme verwendet werden (Ermöglicht C++-Userprogramme mit Clang)
    - fgetc() sollte EOF zurückgeben, falls das Dateiende erreicht wurde
    - PRINT+h (Screenshot auf Harddisk) dokumentiert
    - Hacks in der Umgebung von saveScreenshot etwas verringert



  • Version 0.0.4.21:

    - Performance-Verbesserung für Textmodus: VGA-Cursor deutlich seltener verschoben (Behebt Einfrieren in Hyper-V)
    - Hinweise zu volatile bei inline-Assembler aus dem GCC-Manual befolgt - entfernt, wo unnötig



  • Version 0.0.4.22:

    - ATA-Treiber läuft nun unter echter Hardware (VORSICHT bei HDDs, die wichtige Dateien enthalten!); Diverse Probleme behoben.
    - Bugfix in printf: Größenangaben > 4 GiB möglich
    - Fehlerausgaben im Maustreiber vereinheitlicht
    - test-results.txt aktualisiert
    - sysenter-Handler etwas optimiert
    - refreshUserScreen aktualisiert nur noch den User-Bereich (Scrollen kopiert weniger Zeichen im Textmodus)



  • Version 0.0.4.23:

    - Falsche Bootdevice-Angaben im Bootloader Stage 1 und 2 korrigiert (Erhöhte Erfolgswahrscheinlichkeit, wenn man von USB booten will)
    - timeout-Funktion von scheduler_blockCurrentTask korrigiert
    - Nullterminierung in vsnprintf/snprintf sichergestellt
    - C99-Funktionen in C-Standardbibliothek ergänzt
    - IRC-Client erweitert: Kommandos können gesendet werden (mit / beginnen, oder strg+c) (JonasOSDever)


  • Mod

    Die neue Revision baut bei mir nicht (letzten Zeilen der log-Datei):

    ..\user_tools\prettylib.a(userlib.o) : In function vsnprintf': userlib.c: (.text.vsnprintf+0x0): multiple definition ofvsnprintf'
    ..\stdlibc\stdlibc.a(stdio.o):stdio.c : (.text.vsnprintf+0x0): first defined here
    ..\user_tools\prettylib.a(userlib.o): In function snprintf': userlib.c: (.text.snprintf+0x0): multiple definition ofsnprintf'
    ..\stdlibc\stdlibc.a(stdio.o):stdio.c: (.text.snprintf+0x0): first defined here
    mingw32-make[1]: *** [browser.ELF] Error 1
    mingw32-make: *** [other_userprogs] Error 2



  • woran das liegt, kann ich gerade nicht erkennen.

    normalerweise gibt es solche fehlermeldungen, wenn man funktionen oder prototypen doppelt schreibt.

    was mir aber auffällt: in "userlib.h" fehlt der prototyp für vsnprintf und snprintf.



  • Ich habe wohl vergessen, die Implementation in der userlib zu löschen. Danke für den Hinweis.



  • Version 0.0.4.23 - Revision 1409:

    - Compilerfehler behoben - doppelte vsnprintf/snprintf-Implementation gelöscht



  • Version 0.0.4.24:

    - Schreibschutz im Paging aktiviert - Kernel-Code gegen Überschreiben geschützt
    - Bootloader optimiert: BL2 übernimmt Daten von BL1, anstatt sie selbst noch einmal zu speichern
    - Fehlendes Register-Clobbering ergänzt (führte zu Problemen, wenn mit O3 kompiliert wird)
    - Größere Objekte auf den Heap gelegt (Verkleinert den Kernel um mehrere KB)
    - Zugriff auf uninitialisierte Variable entfernt (cppcheck-Fund)
    - Einheitliche NULL-Definition



  • Mr X schrieb:

    - Einheitliche NULL-Definition

    🙂
    Anscheinend hat man meine Ratschläge doch nich ein bisschen ernst genommen.



  • Version 0.0.4.25:

    - Bessere Trennung von usb und usb-MSD
    - Neue Funktion strdup im Kernel - Ersetzt mehrere malloc+strcpy durch effizienteres memcpy
    - Const-correctness erhöht
    - Lizenztext in stdlibc eingebaut


  • Mod

    Version: 0.0.4.26 - rev. 1412:
    usb.c: Prüfen auf usb-Hub und erste Verhinderung sinnloser Maßnahmen am "Device".

    bool hub = IsUsbHub(device)
    

    Edit: Fehler wurde in rev. 1413 korrigiert.


  • Mod

    Version: 0.0.4.27 - rev. 1413:
    Wichtige Korrektur: reset von success ergänzt, damit die Idee von rev. 1412 wirklich funktioniert.

    Weitere erste Informationen zur korrekten Behandlung von Hubs:
    http://www.lowlevel.eu/wiki/USB#Enumeration_beim_Hochfahren
    http://www.beyondlogic.org/usbnutshell/usb4.shtml#Interrupt
    http://en.wikipedia.org/wiki/USB_hub#Protocol
    http://www.beyondlogic.org/usbnutshell/usb5.shtml
    http://www.usb.org/developers/defined_class



  • Version 0.0.4.28:

    - Speicherlecks in GUI und USB beseitigt
    - strcpy durch memcpy oder strdup ersetzt, wo möglich
    - USB/*HCI-Abstraktion weiter verbessert
    - deleteNode in IPC implementiert
    - Kleinere Verbesserungen im Netzwerkbereich


  • Mod

    Version: 0.0.4.29 - rev. 1415:
    Der Hub wird nun wie ein anderes usb-Gerät nummeriert.

    Hubs are also USB devices, and the host enumerates a newly attached hub in the same way as other devices. If the hub has devices attached, the host enumerates these after the hub informs the host of their presence.

    Quelle: http://www.lvr.com/usbcenum.htm

    Abfragen weiterer am Hub angeschlossener Geräte führen wir momentan noch nicht durch (interrupt Transfer notwendig).



  • Erstlings-Commit 🙂

    Version 0.0.4.30 - Rev: 1416

    • ATA-Treiber aufgeraeumt, LBA48-Unterstuetzung eingebaut (momentan noch deaktiviert, da nicht praktisch getestet), mehrere Sektoren unterstuetzt, LOG-Ausgaben durch _HDD_DIAGNOSTICS_ explizit de- und aktivierbar
    • HDDPIODISK in HDDDISK umbenannt; DMA soll spaeter transparent ansprechbar sein
    • HDD-Screenshot-Funktion in ckernel.c an eingeschalteten HDD-Support geknuepft
    • Um Benutzung von HDDDISK bei abgeschaltetem HDD-Support vorzubeugen Definition von HDDDISK an ein definiertes _ENABLE_HDD_ geknuepft (gibt Linker-Error bei versehentlicher Benutzung)
    • Helper repinsb/w/l und repoutsb/w/l util.h hinzugefuegt
    • Tab in usb.c korrigiert

  • Mod

    Version 0.0.4.31 - Rev: 1417
    Änderungen in usb.c bez. Hub.
    Vgl. usb2 spec, Table 11-14. Hub Responses to Standard Device Requests


  • Mod

    Version 0.0.4.32 - Rev: 1418
    usb_hub.h/c ergänzt und erste Versuche bez. HubDescriptor in usb.c



  • Version 0.0.4.33:

    - UHCI: Reagiere auf Geräte, die beim Boot schon angeschlossen sind
    - Floppy: flpydsk_checkInt vor Calibrate ausgeführt (behebt Timeout auf echter Hardware - Beschleunigung)
    - USB: Fehlerbehebung wieder eingefügt (wurde gelöscht)
    - Linux-bochsrc aktualisiert


Anmelden zum Antworten