ungureanuvladvictor

Untitled

Apr 6th, 2014
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. #include <linux/module.h>
  2. #include <linux/kernel.h>
  3. #include <linux/usb.h>
  4.  
  5. static struct usb_device *device;
  6.  
  7. static int pen_probe(struct usb_interface *interface, const struct usb_device_id *id)
  8. {
  9.     struct usb_host_interface *iface_desc;
  10.     struct usb_endpoint_descriptor *endpoint;
  11.     int i;
  12.  
  13.     iface_desc = interface->cur_altsetting;
  14.     printk(KERN_INFO "Pen i/f %d now probed: (%04X:%04X)\n",
  15.             iface_desc->desc.bInterfaceNumber, id->idVendor, id->idProduct);
  16.     printk(KERN_INFO "ID->bNumEndpoints: %02X\n",
  17.             iface_desc->desc.bNumEndpoints);
  18.     printk(KERN_INFO "ID->bInterfaceClass: %02X\n",
  19.             iface_desc->desc.bInterfaceClass);
  20.  
  21.     for (i = 0; i < iface_desc->desc.bNumEndpoints; i++)
  22.     {
  23.         endpoint = &iface_desc->endpoint[i].desc;
  24.  
  25.         printk(KERN_INFO "ED[%d]->bEndpointAddress: 0x%02X\n",
  26.                 i, endpoint->bEndpointAddress);
  27.         printk(KERN_INFO "ED[%d]->bmAttributes: 0x%02X\n",
  28.                 i, endpoint->bmAttributes);
  29.         printk(KERN_INFO "ED[%d]->wMaxPacketSize: 0x%04X (%d)\n",
  30.                 i, endpoint->wMaxPacketSize, endpoint->wMaxPacketSize);
  31.     }
  32.  
  33.     device = interface_to_usbdev(interface);
  34.     return 0;
  35. }
  36.  
  37. static void pen_disconnect(struct usb_interface *interface)
  38. {
  39.     printk(KERN_INFO "Pen i/f %d now disconnected\n",
  40.             interface->cur_altsetting->desc.bInterfaceNumber);
  41. }
  42.  
  43. static struct usb_device_id pen_table[] =
  44. {
  45.     { USB_DEVICE(0x058F, 0x6387) },
  46.     {} /* Terminating entry */
  47. };
  48. MODULE_DEVICE_TABLE (usb, pen_table);
  49.  
  50. static struct usb_driver pen_driver =
  51. {
  52.     .name = "pen_driver",
  53.     .probe = pen_probe,
  54.     .disconnect = pen_disconnect,
  55.     .id_table = pen_table,
  56. };
  57.  
  58. static int __init pen_init(void)
  59. {
  60.     return usb_register(&pen_driver);
  61. }
  62.  
  63. static void __exit pen_exit(void)
  64. {
  65.     usb_deregister(&pen_driver);
  66. }
  67.  
  68. module_init(pen_init);
  69. module_exit(pen_exit);
  70.  
  71. MODULE_LICENSE("GPL");
  72. MODULE_AUTHOR("Anil Kumar Pugalia <[email protected]<script type="text/javascript">
  73. /* <![CDATA[ */
  74. (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
  75. /* ]]> */
  76. </script>>");
  77. MODULE_DESCRIPTION("USB Pen Info Driver");
Advertisement
Add Comment
Please, Sign In to add comment