eudyptula/task_5/my-usb-detect.c

45 lines
1.2 KiB
C

// SPDX-License-Identifier: GPL-2.0
#include <linux/hid.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/usb.h>
/* On défini quels périphériques usb notre driver va pouvoir utiliser. */
static const struct usb_device_id mydriver_id_table[] = {
/* ici pour un périphérique en particulier (VendorID:ProductID) */
{USB_DEVICE(0x03eb, 0x2042)},
/* Pour définir une classe d'interface usb. n'existe que pour les claviers et
* les souris ?
* cf. include/linux/usb.h:1039 et include/linux/uapi/linux/hid.h:{35,41,42}
*/
{USB_INTERFACE_INFO
(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,
USB_INTERFACE_PROTOCOL_KEYBOARD)},
/* indique la fin de la liste */
{}
};
/* exporte dans le userspace la table des périphériques supportés. Cela permet
* de lier le périphérique avec le driver.
*/
MODULE_DEVICE_TABLE(usb, mydriver_id_table);
static int __init my_init(void)
{
pr_info("Coucou le gens !!!!\n");
return 0;
}
static void __exit my_exit(void)
{
pr_info("Tschuss !!!\n");
}
module_init(my_init);
module_exit(my_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("rick <rick@gnous.eu>");
MODULE_DESCRIPTION("Module chargé lorsqu'un un clavier est branché.");