diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-12 17:55:31 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-12 17:55:31 +0200 |
commit | 46a5f1ee4db70a037af5038deaa1d64ad0f7862c (patch) | |
tree | 0250b88f2eb69a7a0987a78d23a06e2125df74a2 /libk/stdlib | |
parent | Add comments to explain CGA ports better (diff) | |
download | kernel.cpp-46a5f1ee4db70a037af5038deaa1d64ad0f7862c.tar.xz |
Add serial0 console output
Diffstat (limited to 'libk/stdlib')
-rw-r--r-- | libk/stdlib/console.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libk/stdlib/console.cc b/libk/stdlib/console.cc index 308f055..a234e6b 100644 --- a/libk/stdlib/console.cc +++ b/libk/stdlib/console.cc @@ -1,15 +1,17 @@ #include "stdlib.h" -static Console* global_console = nullptr; +constexpr size_t max_consoles = 4; +static Console* global_console[max_consoles] = {nullptr}; +static size_t last_console = 0; void Console::set(Console* ptr) { - if (ptr != nullptr) { - global_console = ptr; + if (ptr != nullptr && last_console < max_consoles) { + global_console[last_console++] = ptr; } } -Console* Console::get() { - return global_console; +Iterator<Console*> Console::begin() { + return Iterator<Console*>(global_console, last_console); } void abort() { |