diff options
author | Christian Grothoff <grothoff@gnunet.org> | 2022-03-26 07:17:12 +0100 |
---|---|---|
committer | Christian Grothoff <grothoff@gnunet.org> | 2022-03-26 07:17:32 +0100 |
commit | e598ffe0a3a3d3db0df1fcc04f52bbefe93d3779 (patch) | |
tree | 5aa6266185d790886d46ec8d4a5ff7b38a33cac2 /src | |
parent | 104473d4e270ca5979c79d540c9144bb72121a36 (diff) |
add GNUNET_TIME_absolute_round_down() function
Diffstat (limited to 'src')
-rw-r--r-- | src/include/gnunet_time_lib.h | 12 | ||||
-rw-r--r-- | src/util/time.c | 14 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/include/gnunet_time_lib.h b/src/include/gnunet_time_lib.h index 55af62b72..d59eb984d 100644 --- a/src/include/gnunet_time_lib.h +++ b/src/include/gnunet_time_lib.h @@ -482,6 +482,18 @@ GNUNET_TIME_absolute_max (struct GNUNET_TIME_Absolute t1, /** + * Round down absolute time @a at to multiple of @a rt. + * + * @param at absolute time to round + * @param rt multiple to round to (non-zero) + * @return rounded time + */ +struct GNUNET_TIME_Absolute +GNUNET_TIME_absolute_round_down (struct GNUNET_TIME_Absolute at, + struct GNUNET_TIME_Relative rt); + + +/** * Return the maximum of two timestamps. * * @param t1 first timestamp diff --git a/src/util/time.c b/src/util/time.c index aeec2b3f9..cf072aebf 100644 --- a/src/util/time.c +++ b/src/util/time.c @@ -386,6 +386,20 @@ GNUNET_TIME_timestamp_min (struct GNUNET_TIME_Timestamp t1, } +struct GNUNET_TIME_Absolute +GNUNET_TIME_absolute_round_down (struct GNUNET_TIME_Absolute at, + struct GNUNET_TIME_Relative rt) +{ + struct GNUNET_TIME_Absolute ret; + + GNUNET_assert (! GNUNET_TIME_relative_is_zero (rt)); + ret.abs_value_us + = at.abs_value_us + - at.abs_value_us % rt.rel_value_us; + return ret; +} + + struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_remaining (struct GNUNET_TIME_Absolute future) { |