Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/usb.h>
- #include <linux/usb/input.h>
- #include <linux/hid.h>
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR("Parisa Bakhtou");
- MODULE_DESCRIPTION("USB_KBD Module");
- static struct usb_device_id usb_kbd_id_table[] = {
- { USB_INTERFACE_INFO(
- USB_INTERFACE_CLASS_HID,
- USB_INTERFACE_SUBCLASS_BOOT,
- USB_INTERFACE_PROTOCOL_KEYBOARD) },
- { }
- };
- MODULE_DEVICE_TABLE(usb, usb_kbd_id_table);
- static int kbd_probe(struct usb_interface *interface,
- const struct usb_device_id *id)
- {
- pr_info("USB keyboard probe function calledn");
- /* pr_info("Hello World!n"); */
- return 0;
- }
- static void kbd_disconnect(struct usb_interface *interface)
- {
- pr_info("USB keyboard disconnect function calledn");
- }
- static struct usb_driver kbd_driver = {
- .name = "usbkbd",
- .probe = kbd_probe,
- .disconnect = kbd_disconnect,
- .id_table = usb_kbd_id_table,
- };
- static int __init kbd_init(void)
- {
- int res = 0;
- res = usb_register(&kbd_driver);
- if (res)
- pr_err("usb_register failed with error %d", res);
- return res;
- }
- static void __exit kbd_exit(void)
- {
- pr_debug("USB Keyboard Removed..n");
- usb_deregister(&kbd_driver);
- return;
- }
- module_init(kbd_init);
- module_exit(kbd_exit);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement