From ed89f2f7f00db8c1fd3c3a5d5c138e4d773ede11 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 1 Nov 2017 12:44:27 -0500 Subject: [PATCH] Add millisecond accessor to Genode::Duration value object Add a 'trunc_to_plain_ms' method to Gende::Duration to make millisecond-accurate timing safer and more convenient. Ref #2335 --- repos/base/lib/symbols/ld | 1 + repos/os/include/os/duration.h | 1 + repos/os/src/lib/timeout/duration.cc | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/repos/base/lib/symbols/ld b/repos/base/lib/symbols/ld index 3fd058b519..f132f3e2b2 100644 --- a/repos/base/lib/symbols/ld +++ b/repos/base/lib/symbols/ld @@ -359,6 +359,7 @@ _ZNK6Genode5Child21notify_resource_availEv T _ZNK6Genode6Thread10stack_baseEv T _ZNK6Genode6Thread4nameEv T _ZNK6Genode6Thread9stack_topEv T +_ZNK6Genode8Duration17trunc_to_plain_msEv T _ZNK6Genode8Duration17trunc_to_plain_usEv T _ZNK6Genode8Duration9less_thanERS0_ T _ZNKSt13bad_exception4whatEv T diff --git a/repos/os/include/os/duration.h b/repos/os/include/os/duration.h index 9b50e31386..f9517a19dd 100644 --- a/repos/os/include/os/duration.h +++ b/repos/os/include/os/duration.h @@ -80,6 +80,7 @@ struct Genode::Duration explicit Duration(Microseconds us) { add(us); } Microseconds trunc_to_plain_us() const; + Milliseconds trunc_to_plain_ms() const; }; #endif /* _OS__DURATION_H_ */ diff --git a/repos/os/src/lib/timeout/duration.cc b/repos/os/src/lib/timeout/duration.cc index 8e642484e2..eb49173d94 100644 --- a/repos/os/src/lib/timeout/duration.cc +++ b/repos/os/src/lib/timeout/duration.cc @@ -82,3 +82,9 @@ Microseconds Duration::trunc_to_plain_us() const { return Microseconds(_microseconds + (_hours ? _hours * US_PER_HOUR : 0)); } + + +Milliseconds Duration::trunc_to_plain_ms() const +{ + return Milliseconds(trunc_to_plain_us().value / 1000); +}