diff --git a/repos/os/include/rtc_session/client.h b/repos/os/include/rtc_session/client.h index 8a84ee812..8aaadf031 100644 --- a/repos/os/include/rtc_session/client.h +++ b/repos/os/include/rtc_session/client.h @@ -23,9 +23,18 @@ namespace Rtc { struct Session_client; } struct Rtc::Session_client : Genode::Rpc_client { + /** + * Constructor + * + * \param session session capability + */ Session_client(Genode::Capability cap) : Genode::Rpc_client(cap) {} + /*********************** + ** Session interface ** + ***********************/ + Timestamp current_time() override { return call(); } }; diff --git a/repos/os/include/rtc_session/rtc_session.h b/repos/os/include/rtc_session/rtc_session.h index cc05311f5..cc5000922 100644 --- a/repos/os/include/rtc_session/rtc_session.h +++ b/repos/os/include/rtc_session/rtc_session.h @@ -7,7 +7,7 @@ /* * Copyright (C) 2012 Intel Corporation - * Copyright (C) 2013-2017 Genode Labs GmbH + * Copyright (C) 2013-2019 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU Affero General Public License version 3. @@ -26,6 +26,9 @@ namespace Rtc { } +/* + * RTC value + */ struct Rtc::Timestamp { unsigned microsecond; @@ -53,8 +56,21 @@ struct Rtc::Session : Genode::Session enum { CAP_QUOTA = 2 }; + /*********************** + ** Session interface ** + ***********************/ + + /** + * Query current time + * + * \return RTC value as structed timestamp + */ virtual Timestamp current_time() = 0; + /******************* + ** RPC interface ** + *******************/ + GENODE_RPC(Rpc_current_time, Timestamp, current_time); GENODE_RPC_INTERFACE(Rpc_current_time); };