xtimer: Introduce xtimer_diff, xtimer_less for comparing timestamps
This commit is contained in:
parent
b5554dd7e0
commit
a23bfc64ff
@ -375,6 +375,56 @@ static inline xtimer_ticks32_t xtimer_ticks(uint32_t ticks);
|
||||
*/
|
||||
static inline xtimer_ticks64_t xtimer_ticks64(uint64_t ticks);
|
||||
|
||||
/**
|
||||
* @brief Compute difference between two xtimer time stamps
|
||||
*
|
||||
* @param[in] a left operand
|
||||
* @param[in] b right operand
|
||||
*
|
||||
* @return @p a - @p b
|
||||
*/
|
||||
static inline xtimer_ticks32_t xtimer_diff(xtimer_ticks32_t a, xtimer_ticks32_t b);
|
||||
|
||||
/**
|
||||
* @brief Compute difference between two xtimer time stamps, 64 bit version
|
||||
*
|
||||
* @param[in] a left operand
|
||||
* @param[in] b right operand
|
||||
*
|
||||
* @return @p a - @p b
|
||||
*/
|
||||
static inline xtimer_ticks64_t xtimer_diff64(xtimer_ticks64_t a, xtimer_ticks64_t b);
|
||||
|
||||
/**
|
||||
* @brief Compute 32 bit difference between two 64 bit xtimer time stamps
|
||||
*
|
||||
* @param[in] a left operand
|
||||
* @param[in] b right operand
|
||||
*
|
||||
* @return @p a - @p b cast truncated to 32 bit
|
||||
*/
|
||||
static inline xtimer_ticks32_t xtimer_diff32_64(xtimer_ticks64_t a, xtimer_ticks64_t b);
|
||||
|
||||
/**
|
||||
* @brief Compare two xtimer time stamps
|
||||
*
|
||||
* @param[in] a left operand
|
||||
* @param[in] b right operand
|
||||
*
|
||||
* @return @p a < @p b
|
||||
*/
|
||||
static inline bool xtimer_less(xtimer_ticks32_t a, xtimer_ticks32_t b);
|
||||
|
||||
/**
|
||||
* @brief Compare two xtimer time stamps, 64 bit version
|
||||
*
|
||||
* @param[in] a left operand
|
||||
* @param[in] b right operand
|
||||
*
|
||||
* @return @p a < @p b
|
||||
*/
|
||||
static inline bool xtimer_less64(xtimer_ticks64_t a, xtimer_ticks64_t b);
|
||||
|
||||
/**
|
||||
* @brief xtimer backoff value
|
||||
*
|
||||
|
||||
@ -258,6 +258,35 @@ static inline xtimer_ticks64_t xtimer_ticks64(uint64_t ticks)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline xtimer_ticks32_t xtimer_diff(xtimer_ticks32_t a, xtimer_ticks32_t b)
|
||||
{
|
||||
xtimer_ticks32_t ret = { .ticks32 = (a.ticks32 - b.ticks32) };
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline xtimer_ticks64_t xtimer_diff64(xtimer_ticks64_t a, xtimer_ticks64_t b)
|
||||
{
|
||||
xtimer_ticks64_t ret = { .ticks64 = (a.ticks64 - b.ticks64) };
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline xtimer_ticks32_t xtimer_diff32_64(xtimer_ticks64_t a, xtimer_ticks64_t b)
|
||||
{
|
||||
uint64_t diff = (a.ticks64 - b.ticks64);
|
||||
xtimer_ticks32_t ret = { .ticks32 = (uint32_t) diff };
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline bool xtimer_less(xtimer_ticks32_t a, xtimer_ticks32_t b)
|
||||
{
|
||||
return (a.ticks32 < b.ticks32);
|
||||
}
|
||||
|
||||
static inline bool xtimer_less64(xtimer_ticks64_t a, xtimer_ticks64_t b)
|
||||
{
|
||||
return (a.ticks64 < b.ticks64);
|
||||
}
|
||||
|
||||
#endif /* !defined(DOXYGEN) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user