usb-sysdep.h
上传用户:wudi5211
上传日期:2010-01-21
资源大小:607k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

C/C++

  1. /*
  2.  * usb-sysdep.h -- macros to help using the 2.4 approach to usb in 2.2
  3.  * $Id: usb-sysdep.h,v 1.1 2001/07/09 14:32:39 rubini Exp $
  4.  */
  5. #ifndef _USB_SYSDEP_H_
  6. #define _USB_SYSDEP_H_
  7. /*
  8.  * provide the basic version check, don't bother with 2.0 as it
  9.  * will have already barfed on <linux/usb.h>
  10.  */
  11. #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) /* not > 2.4, by now */
  12. #  error "This kernel is too recent: not supported by this file"
  13. #endif
  14. #if (LINUX_VERSION_CODE & 0xff00) == 3 /* not 2.3 */
  15. #  error "Please don't use linux-2.3, use 2.4 instead"
  16. #endif
  17. #if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0)
  18. #  define LINUX_22
  19. #else
  20. #  define LINUX_24
  21. #endif
  22. #ifdef LINUX_22
  23. /*
  24.  * Define a device_id structure, to use the better approach of 2.4. This
  25.  * for of the structure is used for class/subclass/protocol matching;
  26.  * if you need to match on vendor/device identifiers you need a different
  27.  * compatibility structure (and associated match code). Or you could
  28.  * backport the one defined in linux-2.4/include/linux/usb.h
  29.  */
  30. struct usb_device_id {
  31.     int      class;
  32.     int      subclass;
  33.     int      protocol;   
  34.     unsigned long   driver_info;
  35. };
  36. /* This macro is used to fill the fields (2.4 is much more powerful here) */
  37. #define USB_INTERFACE_INFO(cl,sc,pr) 
  38.         class: (cl), subclass: (sc), protocol: (pr)
  39. #endif /* 2.2 */
  40. #endif /* _USB_SYSDEP_H_ */