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

2 Commits

Author SHA1 Message Date
Achilleas Anagnostopoulos
6d3c463ee8 Prevent early_fmt code from triggering Go's allocator
When converting strings to []byte so that they can be used with the tty
io.Writer interface Go calls a runtime method called
"stringtoslicebyte". If the input length exceeds a particular size then
this method will allocate a new []byte and copy the data into it. This
obviously causes our kernel to crash.

To fix this, all early_fmt functions have been changed to iterate any
string arguments and output them to the active TTY one byte at a time.
2017-05-12 08:00:18 +01:00
Achilleas Anagnostopoulos
b6ad5c933d Implement early printf functionality
The kfmt/early package provides a minimal printf implementation that
does not use memory allocations (everything is allocated on the stack).
This implementation can be used to emit debug messages before the memory
manager is initialized.
2017-04-05 08:35:32 +01:00