added jiffies_to_msecs() and msleep_interruptible() to compatibility
authorFrank Mori Hess <fmhess@speakeasy.net>
Sat, 28 May 2005 19:02:24 +0000 (19:02 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Sat, 28 May 2005 19:02:24 +0000 (19:02 +0000)
headers

include/linux/delay.h [new file with mode: 0644]
include/linux/time.h

diff --git a/include/linux/delay.h b/include/linux/delay.h
new file mode 100644 (file)
index 0000000..4ef8768
--- /dev/null
@@ -0,0 +1,24 @@
+
+#ifndef __COMPAT_LINUX_DELAY_H
+#define __COMPAT_LINUX_DELAY_H
+
+#include <linux/version.h>
+#include <linux/time.h>
+
+#include_next <linux/delay.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
+static inline unsigned long msleep_interruptible(unsigned int msecs)
+{
+       unsigned long timeout = msecs_to_jiffies(msecs);
+
+       while (timeout && !signal_pending(current)) {
+               set_current_state(TASK_INTERRUPTIBLE);
+               timeout = schedule_timeout(timeout);
+       }
+       return jiffies_to_msecs(timeout);
+}
+#endif
+
+#endif
+
index 306b80fb6d3d984b81f12df3036d334341ee2fa3..48345ccf0fe822924a23bcfb466db0aebe373b0e 100644 (file)
@@ -7,14 +7,26 @@
 #include_next <linux/time.h>
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+
+static inline unsigned int jiffies_to_msecs(const unsigned long j)
+{
+#if HZ <= 1000 && !(1000 % HZ)
+       return (1000 / HZ) * j;
+#elif HZ > 1000 && !(HZ % 1000)
+       return (j + (HZ / 1000) - 1)/(HZ / 1000);
+#else
+       return (j * 1000) / HZ;
+#endif
+}
+
 static inline unsigned long msecs_to_jiffies(const unsigned int m)
 {
 #if HZ <= 1000 && !(1000 % HZ)
-               return (m + (1000 / HZ) - 1) / (1000 / HZ);
+       return (m + (1000 / HZ) - 1) / (1000 / HZ);
 #elif HZ > 1000 && !(HZ % 1000)
-               return m * (HZ / 1000);
+       return m * (HZ / 1000);
 #else
-               return (m * HZ + 999) / 1000;
+       return (m * HZ + 999) / 1000;
 #endif
 };