From: Frank Mori Hess Date: Sat, 28 May 2005 19:10:32 +0000 (+0000) Subject: * include/linux/delay.h: Added msleep_interruptible() X-Git-Tag: r0_7_71~145 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4895709d3cce87eb03465ca26c4dca2cd37bafe6;p=comedi.git * 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() --- diff --git a/ChangeLog b/ChangeLog index d0127947..419f8b00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-05-28 Frank Hess,,, + + * 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 Remove the debian directory, since it's not maintained here. diff --git a/include/linux/delay.h b/include/linux/delay.h new file mode 100644 index 00000000..4ef87686 --- /dev/null +++ b/include/linux/delay.h @@ -0,0 +1,24 @@ + +#ifndef __COMPAT_LINUX_DELAY_H +#define __COMPAT_LINUX_DELAY_H + +#include +#include + +#include_next + +#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 + diff --git a/include/linux/time.h b/include/linux/time.h new file mode 100644 index 00000000..48345ccf --- /dev/null +++ b/include/linux/time.h @@ -0,0 +1,36 @@ + +#ifndef __COMPAT_LINUX_TIME_H +#define __COMPAT_LINUX_TIME_H + +#include + +#include_next + +#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 + diff --git a/include/linux/usb.h b/include/linux/usb.h index 331c2b25..18f65756 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -24,6 +24,7 @@ #define __COMPAT_LINUX_USB_H_ #include +#include #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) #define USB_ALLOC_URB(x) usb_alloc_urb(x) @@ -39,5 +40,24 @@ #include_next +#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