matos/core/time.c

39 lines
709 B
C
Raw Normal View History

2020-04-27 23:08:36 +02:00
#include "time.h"
2024-01-29 23:27:10 +01:00
#include "stddef.h"
#include <stdint.h>
2020-04-27 23:08:36 +02:00
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;
}