timer: Change timer util functions to 64-bit

Since mono_time is now 64-bit, the utility functions interfacing with
mono_time should also be 64-bit so precision isn't lost.

Fixed build errors related to printing the now int64_t result of
stopwatch_duration_[m|u]secs in various places.

BUG=b:237082996
BRANCH=All
TEST=Boot dewatt

Change-Id: I169588f5e14285557f2d03270f58f4c07c0154d5
Signed-off-by: Rob Barnes <robbarnes@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66170
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
Rob Barnes
2022-09-12 06:31:47 -06:00
committed by Felix Held
parent 51249d6bed
commit d522f38c7b
25 changed files with 48 additions and 48 deletions

View File

@@ -47,28 +47,28 @@ int timers_run(void);
/* Schedule a callback to be ran microseconds from time of invocation.
* 0 returned on success, < 0 on error. */
int timer_sched_callback(struct timeout_callback *tocb, unsigned long us);
int timer_sched_callback(struct timeout_callback *tocb, uint64_t us);
/* Set an absolute time to a number of microseconds. */
static inline void mono_time_set_usecs(struct mono_time *mt, long us)
static inline void mono_time_set_usecs(struct mono_time *mt, uint64_t us)
{
mt->microseconds = us;
}
/* Set an absolute time to a number of milliseconds. */
static inline void mono_time_set_msecs(struct mono_time *mt, long ms)
static inline void mono_time_set_msecs(struct mono_time *mt, uint64_t ms)
{
mt->microseconds = ms * USECS_PER_MSEC;
}
/* Add microseconds to an absolute time. */
static inline void mono_time_add_usecs(struct mono_time *mt, long us)
static inline void mono_time_add_usecs(struct mono_time *mt, int64_t us)
{
mt->microseconds += us;
}
/* Add milliseconds to an absolute time. */
static inline void mono_time_add_msecs(struct mono_time *mt, long ms)
static inline void mono_time_add_msecs(struct mono_time *mt, int64_t ms)
{
mono_time_add_usecs(mt, ms * USECS_PER_MSEC);
}
@@ -102,8 +102,8 @@ static inline int mono_time_before(const struct mono_time *t1,
}
/* Return time difference between t1 and t2. i.e. t2 - t1. */
static inline long mono_time_diff_microseconds(const struct mono_time *t1,
const struct mono_time *t2)
static inline int64_t mono_time_diff_microseconds(const struct mono_time *t1,
const struct mono_time *t2)
{
return t2->microseconds - t1->microseconds;
}
@@ -124,13 +124,13 @@ static inline void stopwatch_init(struct stopwatch *sw)
sw->current = sw->expires = sw->start;
}
static inline void stopwatch_init_usecs_expire(struct stopwatch *sw, long us)
static inline void stopwatch_init_usecs_expire(struct stopwatch *sw, uint64_t us)
{
stopwatch_init(sw);
mono_time_add_usecs(&sw->expires, us);
}
static inline void stopwatch_init_msecs_expire(struct stopwatch *sw, long ms)
static inline void stopwatch_init_msecs_expire(struct stopwatch *sw, uint64_t ms)
{
stopwatch_init_usecs_expire(sw, USECS_PER_MSEC * ms);
}
@@ -167,7 +167,7 @@ static inline void stopwatch_wait_until_expired(struct stopwatch *sw)
/*
* Return number of microseconds since starting the stopwatch.
*/
static inline long stopwatch_duration_usecs(struct stopwatch *sw)
static inline int64_t stopwatch_duration_usecs(struct stopwatch *sw)
{
/*
* If the stopwatch hasn't been ticked (current == start) tick
@@ -179,7 +179,7 @@ static inline long stopwatch_duration_usecs(struct stopwatch *sw)
return mono_time_diff_microseconds(&sw->start, &sw->current);
}
static inline long stopwatch_duration_msecs(struct stopwatch *sw)
static inline int64_t stopwatch_duration_msecs(struct stopwatch *sw)
{
return stopwatch_duration_usecs(sw) / USECS_PER_MSEC;
}
@@ -197,7 +197,7 @@ static inline long stopwatch_duration_msecs(struct stopwatch *sw)
*/
#define wait_us(timeout_us, condition) \
({ \
long __ret = 0; \
int64_t __ret = 0; \
struct stopwatch __sw; \
stopwatch_init_usecs_expire(&__sw, timeout_us); \
do { \