+2005-05-28 Frank Hess,,, <fmhess@users.sourceforge.net>
+
+ * include/linux/delay.h: Added msleep_interruptible()
+ * include/linux/time.h:i Added msecs_to_jiffies() and jiffies_to_msecs()
+ * include/linux/usb.h: Added USB_CONTROL_MSG() and USB_BULK_MSG()
+
2005-04-20 David Schleef <ds@schleef.org>
Remove the debian directory, since it's not maintained here.
--- /dev/null
+
+#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
+
--- /dev/null
+
+#ifndef __COMPAT_LINUX_TIME_H
+#define __COMPAT_LINUX_TIME_H
+
+#include <linux/version.h>
+
+#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);
+#elif HZ > 1000 && !(HZ % 1000)
+ return m * (HZ / 1000);
+#else
+ return (m * HZ + 999) / 1000;
+#endif
+};
+
+#endif
+
+#endif
+
#define __COMPAT_LINUX_USB_H_
#include <linux/version.h>
+#include <linux/time.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
#define USB_ALLOC_URB(x) usb_alloc_urb(x)
#include_next <linux/usb.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)
+static inline int USB_CONTROL_MSG(struct usb_device *dev, unsigned int pipe,
+ __u8 request, __u8 requesttype, __u16 value, __u16 index,
+ void *data, __u16 size, int millisec_timeout)
+{
+ return usb_control_msg(dev, pipe, request, requesttype, value, index,
+ data, size, msecs_to_jiffies(millisec_timeout));
+}
+static inline int USB_BULK_MSG(struct usb_device *usb_dev, unsigned int pipe,
+ void *data, int len, int *actual_length,
+ int millisec_timeout)
+{
+ return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, msecs_to_jiffies(millisec_timeout));
+}
+#else
+#define USB_CONTROL_MSG usb_control_msg
+#define USB_BULK_MSG usb_bulk_msg
+#endif
+
#endif