From 1961b4b237083f4cfac9ca6b249c1d6cb665d149 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Tue, 14 Jul 2026 17:29:02 +0200 Subject: Initial (refactor) --- ui/daemon/links.json | 1 + ui/daemon/ui.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 ui/daemon/links.json create mode 100644 ui/daemon/ui.c (limited to 'ui/daemon') diff --git a/ui/daemon/links.json b/ui/daemon/links.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/ui/daemon/links.json @@ -0,0 +1 @@ +[] diff --git a/ui/daemon/ui.c b/ui/daemon/ui.c new file mode 100644 index 0000000..1cdc55b --- /dev/null +++ b/ui/daemon/ui.c @@ -0,0 +1,54 @@ +// file : ui/daemon/ui.c +// project : Salis-VM +// author : Paul Oliver + +#include +#include +#include +#include +#include + +#include "arch_spec.h" +#include "arch_inst.h" +#include "compress.h" +#include "logger.h" +#include "salis.h" +#include "timer.h" + +static bool g_running = true; + +static void quit(int signo) { + log_attention("Signal %d received, will stop simulator soon", signo); + salis_signal_stop_no_check(); + g_running = false; +} + +int main(void) { + log_info("Initializing daemon UI"); + log_info("Installing signal handlers"); + signal(SIGINT, quit); + signal(SIGTERM, quit); + +#if defined(COMMAND_NEW) + salis_init(); +#endif + +#if defined(COMMAND_LOAD) + salis_load(); +#endif + + struct TimerSPS timer_sps; + + while (g_running) { + timer_sps_reset(&timer_sps); + salis_start(); + sleep(1); + salis_signal_stop_no_check(); + salis_wait(); + timer_sps_measure(&timer_sps); + log_info("Running simulation @%#018lx steps/s", (uint64_t)timer_sps.steps_per_sec); + } + + salis_save_and_free(); + return 0; +} -- cgit v1.2.1