44 lines
1.2 KiB
C
44 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 clavier est branché.");
|