[SDK] One step further towards ReactOS source code tree restructure: the sdk folder...
[reactos.git] / reactos / sdk / lib / drivers / sound / shared / time.c
diff --git a/reactos/sdk/lib/drivers/sound/shared/time.c b/reactos/sdk/lib/drivers/sound/shared/time.c
new file mode 100644 (file)
index 0000000..19b61bc
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+    ReactOS Sound System
+    Timing helper
+
+    Author:
+        Andrew Greenwood (silverblade@reactos.org)
+
+    History:
+        31 May 2008 - Created
+
+    Notes:
+        Have checked timing in DebugView. A 10,000ms delay covered a period
+        of 124.305 sec to 134.308 sec. Not 100% accurate but likely down to
+        the delays in submitting the debug strings?
+*/
+
+/*
+    Nanoseconds are fun! You must try some!
+    1 ns        = .000000001 seconds    = .0000001 ms
+    100 ns      = .0000001 seconds      = .00001 ms
+    10000 ns    = .00001 seconds        = .001 ms
+    1000000 ns  = .001 seconds          = 1 ms
+*/
+
+#include <ntddk.h>
+
+VOID
+SleepMs(ULONG Milliseconds)
+{
+    LARGE_INTEGER Period;
+
+    Period.QuadPart = -Milliseconds;
+    Period.QuadPart *= 10000;
+
+    KeDelayExecutionThread(KernelMode, FALSE, &Period);
+}
+
+ULONG
+QuerySystemTimeMs()
+{
+    LARGE_INTEGER Time;
+
+    KeQuerySystemTime(&Time);
+
+    Time.QuadPart /= 10000;
+
+    return (ULONG) Time.QuadPart;
+}
+