From 23b527ba85fd1d3ec736de513b4558ea00add068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 11 Jul 2022 14:40:04 +0200 Subject: [PATCH] hello_tutorial: Added RPC call to query session private _id. --- repos/hello_tutorial/include/hello_session/client.h | 5 +++++ repos/hello_tutorial/include/hello_session/hello_session.h | 5 +++-- repos/hello_tutorial/src/hello/client/main.cc | 4 +++- repos/hello_tutorial/src/hello/server/main.cc | 4 ++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/repos/hello_tutorial/include/hello_session/client.h b/repos/hello_tutorial/include/hello_session/client.h index 3ce4abade4..83b5f2370b 100644 --- a/repos/hello_tutorial/include/hello_session/client.h +++ b/repos/hello_tutorial/include/hello_session/client.h @@ -37,6 +37,11 @@ struct Hello::Session_client : Genode::Rpc_client { return call(a, b); } + + unsigned short id() override + { + return call(); + } }; #endif /* _INCLUDE__HELLO_SESSION_H__CLIENT_H_ */ diff --git a/repos/hello_tutorial/include/hello_session/hello_session.h b/repos/hello_tutorial/include/hello_session/hello_session.h index 8ff65e2ea8..1c24b0cd57 100644 --- a/repos/hello_tutorial/include/hello_session/hello_session.h +++ b/repos/hello_tutorial/include/hello_session/hello_session.h @@ -28,7 +28,7 @@ struct Hello::Session : Genode::Session virtual void say_hello() = 0; virtual int add(int a, int b) = 0; - + virtual unsigned short id() = 0; /******************* ** RPC interface ** @@ -36,8 +36,9 @@ struct Hello::Session : Genode::Session GENODE_RPC(Rpc_say_hello, void, say_hello); GENODE_RPC(Rpc_add, int, add, int, int); + GENODE_RPC(Rpc_get_id, unsigned short, id); - GENODE_RPC_INTERFACE(Rpc_say_hello, Rpc_add); + GENODE_RPC_INTERFACE(Rpc_say_hello, Rpc_add, Rpc_get_id); }; #endif /* _INCLUDE__HELLO_SESSION__HELLO_SESSION_H_ */ diff --git a/repos/hello_tutorial/src/hello/client/main.cc b/repos/hello_tutorial/src/hello/client/main.cc index b494c8a990..ee89cf4ca6 100644 --- a/repos/hello_tutorial/src/hello/client/main.cc +++ b/repos/hello_tutorial/src/hello/client/main.cc @@ -53,7 +53,9 @@ struct HelloClient { while (true) { int const sum = _hello.add(_a, _b); - Genode::log("added ", _a, " + ", _b, " = ", sum); + unsigned short id = _hello.id(); + + Genode::log(id, ": added ", _a, " + ", _b, " = ", sum); _timer.msleep(_a*1000); _b += 2; } diff --git a/repos/hello_tutorial/src/hello/server/main.cc b/repos/hello_tutorial/src/hello/server/main.cc index 7add13c82d..661ecc02cd 100644 --- a/repos/hello_tutorial/src/hello/server/main.cc +++ b/repos/hello_tutorial/src/hello/server/main.cc @@ -37,6 +37,10 @@ struct Hello::Session_component : Genode::Rpc_object int add(int a, int b) override { return a + b; } + + unsigned short id() override { + return _id; + } };