1
0
mirror of https://github.com/taigrr/gopher-os synced 2025-01-18 04:43:13 -08:00

3 Commits

Author SHA1 Message Date
Achilleas Anagnostopoulos
f1cf7466c7 Revert "kfmt: fix bug where calls to copy() resulted in garbage being copied"
This reverts commit 8f04deadc1f1620dbd0aaea07f04a6c7f82f58c0.

The actual issue was triggered by a memory corruption due to the fact
that the exception handling gate code did not preserve XMM regs.
2018-04-27 19:26:08 +01:00
Achilleas Anagnostopoulos
8f04deadc1 kfmt: fix bug where calls to copy() resulted in garbage being copied
The bug manifested itself as a series of null bytes appearing to the
tty device when the ring buffer gets linked to it and its contents are
flushed to the tty.

Using gdb, I was able to track the problem into the ringbuf's Read
method and specifically to the call to copy(). I have replaced the call
with a for loop that the compiler would anyway optimize into a rep stosb
or equivalent asm instruction.
2018-03-28 07:25:52 +01:00
Achilleas Anagnostopoulos
f691d75b29 Implement ring-buffer for capturing early printf output
The ring-buffer implements both io.Reader and io.Writer and uses a fixed
size of 2048 bytes (set by the ringBufferSize constant). This provides
enough space to hold a standard 80x25 screen's output.
2017-07-07 21:37:00 +01:00