1. 14 Apr, 2017 3 commits
  2. 23 Jan, 2017 3 commits
  3. 21 Jan, 2017 6 commits
    • Kevin Wolf's avatar
      kernel2: lio_seek()-Restriktionen für Pipes lockern · 57f91328
      Kevin Wolf authored
      
      * kernel2: lio_seek() geht jetzt eingeschränkt auch für Pipes, es
        betrifft dann immer die Position im Lesestream. Erlaubt ist es, die
        aktuelle Position zu ermitteln und (relativ) vorwärts zu springen.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      57f91328
    • Kevin Wolf's avatar
      kernel2: LIO-Server-Operation pipe · a35acbe8
      Kevin Wolf authored
      
      + kernel2: Passende Kernelimplementierung für die .pipe-Operation, die
        im Userspace schon implementiert ist: Für eine als Pipe markierte
        erstellt der Kernel beim Öffnen eine Pipe und gibt das eine Ende an
        den .pipe-Callback des Service.
      
        Das ist nicht das Interface, das wir am Ende haben wollen, aber es ist
        vervollständigt, was schon da ist, und erstmal das zu mergen und dann
        davon ausgehend weiterzubasteln macht das Rebasen des alten
        LIOv2-Codes auf master einfacher.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      a35acbe8
    • Kevin Wolf's avatar
      shell: 'pipe' gefixt · fb197022
      Kevin Wolf authored
      
      ! shell: Seit fread() ordentlich blockiert wie es normalerweise sollte,
        funktioniert 'pipe' leider nicht mehr. Damit es weiterhin tut, muss
        man es auf passende LIO-Funktionen umbauen. Und irgendwann wäre auch
        mal was select()-artiges toll...
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      fb197022
    • Kevin Wolf's avatar
      libc: lio_compat_read_nonblock() · 551b7d1a
      Kevin Wolf authored
      
      + libc: Eine neue Read-Funktion, die nicht blockiert, und sowohl mit
        LIOv1- als auch LIOv2-Dateien tut.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      551b7d1a
    • Kevin Wolf's avatar
      libc: Fehlerbehandlung in fread() gefixt · f5b3518c
      Kevin Wolf authored
      
      ! libc: Wenn man Fehler als -errno zurückgibt, ist es nicht so clever,
        den Rückgabewert direkt in einen size_t zu speichern und dann nur auf
        ret < bytes zu testen.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      f5b3518c
    • Kevin Wolf's avatar
      vesa: Speicherleck gefixt · f5bac9ff
      Kevin Wolf authored
      
      ! vesa: vesamodeinfo kann auch auf dem Stack alloziert werden, dann
        sparen wir uns nicht nur das malloc(), sondern leaken das Ding auch
        nicht mehr.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      f5bac9ff
  4. 07 Jan, 2017 1 commit
    • Kevin Wolf's avatar
      image_hd_syslinux: Abhängigkeiten der Module mitkopieren · d2e29cc5
      Kevin Wolf authored
      
      ! image_hd_syslinux: Nach dem Vorbild des großen GRUB 2 hat sich
        syslinux entschieden, jetzt auch mal Modulabhängigkeiten zu haben, so
        dass einfach das kopieren, was man haben möchte, je nach Version nicht
        mehr unbedingt ausreicht.
      
        Also müssen wir jetzt auch hier die Module anschauen und rausfinden,
        welche Abhängigkeiten mitkopiert werden müssen.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      d2e29cc5
  5. 05 Jan, 2017 1 commit
  6. 04 Jan, 2017 13 commits
    • Kevin Wolf's avatar
      build/config: Größeres Festplattenimage · 130cc2af
      Kevin Wolf authored
      
      * build/config: Je mehr lbuilds dazukommen, um so öfter reichen die
        64 MB, die das Festplattenimage bisher hat, nicht mehr aus. Dieser
        Commit erhöht die Größe auf 256 MB, in der Hoffnung, dass das
        zumindest für eine Weile wieder ausreichend ist.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      130cc2af
    • Kevin Wolf's avatar
      libc: Vollständige libc.so bauen · fc61ff20
      Kevin Wolf authored
      
      * libc: Anstatt wie bisher zwei separate Bibliotheken src/lib/library.a
        und src/modules/lib/library.a zu bauen, wird die Bibliothek aus
        src/lib/ jetzt nicht mehr direkt gegen Programme gelinkt, sondern in
        die library.{a,so} integriert. Damit ist libc.so vollständig genug,
        dass auch lbuilds dagegen linken können.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      fc61ff20
    • Kevin Wolf's avatar
      libc: setjmp/longjmp in die libc aufnehmen · 1e93fb81
      Kevin Wolf authored
      
      ! libc: Anscheinend haben wir setjmp.o nie wirklich ins .a-Archiv
        aufgenommen. Vielleicht sollte man das mal tun.
      
      * libc: Und wenn wir schon dabei sind, sollten wir für die (in Assembler
        implementieren) Funktionen auch noch den Symboltyp auf Funktion setzen
        und eine Größe angeben, sonst mag ld nicht dynamisch dagegen linken.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      1e93fb81
    • Kevin Wolf's avatar
      libc: Mit -fPIC kompilieren · b2702903
      Kevin Wolf authored
      
      * libc: Wenn man mit -fPIC kompiliert, sind statt über 3300 Relokationen
        nur noch knapp 650 übrig. Und für echte Shared Libraries will man das
        früher oder später sowieso, weil damit dann alle Relokationen direkt
        nebeneinander liegen und man nicht überall COW machen muss.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      b2702903
    • Kevin Wolf's avatar
      Buildsystem: libc in src/modules/c dynamisch linken · 11973a7f
      Kevin Wolf authored
      
      + libc: Zusätzlich zur statischen Bibliothek auch eine dynamische bauen
      
      + modules/c/*: Die libc dynamisch linken
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      11973a7f
    • Kevin Wolf's avatar
      user-i386.ld: Linkerskript .so-tauglich machen · cc75edf9
      Kevin Wolf authored
      
      ! user-i386.ld: Wenn man __ctor/dtor_start/end__ innerhalb der Input
        Section Description anlegt statt außenrum, kommt ld nicht auf die
        Idee, irgendwelche Orphaned Sections dazwischenzupacken, die als
        Konstruktoren interpretiert nicht so richtig viel Sinn ergeben.
      
      + user-i386.ld: .dynbss explizit hinzugefügt (das hatte sich ohne den
        Fix zwischen die Konstruktoren gemogelt)
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      cc75edf9
    • Kevin Wolf's avatar
      libc: Einfacher dynmaischer Linker für den ELF-Loader · 8f16f03b
      Kevin Wolf authored
      
      + libc: Der ELF-32-Loader kann jetzt Shared Libraries nachladen, wenn
        die Binary einen DYNAMIC-Program-Header hat, der das verlangt. Dabei
        werden die nötigen Relokationen direkt ausgeführt (d.h. es gibt im
        Moment kein Lazy Binding, sondern alle Symbole, ob benötigt oder
        nicht, werden aufgelöst).
      
        Was hier implementiert ist, ist zwar dynamisches Linken, aber keine
        echten Shared Libraries, weil nämlich nichts gesharet wird. Das kann
        etwas Plattenplatz sparen, weil die Bibliotheken nur noch einmal
        vorhanden sein müssen statt überall statisch dazugelinkt, aber in
        Sachen RAM liegt weiter für jeden Prozess eine Kopie im Speicher.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      8f16f03b
    • Kevin Wolf's avatar
      init: loader_get_library() implementiert · 7ed8b570
      Kevin Wolf authored
      
      + libc: Ein neuer Callback loader_get_library() für den ELF-Loader, der
        ein ELF-Image einer Shared Library in den Speicher lädt
      
      + init: Implementierung von loader_get_library()
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      7ed8b570
    • Kevin Wolf's avatar
      libc: ELF-32-Loader ein bisschen umgebaut · e4938faa
      Kevin Wolf authored
      
      * libc: Als Vorbereitung für die Erweiterungen erst ein bisschen
        Refactoring für den bestehenden Loader machen. Der wird dabei so
        umgebaut, dass er davon ausgeht, dass es mal mehrere Images zu laden
        geben könnte.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      e4938faa
    • Kevin Wolf's avatar
      libc: SLIST-Makros aus sys/queue.h · 5cb966ba
      Kevin Wolf authored
      
      + libc: Ein Satz sys/queue.h-Makros für einfach verkettete Listen
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      5cb966ba
    • Kevin Wolf's avatar
      libc: fread mit blocksize/blockcount == 0 · 8e9dcc62
      Kevin Wolf authored
      
      ! libc: fread() mit blocksize == 0 sollte nicht durch Null teilen,
        sondern einfach direkt 0 zurückgeben. Das gleiche können wir auch mit
        blockcount == 0 tun, obwohl es da nicht so wichtig ist.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      8e9dcc62
    • Kevin Wolf's avatar
      libc: stdint.h-Konstanten gefixt · 513e0988
      Kevin Wolf authored
      
      ! libc: (U)INTn_MAX und SIZE_MAX müssen per #if vergleichbar sein, also
        dürfen da keine Casts oder ähnliches verwendet werden
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      513e0988
    • Kevin Wolf's avatar
      libc: Blockierendes read() mit LIOv1 · da801d18
      Kevin Wolf authored
      
      ! libc: read() darf nicht -EAGAIN zurückgeben, wenn es eigentlich
        blockierend sein sollte. Weil LIOv1 nicht wirklich blockieren kann,
        muss read() selber eine entsprechende Schleife haben.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      da801d18
  7. 02 Jan, 2017 2 commits
    • Kevin Wolf's avatar
      init: p/v um die Initialisierung · 34c9402e
      Kevin Wolf authored
      
      ! init: Es kann (anscheinend vor allem auf langsameren Maschinen wie
        qemu ohne KVM) passieren, dass die ersten paar Prozesse init so oft
        nach servmgr fragen, dass init nur noch damit beschäftigt ist, zu
        sagen, dass das noch nicht da ist, und nie dazu kommt, es wirklich zu
        laden. Das ist ein bisschen schade. Also lassen wir init erstmal alle
        Module laden, bevor es auf RPCs antwortet. (Ich weiß, die richtige
        Lösung wäre, das Polling loszuwerden, aber... nicht heute.)
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      34c9402e
    • Kevin Wolf's avatar
      libc: Ein paar memory-Clobbers mehr für Syscalls · 2e4c6693
      Kevin Wolf authored
      
      ! libc: Keine Ahnung, ob es überall nötig ist, aber ohne memory-Clobber
        gibt zumindest mem_dma_allocate() nicht unbedingt die physische
        Adresse zurück, die alloziert worden ist. Also lieber mal an ein paar
        Stellen mehr clobbern.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      2e4c6693
  8. 29 Dec, 2016 3 commits
  9. 28 Dec, 2016 7 commits
    • Kevin Wolf's avatar
      shell: Ein bisschen mehr Farbe · 2f09c95e
      Kevin Wolf authored
      
      * shell: Wenn stdin ein Terminal ist, aktiviert ls die Farben jetzt per
        Default. Außer dem Dateinamen wird jetzt auch der Typ eingefärbt.
        Abgesehen davon macht ps die Überschriften auf Terminals weiß und der
        Prompt ist jetzt ebenfalls weiß statt hellgrau.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      2f09c95e
    • Kevin Wolf's avatar
      libc: isatty() und file_is_terminal() · 20d46f0d
      Kevin Wolf authored
      
      + libc: Hilfsfunktionen, die für einen gegebenen FILE* oder
        POSIX-Dateideskriptor feststellen, ob es sich um ein Terminal handelt.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      20d46f0d
    • Kevin Wolf's avatar
      kernel2: LIO_IOCTL_ISATTY · 797e0544
      Kevin Wolf authored
      
      + kernel2: Unterstützung für LIO_IOCTL_ISATTY, was einfach bei Terminals
        Erfolg und bei allem anderen einen Fehler zurückgibt
      
      + vterm: Terminals als solche markieren, damit der Kernel das bei
        LIO_IOCTL_ISATTY berücksichtigen kann
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      797e0544
    • Kevin Wolf's avatar
      kernel2: Neuer Syscall lio_ioctl() · 9d840e8b
      Kevin Wolf authored
      
      + kernel2: Mit lio_ioctl() gibt es jetzt einen Syscall, um
        ressourcenspezifische Befehle auszuführen. Dieser Commit enthält nur
        die Infrastruktur und implementiert noch keinen solchen Befehl.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      9d840e8b
    • Kevin Wolf's avatar
      libc: dup() implementiert · d6e56ca0
      Kevin Wolf authored
      
      + libc: Anstatt einem Stub, der immer einen Fehler zurückgibt, wird
        jetzt für LIOv2-Dateien ein richtiges lio_dup() durchgeführt.
      
        Für LIOv1-Dateien dupliziert der POSIX-Layer einfach nur intern das
        Mapping von POSIX-Dateideskriptoren auf LIO-Streams. Das ist zwar
        kaputt, weil es auf dieser Ebene keine Referenzzähler gibt und ein
        close() alle Kopien zumacht, aber es scheint gut genug für git zu
        sein, das ein dup() für einen Socket macht.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      d6e56ca0
    • Kevin Wolf's avatar
      libc: pipe() implementiert · 312d3ec5
      Kevin Wolf authored
      
      + libc: Statt einem Stub, der immer einen Fehler zurückgibt, können wir
        jetzt in pipe() eine richtige Pipe erstellen
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      312d3ec5
    • Kevin Wolf's avatar
      libc: chdir() mit relativem Pfad gefixt · 2a2aac8a
      Kevin Wolf authored
      
      ! libc: chdir() sollte nicht nur den absoluten Pfad herausfinden, zu dem
        es wechseln soll, sondern dann auch diesen absoluten Pfad statt dem
        relativen nach $CWD schreiben.
      Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
      2a2aac8a
  10. 24 Dec, 2016 1 commit