home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / usbd0906.zip / usb_20020906.zip / usbcalls / samples / Cardreader / usblinux.h < prev    next >
C/C++ Source or Header  |  2001-11-13  |  1KB  |  49 lines

  1. /*
  2.     Author : David Corcoran
  3.     Title  : usblinux.h
  4.     Purpose: To provide Linux abstraction to searaching the
  5.              USB layer.
  6. */
  7.  
  8. #ifndef __usblinux_h__
  9. #define __usblinux_h__
  10.  
  11.  
  12. struct usb_bulktransfer {
  13.   /* keep in sync with usb.h:usb_proc_bulktransfer */
  14.      unsigned int ep;
  15.      unsigned int len;
  16.      unsigned int timeout;   /* in milliseconds */
  17.  
  18.      /* pointer to data */
  19.      void *data;
  20. };        
  21.  
  22.  
  23. struct usb_device_descriptor {
  24.     u_int8_t  bLength;
  25.     u_int8_t  bDescriptorType;
  26.     u_int16_t bcdUSB;
  27.     u_int8_t  bDeviceClass;
  28.     u_int8_t  bDeviceSubClass;
  29.     u_int8_t  bDeviceProtocol;
  30.     u_int8_t  bMaxPacketSize0;
  31.     u_int16_t idVendor;
  32.     u_int16_t idProduct;
  33.     u_int16_t bcdDevice;
  34.     u_int8_t  iManufacturer;
  35.     u_int8_t  iProduct;
  36.     u_int8_t  iSerialNumber;
  37.     u_int8_t  bNumConfigurations;
  38. } __attribute__ ((packed));
  39.  
  40. #define IOCTL_USB_BULK          _IOWR('U', 2, struct usb_bulktransfer) 
  41.  
  42. int open_linux_usb_dev ( unsigned int, unsigned int, unsigned int );
  43. int close_linux_usb_dev( int );
  44.  
  45. int bulk_linux_usb_dev( int, int, unsigned char *, int *, int );
  46.  
  47. #endif
  48.  
  49.