diff options
Diffstat (limited to 'v4l/compat.h')
-rw-r--r-- | v4l/compat.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/v4l/compat.h b/v4l/compat.h index 57b1aba8d..98f57879b 100644 --- a/v4l/compat.h +++ b/v4l/compat.h @@ -262,4 +262,69 @@ static inline int list_is_singular(const struct list_head *head) #define PCI_DEVICE_ID_MARVELL_88ALP01_CCIC 0x4102 #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) +#ifdef __LINUX_USB_H +/* + * usb_endpoint_* functions + * + * Included in Linux 2.6.19 + * Backported to 2.6.18 in Red Hat Enterprise Linux 5.2 + */ + +#ifdef RHEL_RELEASE_CODE +#if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5, 2) +#define RHEL_HAS_USB_ENDPOINT +#endif +#endif + +#ifndef RHEL_HAS_USB_ENDPOINT +static inline int +usb_endpoint_dir_in(const struct usb_endpoint_descriptor *epd) +{ + return (epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN; +} + +static inline int +usb_endpoint_xfer_int(const struct usb_endpoint_descriptor *epd) +{ + return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_INT; +} + +static inline int +usb_endpoint_xfer_isoc(const struct usb_endpoint_descriptor *epd) +{ + return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_ISOC; +} + +static inline int +usb_endpoint_xfer_bulk(const struct usb_endpoint_descriptor *epd) +{ + return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_BULK; +} + +static inline int +usb_endpoint_is_int_in(const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd); +} +#endif /* RHEL_HAS_USB_ENDPOINT */ +#endif /* __LINUX_USB_H */ +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) +/* + * Linked list API + */ +#define list_first_entry(ptr, type, member) \ + list_entry((ptr)->next, type, member) + +/* + * uninitialized_var() macro + */ +#define uninitialized_var(x) x +#endif + #endif |