Skip to content

Commit

Permalink
include/sys_clock.h: simplify _NEED_PRECISE_TICK_MS_CONVERSION
Browse files Browse the repository at this point in the history
This is just hygiene. Some preprocessor logic is optimized, eliminating
a temporary (_NON_OPTIMIZED_TICKS_PER_SEC) in the process.

Signed-off-by: Charles E. Youse <[email protected]>
  • Loading branch information
Charles E. Youse authored and nashif committed May 8, 2019

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 3667d0b commit e1cb4ca
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions include/sys_clock.h
Original file line number Diff line number Diff line change
@@ -79,27 +79,20 @@ static inline int sys_clock_hw_cycles_per_tick(void)

/* kernel clocks */

#ifdef CONFIG_SYS_CLOCK_EXISTS

/*
* If timer frequency is known at compile time, a simple (32-bit)
* tick <-> ms conversion could be used for some combinations of
* hardware timer frequency and tick rate. Otherwise precise
* (64-bit) calculations are used.
* We default to using 64-bit intermediates in timescale conversions,
* but if the HW timer cycles/sec, ticks/sec and ms/sec are all known
* to be nicely related, then we can cheat with 32 bits instead.
*/

#if !defined(CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME)
#if (CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC % CONFIG_SYS_CLOCK_TICKS_PER_SEC) != 0
#define _NEED_PRECISE_TICK_MS_CONVERSION
#elif (MSEC_PER_SEC % CONFIG_SYS_CLOCK_TICKS_PER_SEC) != 0
#define _NON_OPTIMIZED_TICKS_PER_SEC
#endif
#endif
#ifdef CONFIG_SYS_CLOCK_EXISTS

#if defined(CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME) || \
defined(_NON_OPTIMIZED_TICKS_PER_SEC)
#define _NEED_PRECISE_TICK_MS_CONVERSION
#if defined(CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME) || \
(MSEC_PER_SEC % CONFIG_SYS_CLOCK_TICKS_PER_SEC) || \
(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC % CONFIG_SYS_CLOCK_TICKS_PER_SEC)
#define _NEED_PRECISE_TICK_MS_CONVERSION
#endif

#endif

static ALWAYS_INLINE s32_t z_ms_to_ticks(s32_t ms)

0 comments on commit e1cb4ca

Please sign in to comment.