aboutsummaryrefslogtreecommitdiff
path: root/libk/stdlib
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2021-02-12 17:55:31 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2021-02-12 17:55:31 +0200
commit46a5f1ee4db70a037af5038deaa1d64ad0f7862c (patch)
tree0250b88f2eb69a7a0987a78d23a06e2125df74a2 /libk/stdlib
parentAdd comments to explain CGA ports better (diff)
downloadkernel.cpp-46a5f1ee4db70a037af5038deaa1d64ad0f7862c.tar.xz
Add serial0 console output
Diffstat (limited to 'libk/stdlib')
-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() {