daily pastebin goal
59%
SHARE
TWEET

Untitled

a guest Mar 19th, 2015 230 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <linux/init.h>
  2. #include <linux/module.h>
  3. #include <linux/slab.h>
  4. #include <linux/usb.h>
  5. #include <linux/mutex.h>
  6. #include <linux/ioctl.h>
  7. #include <asm/uaccess.h>
  8.  
  9. static struct module this_module;
  10. static struct usb_driver driver;
  11. static struct usb_device_id device_table[];
  12. static int device_probe(struct usb_interface *intf, const struct usb_device_id *id);
  13. static void device_disconnect(struct usb_interface *intf);
  14.  
  15. static struct usb_driver driver = {
  16.         .name = "USB keyboard",
  17.         .id_table = device_table,
  18.         .probe = device_probe,
  19.         .disconnect = device_disconnect,
  20. };
  21.  
  22. static struct usb_device_id device_table[] = {
  23.         { USB_DEVICE( 0x1997, 0x2433) },
  24.         { }
  25. };
  26.  
  27.  
  28. static int device_probe(struct usb_interface *intf, const struct usb_device_id *id)
  29. {
  30.         // called when device is connected
  31.         return 0;
  32. }
  33.  
  34. static void device_disconnect(struct usb_interface *intf)
  35. {
  36.         // called when device is unplugged
  37. }
  38.  
  39. static int __init mod_init(void)
  40. {
  41.         // register our module with the usb system
  42.         int check;
  43.         char *mod_name = "USB Keyboard";
  44.         check = usb_register_driver(&driver, &this_module, mod_name);
  45.         if(check < 0) { printk("device failed to register"); return -1; }
  46.         else { printk("device is registered!"); }
  47.         return 0;
  48. }
  49.  
  50. static void __exit mod_exit(void)
  51. {
  52.         // cleanup
  53.         usb_deregister(&driver);
  54. }
  55.  
  56. module_init(mod_init);
  57. module_exit(mod_exit);
RAW Paste Data
Top