From 893fc4bad983e26ce72b1d533ce76cab0166b284 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 1 Jun 2025 20:06:58 +0200 Subject: [PATCH] added kout to vault --- interrupt/epilogues.cc | 3 +-- interrupt/guard.cc | 3 ++- interrupt/guard.h | 3 ++- interrupt/handlers.cc | 1 - main.cc | 19 +------------------ user/app1/appl.cc | 7 ++++--- 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/interrupt/epilogues.cc b/interrupt/epilogues.cc index e0729dc..2dbcef5 100644 --- a/interrupt/epilogues.cc +++ b/interrupt/epilogues.cc @@ -9,9 +9,8 @@ extern TextStream kout; namespace Epilogues { void keyboard(Vault& g) { - DBG << "keyboard epi" << endl << flush; (void)g; - kout << kout_key.ascii() << endl << flush ; + g.kout << kout_key.ascii() << endl << flush ; } void timer(Vault& g) { (void)g; } diff --git a/interrupt/guard.cc b/interrupt/guard.cc index b6f7332..5d9333b 100644 --- a/interrupt/guard.cc +++ b/interrupt/guard.cc @@ -18,7 +18,8 @@ static BBuffer epilogue_queue[Core::MAX] = {}; constinit Ticketlock global_lock; constinit bool epi_flag[Core::MAX] = {false}; -Vault::Vault() {} +Vault::Vault() { +} Guarded::~Guarded() { Guard::leave(); } diff --git a/interrupt/guard.h b/interrupt/guard.h index fcaaa38..2cfa0c2 100644 --- a/interrupt/guard.h +++ b/interrupt/guard.h @@ -12,8 +12,9 @@ //! \brief The epilogue vault contains the protected data for the epilogue level struct Vault { Vault(); + TextStream kout = TextStream(0, 80, 0, 10, true); + // no copy - //TextStream kout; Vault(const Vault&) = delete; Vault& operator=(const Vault&) = delete; }; diff --git a/interrupt/handlers.cc b/interrupt/handlers.cc index b135bc1..68265e4 100644 --- a/interrupt/handlers.cc +++ b/interrupt/handlers.cc @@ -78,7 +78,6 @@ extern Ticketlock koutlock; extern Vault keyboard_vault; void handle_keyboard() { - DBG << "keyboard pro" << endl << flush; //Key key = Key(); if (PS2Controller::fetch(kout_key)) { Guard::relay(Epilogues::keyboard); diff --git a/main.cc b/main.cc index 14d80da..54c49b0 100644 --- a/main.cc +++ b/main.cc @@ -16,7 +16,7 @@ #include "sync/ticketlock.h" #include "interrupt/guard.h" -TextStream kout = TextStream(0, 80, 0, 10, true); +///TextStream kout = TextStream(0, 80, 0, 10, true); Ticketlock koutlock; //TextStream dout[8] = { @@ -71,23 +71,6 @@ extern "C" int main() { CGA::setCursor(0, 0); unsigned int numCPUs = Core::count(); - DBG_VERBOSE << "Number of CPUs: " << numCPUs << endl; - - kout << "Test -> " << endl; - kout << "bool: " << true << " -> true" << endl; - kout << "zero: " << 0 << " -> 0" << endl; - kout << "binary: " << bin << 42 << dec << " -> 0b101010" << endl; - kout << "octal: " << oct << 42 << dec << " -> 052" << endl; - kout << "hex: " << hex << 42 << dec << " -> 0x2a" << endl; - kout << "uint64_t max: " << ~((uint64_t)0) << " -> 18446744073709551615" << endl; - kout << "int64_t max: " << ~(1ll<<63) << " -> 9223372036854775807" << endl; - kout << "int64_t min: " << (1ll<<63) << " -> -9223372036854775808" << endl; - kout << "some int64_t: " << (-1234567890123456789) << " -> -1234567890123456789" << endl; - kout << "some int64_t: " << (1234567890123456789) << " -> 1234567890123456789" << endl; - kout << "pointer: " << reinterpret_cast(1994473406541717165ull) - << " -> 0x1badcafefee1dead" << endl; - kout << "smiley: " << static_cast(1) << endl; - /* Start application processors * To avoid unexpected behaviour, make sure that interrupts are not * enabled before the APs are booted. Otherwise it might interfere with the diff --git a/user/app1/appl.cc b/user/app1/appl.cc index 2799c67..1714e5e 100644 --- a/user/app1/appl.cc +++ b/user/app1/appl.cc @@ -37,15 +37,16 @@ void Application::action() { // NOLINT uint16_t cnt = 0; while (1) { //koutlock.lock(); + { Guarded g = Guard::enter(); //g.vault(); while(text[cnt++] != '\n'){ - kout << text[cnt-1]; + g.vault().kout << text[cnt-1]; } - kout << endl << flush; + g.vault().kout << endl << flush; //Guard::leave(); //koutlock.unlock(); - + } activeWaitDelay(1000000000); if(cnt >= sizeof(text)-1) cnt=0;