aboutsummaryrefslogtreecommitdiff
path: root/libk/stdlib/console.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libk/stdlib/console.cc')
-rw-r--r--libk/stdlib/console.cc12
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() {