diff --git a/kernel/kernel.cpp b/kernel/kernel.cpp index 2402ecc039f1902378a5eb4aa9296b3559ce3d8f..cbfbece1d308574e53bcfb7c8468b3adb2525464 100644 --- a/kernel/kernel.cpp +++ b/kernel/kernel.cpp @@ -51,7 +51,9 @@ void startKernel() {} bool isKernelRunning() { return true; } -long long getTime() { return time(NULL); } +long long getTime() { return time(NULL) * 1000; } + +long long IRQgetTime() { return time(NULL) * 1000; } Thread *Thread::create(void *(*startfunc)(void *), unsigned int stacksize, Priority priority, void *argv, unsigned short options) @@ -103,6 +105,18 @@ Priority Thread::IRQgetPriority() { return Priority{}; } void Thread::IRQwait() {} +TimedWaitResult Thread::IRQenableIrqAndTimedWait( + FastInterruptDisableLock &dLock, long long absoluteTimeNs) +{ + return TimedWaitResult::NoTimeout; +} + +TimedWaitResult Thread::IRQenableIrqAndTimedWait(InterruptDisableLock &dLock, + long long absoluteTimeNs) +{ + return TimedWaitResult::NoTimeout; +} + void Thread::IRQwakeup() {} bool Thread::IRQexists(Thread *p) { return true; } diff --git a/kernel/kernel.h b/kernel/kernel.h index 370c4c948ea3e98f3fc514fcce558cd6d6b6ac91..af4f1d36df96a9b07508e8173772b7abb4d4937e 100644 --- a/kernel/kernel.h +++ b/kernel/kernel.h @@ -89,6 +89,14 @@ bool isKernelRunning(); long long getTime(); +long long IRQgetTime(); + +enum class TimedWaitResult +{ + NoTimeout, + Timeout +}; + class Thread { public: @@ -144,6 +152,12 @@ public: static void IRQwait(); + static TimedWaitResult IRQenableIrqAndTimedWait( + FastInterruptDisableLock &dLock, long long absoluteTimeNs); + + static TimedWaitResult IRQenableIrqAndTimedWait(InterruptDisableLock &dLock, + long long absoluteTimeNs); + void IRQwakeup(); static bool IRQexists(Thread *p);