From 4ee20705733e74cf7332a448cf344c737b1f02fa Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Mon, 7 Aug 2023 17:53:44 +0200 Subject: [PATCH] Example code for persistent cell. --- .../app/persistent_cell/persistent_cell.cc | 36 +++++++++++++++++++ repos/mml/src/app/persistent_cell/target.mk | 3 ++ 2 files changed, 39 insertions(+) create mode 100644 repos/mml/src/app/persistent_cell/persistent_cell.cc create mode 100644 repos/mml/src/app/persistent_cell/target.mk diff --git a/repos/mml/src/app/persistent_cell/persistent_cell.cc b/repos/mml/src/app/persistent_cell/persistent_cell.cc new file mode 100644 index 0000000000..bc3db06588 --- /dev/null +++ b/repos/mml/src/app/persistent_cell/persistent_cell.cc @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +namespace Hoitaja_test { + struct Persistent_cell; +} + + +struct Hoitaja_test::Persistent_cell +{ + Genode::Env &_env; + Timer::Connection _timer{_env}; + + void _handle_timeout() + { + Genode::log("My affinity is ", _env.cpu().affinity_space()); + Genode::log("My PD cap is ", _env.pd_session_cap()); + _timer.trigger_once(5 * 1000 * 1000); + } + + Genode::Signal_handler _timeout_handler{ + _env.ep(), *this, &Persistent_cell::_handle_timeout}; + + Persistent_cell(Genode::Env &env) : _env(env) + { + Genode::log("My affinity is ", _env.cpu().affinity_space()); + Genode::log("My PD cap is ", _env.pd().address_space()); + _timer.sigh(_timeout_handler); + + _timer.trigger_once(5 * 1000 * 1000); + } +}; + +void Component::construct(Genode::Env &env) { static Hoitaja_test::Persistent_cell cell(env); } \ No newline at end of file diff --git a/repos/mml/src/app/persistent_cell/target.mk b/repos/mml/src/app/persistent_cell/target.mk new file mode 100644 index 0000000000..a8ef285365 --- /dev/null +++ b/repos/mml/src/app/persistent_cell/target.mk @@ -0,0 +1,3 @@ +TARGET = persistent_cell +SRC_CC = persistent_cell.cc +LIBS += base \ No newline at end of file