diff --git a/repos/dde_linux/lib/import/import-lx_emul_common.inc b/repos/dde_linux/lib/import/import-lx_emul_common.inc index 170b2165af..1644cdd4b1 100644 --- a/repos/dde_linux/lib/import/import-lx_emul_common.inc +++ b/repos/dde_linux/lib/import/import-lx_emul_common.inc @@ -40,6 +40,7 @@ SRC_C += lx_emul/shadow/mm/slab_common.c SRC_C += lx_emul/shadow/mm/slub.c SRC_C += lx_emul/shadow/mm/vmstat.c SRC_C += lx_emul/start.c +SRC_C += lx_emul/time_initial.c SRC_C += lx_emul/virt_to_page.c SRC_CC += lx_kit/console.cc diff --git a/repos/dde_linux/src/include/lx_emul/time.h b/repos/dde_linux/src/include/lx_emul/time.h index dabd2e43df..2d4bbae4d2 100644 --- a/repos/dde_linux/src/include/lx_emul/time.h +++ b/repos/dde_linux/src/include/lx_emul/time.h @@ -30,6 +30,8 @@ void lx_emul_time_handle(void); void lx_emul_time_update_jiffies(void); +void lx_emul_time_initial(unsigned long long); + #ifdef __cplusplus } #endif diff --git a/repos/dde_linux/src/lib/lx_emul/time_initial.c b/repos/dde_linux/src/lib/lx_emul/time_initial.c new file mode 100644 index 0000000000..9f036c6bf0 --- /dev/null +++ b/repos/dde_linux/src/lib/lx_emul/time_initial.c @@ -0,0 +1,29 @@ +/* + * \brief Lx_emul initial time (persistent clock) + * \author Pirmin Duss + * \date 2023-10-02 + */ + +/* + * Copyright (C) 2023 Genode Labs GmbH + * Copyright (C) 2023 gapfruit AG + * + * This file is distributed under the terms of the GNU General Public License + * version 2. + */ + + +#include + +static unsigned long long genode_initial_ts_sec = 0; + +void lx_emul_time_initial(unsigned long long seconds) +{ + genode_initial_ts_sec = seconds; +} + +void read_persistent_clock64(struct timespec64 *ts) +{ + ts->tv_sec = genode_initial_ts_sec; + ts->tv_nsec = 0; +}