// file : ui/daemon/ui.c // project : Salis-VM // author : Paul Oliver #include #include #include #include #include #include "arch_spec.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 Timer timer; while (g_running) { timer_reset(&timer); salis_start(); sleep(1); salis_signal_stop_no_check(); salis_wait(); timer_measure(&timer); log_info("Running simulation @%#018lx steps/s", (uint64_t)timer.steps_per_sec); } salis_free(); return 0; }