- 02 May, 2021 1 commit
-
-
+ Eigentlich ist das relativ einfach, weil strerror() schon snprintf() benutzt. Leider gibt es aber grundsätzlich zwei Versionen von strerror_r(), und die Manpage sagt im Prinzip, dass per default die XSI-Variante benutzt wird, aber bei _GNU_SOURCE dann die GNU-Variante. Das klingt, als sollten wir am besten beide anbieten, und das macht das ganze dann leider komplizierter, als es nötig sein sollte. Signed-off-by:
Hanna Reitz <hanna.reitz@mailbox.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 01 May, 2021 4 commits
-
-
- Die Funktion syscall_rpc ruft einen Syscall auf, welcher nicht mehr durch den Kernel unterstuetzt wird. Die Funktion kann daher entfernt werden. Signed-off-by:
Nico Mayer <mayerNico256@gmail.com> [ Kevin: Auch aus Header und Pascal-RTL entfernt ] Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
* Dieser Commit reimplementiert alle Syscall-Aufrufe mithilfe den neuen allgemeinen Syscall-Funktionen. Signed-off-by:
Nico Mayer <mayerNico256@gmail.com> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Für den Aufruf von Syscalls existiert bisher für jeden Syscall ein eigenes Stück Assemblercode. Die Assemblercode sind zueinander sehr aenlich und koennen gut über mehrere allgemeine Funktionen zusammengefasst werden. Dieser Commit implementiert hierzu acht neue Makros für den Aufruf von Syscalls mit biszu 6 Argumente. Signed-off-by:
Nico Mayer <mayerNico256@gmail.com> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Mit dem Programm Pong kann man jetzt wirklich Pong spielen! Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 26 Mar, 2021 2 commits
-
-
! Die bisherige Implementierung der Scanf-Funktion verwendet für das Einlesen der Zahlen ausschließlich die Funktion strtoull. Hierdurch verhält sich die Scanf-Funktion bei Überläufen bzw. Unterläufen bei verschiedenen Datentypen falsch. Mit diesem Commit wählt jetzt die Scanf-Funktion für den jeweiligen Datentyp die passende strtoxxx-Funktion aus. Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
* Bisher gibt es ein gewisses Durcheinander, was die strtoxxx-Funktionen anbelangt. Die Funktionen strtol und strtoll werden in der Datei strtol.c implementiert. Die Funktionen strtoul und strtoull werden wiederum direkt in string.c implementiert. Dieser Commit zentralisiert die Implementierung der verschiedenen strtoxxx-Funktionen. Alle strtoxxx-Funktionen jetzt werden durch die Datei strtol.c implementiert. Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 22 Feb, 2021 1 commit
-
-
* Aktuell gibt es lediglich einen Kernel-Syscall(KERN_SYSCALL_PM_SLEEP). Dieser Syscall wurde bisher manuell in die globale Syscall-Liste eingetragen. Um das Registrieren von Kernel-Syscalls zu vereinfachen, implementiert dieser Commit die Funktion syscall_register_full(). Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 04 Dec, 2020 3 commits
-
-
! Damit der Kernel fuer amd64 kompiliert werden kann, muss USER_MAX_STACK_SIZE fuer die amd64 architektur definiert werden. Signen-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
* Nachdem der alte kernel entfernt wurde, kann jetzt kernel2 in kernel umbenannt werden. Damit der Kernel weiterhin erfolgreich kompiliert werden kann, wurden außerdem die Buildskripte angepasst, Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- Der alte Kernel wird nicht mehr benötigt und kann geloescht werden. Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 03 Dec, 2020 1 commit
-
-
* In einige Headerfiles wurden globale variablen definiert. Dies ist eigentlich nicht zulaessig. Stattdessen sollten die globale Variablen in den Sourcefiles definiert werden. Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 28 Jan, 2020 4 commits
-
-
! Es kann passieren, dass Service A auf B wartet, der auf C wartet. Dann melden sich diese beide beim servmgr, der dann für B darauf warten soll, dass B gestartet ist, und für A, dass B fertig ist. Da týndur leider keine Popupthreads für IPC benutzt, existiert aber nur ein wartender Thread. Wenn A später als B angefragt hat, wird also A ewig auf B warten, da B nie weiterlaufen kann, auch wenn C fertig ist. Ein einfacher Workaround ist es, zu einem Zeitpunkt immer nur einem anfragenden Service/Prozess das Privileg zu gestatten, den servmgr selbst zu benutzen, um zu warten. Alle anderen bekommen ein EAGAIN, wenn der Zielservice noch nicht angemeldet ist, und müssen das Warten selber übernehmen (hier als wiederholte Anfragen bei servmgr implementiert). Signed-off-by:
Max Reitz <max@tyndur.org>
-
Kevin Wolf authored
! libc: Wenn wir bis ans Ende der Datei gelesen haben und os_eof deswegen gesetzt wurde, muss das Flag nach einem fseek() wieder gelöscht werden, weil wir jetzt möglicherweise nicht mehr am Ende der Datei sind und feof() 0 zurückgeben soll. Wenn wir es doch sind, wird das nächste fread() das Flag wieder setzen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: Bisher musste im fopen()-Modus das "+" direkt nach "r"/"w"/"a" kommen, damit es eine Wirkung hatte. Das ist falsch, denn dazwischen darf auch noch ein "b" kommen. Dieser Patch fixt den Parser, so dass er alle vorgesehenen Varianten akzeptiert, und die meisten nicht vorgesehenen mit EINVAL ablehnt. ("rb+b" usw. ist noch möglich, aber das sollte harmlos sein.) Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: Vor langer Zeit wurde einmal versehentlich in Commit f64c1b3c ein fopen-Modus 's' committet, der IO_OPEN_MODE_SYNC gesetzt hat (das aber wiederum ignoriert wird), am Tag danach aber in Commit 95134b9a wieder revertet. Davor und danach war es immer ein ungültiger Modus. Bevor fopen() jetzt anfangen kann, zu prüfen, ob es den übergebenen Modus überhaupt komplett versteht, muss zuerst das ungültige 's' in stdio_init() weg. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 26 Jan, 2020 4 commits
-
-
+ Wenn man schon locked_increment() hat, dann macht sich locked_decrement() auch ganz gut. Signed-off-by:
Max Reitz <max@tyndur.org>
-
- Remove týndur-specific fields from non-OS-dependant structures Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
* Die týndur-Implementierung von cdi/scsi war im Prinzip nur zur Benutzung mit dem CDI-ATAPI-Treiber geeignet. Dieser Patch macht die Implementierung allgemeiner und auch für andere (zukünftige) SCSI-CDI-Treiber einsatzfähig. Signed-off-by:
Max Reitz <max@tyndur.org> [kevin: Review-Kommentare umgesetzt] Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! image_cdrom_grub2: Auf einem EFI-Host baut grub2-mkrescue standardmäßig ein EFI-CD-Image. Das zeichnet sich in Hinsicht auf tyndur vor allem dadurch aus, dass es ein System/-Verzeichnis hat und tyndur ein system/-Verzeichnis. Auf reinem iso9660 wird daraus dann system0 und system1 und tyndur findet seine Dateien nicht mehr. Wenn wir grub2-mkrescue unser $LOST_GRUB2_MODULESDIR übergeben, dann ist das immer für i386-pc, hat diesen ganzen Kram nicht dabei und führt auch nicht zum Namenskonflikt. Damit bootet das CD-Image wieder. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 25 Jan, 2020 8 commits
-
-
* struct ata_device inherits cdi_storage_device or cdi_scsi_device. Since this driver does not know all of the fields contained therein for sure, the object has to be initialized to 0. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
! ATAPI commands need to be of size 12. However, general SCSI packets may have any length and thus the SCSI command to be sent has to be copied to a temporary buffer before it can be passed to the ATAPI device. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Currently, all devices provided on a bus have to be passed to the init_device() function of all drivers handling any device type on that bus. cdi_handle_bus_device() can be used by the driver to specify a pattern (struct cdi_bus_device_pattern) which allows the CDI implementation to speed up the selection of the correct driver for a new device. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ One SCSI device may provide multiple LUNs. Add a field for the LUN count to cdi_scsi_device. + Furthermore, add a field to select the LUN to cdi_scsi_packet. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
! BARs müssen nicht immer an 4k (oder was auch immer die Pageframegröße ist) ausgerichtet sein. Wenn sie das nicht sind, sollte die CDI-Bibliothek entsprechend handeln. Signed-off-by:
Max Reitz <max@tyndur.org> [kevin: Dasselbe auch in cdi_pci_free_memory() machen] Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
! gcc9 hat eine neue Warnung "address-of-packed-member" eingeführt, die zu einem Compilerfehler führt: socket.c:161:5: Fehler: die Umwandlung eines gepackten Zeigers auf »io_resource_t« {alias »struct <anonym>«} (Ausrichtung 1) in einen Zeiger auf »FILE« {alias »struct lostio_internal_file«} (Ausrichtung 4) führt möglicherweise zu einem nicht ausgerichteten Zeiger [-Werror=address-of-packed-member] 161 | setvbuf((FILE*)conn, NULL, _IONBF, 0); | ^~~~~~~ socket.c: In Funktion »accept«: socket.c:297:5: Fehler: die Umwandlung eines gepackten Zeigers auf »io_resource_t« {alias »struct <anonym>«} (Ausrichtung 1) in einen Zeiger auf »FILE« {alias »struct lostio_internal_file«} (Ausrichtung 4) führt möglicherweise zu einem nicht ausgerichteten Zeiger [-Werror=address-of-packed-member] 297 | setvbuf((FILE*)conn, NULL, _IONBF, 0); | ^~~~~~~ Dieser Patch deaktiviert die Warnung. Signed-off-by:
Nico Mayer <mayerNico@outlook.de> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ config.sh: OpenSUSE 15.1 benutzt nochmal einen anderen Pfad für GRUB 2 als die, die wir schon prüfen. Unterstützen wir den einfach auch. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Für Dateideskriptoren, die auf eine LIOv2-Ressource zeigen, ruft das neue fsync() jetzt einfach lio_sync() auf. Für alles andere gibt es EBADF zurück. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 22 Oct, 2018 2 commits
-
-
Kevin Wolf authored
! image_hd_grub2: Auf meinen Fedora-29-Host wird die core.img zu groß, dass sie nicht mehr in die ersten 63 Sektoren passt, und dann weigert sich GRUB, das zu installieren. Wenn man minicmd weglässt, passt es wieder. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! shell: Neuen Compiler zufriedenstellen: commands.c: In Funktion »shell_start_path_app«: commands.c:82:43: Fehler: Doppelter Deklarationsspezifizierer »const« [-Werror=duplicate-decl-specifier] pid = init_execv(argv[0], (const char const**) argv); Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 06 Jan, 2018 2 commits
-
-
Kevin Wolf authored
! vterm: Wenn man scrollt, dann soll der Cursor nicht physisch an derselben Stelle bleiben, sondern nur logisch, d.h. er wandert mit. Wenn man so weit scrollt, dass der Cursor nicht mehr auf dem Bildschirm ist, muss der Textmodus-Cursor komplett deaktiviert werden. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! vterm: vterm_output_t.buffer_last_line eingeführt, was die logisch letzte Zeile im Ringpuffer angibt. Bisher wurde stattdessen die aktuelle Cursorposition hergenommen, was aber keinen Sinn ergibt, wenn der Cursor auch mal aus der letzten Zeile zurückbewegt wird, wie das jedes TUI-Programm macht. Damit wird einerseits verhindert, dass man beim Hochscrollen im Editor ganz oben wieder den unteren Teil des Editors sieht, und andererseits weiß jetzt auch output_insert_lines(), wo es wirklich aufhören muss, Zeilen zu verschieben. Und als drittes wird nach einem Zeilenumbruch nicht grundsätzlich die Zeile gelöscht (das ist nämlich falsch, wenn man in eine Zeile logisch weiter unten zurückkehrt), sondern nur, wenn eine neue Zeile angehängt wird, also die logisch oberste Zeile aus dem Ringpuffer die neue logisch unterste wird. Mit diesen Fixes scheint jetzt auch less glücklich genug mit dem tyndur-Terminal zu sein. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 31 Dec, 2017 1 commit
-
-
Kevin Wolf authored
+ vterm: \033[#L implementiert, um eine neue leere Zeile in den Puffer einzufügen. Diese Funktion hätte less gern für das Hochscrollen, bevor es das Terminal ohne Warnung akzeptiert. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 30 Dec, 2017 1 commit
-
-
Kevin Wolf authored
! kernel2: Beim Aufräumen von Ressourcen muss man aufpassen, dass man nicht Ressourcen wegräumt, die noch von einem zusammengesetzten Stream benutzt werden. Um das zu fixen, gestaltet dieser Commit die Funktionsweise von Pipes grundsätzlich um: Statt in einem Stream für Lesen und Schreiben auf zwei verschiedene Ressourcen zu verweisen und zwei Dateizeiger zu verwalten, sind das jetzt zwei unabhängige Streams, die mittels lio_composite_stream() zusammengesetzt werden. Gleichzeitig hat ein lio_stream* jetzt entweder s->is_composite und verweist auf zwei andere Streams (statt vorher Ressourcen), die jetzt auch gerefcountet werden, oder er ist ein normaler Stream und verweist auf eine Ressource und hat einen Dateizeiger. Alle Funktionen, die auf die Ressource zu einem Stream zugreifen wollen, müssen jetzt für zusammengesetzte Streams erst einmal bis zum Wurzelstream durchgehen. Das fixt Rot beim Schließen der letzten Instanz des z...
-
- 14 Jun, 2017 1 commit
-
-
Kevin Wolf authored
! vterm: Wenn man die Größe einer LIO-Ressource nicht setzt, ist sie 0. Das ist eher ungeschickt, wenn jemand die Datei benutzen will (SDL versucht die Keymap auszulesen). Commit 88d24a90 hat bei der LIOv2-Konvertierung vergessen, die Größe zu setzen, das holen wir jetzt nach. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 27 May, 2017 1 commit
-
-
Kevin Wolf authored
! user-i386.ld: ELF schreibt vor, dass wenn es ein PT_PHDR-Segment gibt (was bei dynamisch gelinkten Programmen der Fall ist), die Header gleichzeitig auch in einem LOAD-Segment sein müssen. Älteren binutils-Versionen war das egal, aber ein neuerer ld erweitert einfach das LOAD-Segment nach vorne, um Platz für die Header zu schaffen. Wenn jetzt .text direkt bei 0x40000000 anfängt, dann landen die Header also in dem Speicherbereich, der gar nicht mehr dem Userspace gehört, und die letzte Pagetable geht kaputt. Um das zu fixen, wird .text jetzt genau soweit nach hinten verschoben, dass ab 0x40000000 die Header Platz haben. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 21 May, 2017 1 commit
-
-
Kevin Wolf authored
! kedit: Wenn beim Überschreiben am Zeilenende doch neue Zeichen eingefügt werden, dann sollte man erst den Puffer vergrößern und dann das Zeichen reinschreiben, andersrum geht schief. ! kedit: Wenn ein Zeichen noch weiter rechts als am Zeilenende eingefügt wird, dann muss davor mit Leerzeichen aufgefüllt werden. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 20 May, 2017 1 commit
-
-
Kevin Wolf authored
+ lpt_install.sh: Auch lpt cfg-adddoc und cfg-addinc umsetzen ! lpt_install.sh: Symlinkpfad für lpt cfg-addlib gefixt Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 07 May, 2017 1 commit
-
-
! Copy from buffer to cache block only after verifying whether the cache block is valid. Signed-off-by:
Gurgel100 <baesae@hotmail.ch> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 18 Apr, 2017 1 commit
-
-
Kevin Wolf authored
! libc: Wiederholte typedefs sind vor C11 ungültig und können Compilerfehler in lbuilds verursachen, also lieber vermeiden Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-