matos/core/time.c

37 lines
669 B
C
Raw Permalink Normal View History

2020-04-27 23:08:36 +02:00
#include "time.h"
unsigned long volatile jiffies = INITIAL_JIFFIES;
unsigned int jiffies_to_msecs(const unsigned long j)
{
return (1000L / HZ) * j;
}
unsigned int jiffies_to_usecs(const unsigned long j)
{
return (1000000L / HZ) * j;
}
2020-04-30 23:16:41 +02:00
unsigned long msecs_to_jiffies(const unsigned int m)
{
#if HZ >= 1000 && !(HZ % 1000)
return m * (HZ / 1000L);
#else
// This could overflow
return (m * HZ) / 1000L;
#endif
}
2021-01-22 22:59:45 +01:00
unsigned long usecs_to_jiffies(const unsigned int u)
{
2020-04-30 23:16:41 +02:00
// This could overflow
return (u * HZ) / 1000000L;
}
2021-09-15 21:51:58 +02:00
#include <x86intrin.h>
inline uint64_t read_cycle_counter()
{
uint64_t tsc = __rdtsc();
return tsc;
}