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);