diff --git a/core/time.c b/core/time.c index cb0c607..b69bbbc 100644 --- a/core/time.c +++ b/core/time.c @@ -11,3 +11,18 @@ unsigned int jiffies_to_usecs(const unsigned long j) { return (1000000L / HZ) * j; } + +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 +} + +unsigned long usecs_to_jiffies(const unsigned int u){ + // This could overflow + return (u * HZ) / 1000000L; +} diff --git a/core/time.h b/core/time.h index 302aa94..699b33d 100644 --- a/core/time.h +++ b/core/time.h @@ -48,3 +48,5 @@ extern unsigned long volatile jiffies; unsigned int jiffies_to_msecs(const unsigned long j); unsigned int jiffies_to_usecs(const unsigned long j); +unsigned long msecs_to_jiffies(const unsigned int m); +unsigned long usecs_to_jiffies(const unsigned int u);