Merge c and rust modules
This commit is contained in:
parent
8e0721c2fb
commit
311e9be037
21 changed files with 4 additions and 11 deletions
7
06_virtual_led_basic/Makefile
Normal file
7
06_virtual_led_basic/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
obj-m += test_module.o
|
||||
|
||||
all:
|
||||
make -C $(LINUX_MODULES_FOLDER)/build M=$(PWD) modules
|
||||
|
||||
clean:
|
||||
make -C $(LINUX_MODULES_FOLDER)/build M=$(PWD) clean
|
58
06_virtual_led_basic/test_module.c
Normal file
58
06_virtual_led_basic/test_module.c
Normal file
|
@ -0,0 +1,58 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
static void virtual_led_brightness_set(struct led_classdev *led_cdev,
|
||||
enum led_brightness brightness)
|
||||
{
|
||||
pr_info("Luminosité défini sur la LED %s à %d\n", led_cdev->name,
|
||||
brightness);
|
||||
}
|
||||
|
||||
static enum led_brightness
|
||||
virtual_led_brightness_get(struct led_classdev *led_cdev)
|
||||
{
|
||||
pr_info("Luminosité lu sur la LED %s, valeur actuelle: %d\n",
|
||||
led_cdev->name, led_cdev->brightness);
|
||||
return led_cdev->brightness;
|
||||
}
|
||||
|
||||
static struct led_classdev virtual_led = {
|
||||
.name = "flo-led:white:led-0",
|
||||
.color = LED_COLOR_ID_WHITE,
|
||||
.brightness = 0,
|
||||
.max_brightness = 255,
|
||||
.brightness_set = virtual_led_brightness_set,
|
||||
.brightness_set = virtual_led_brightness_get
|
||||
};
|
||||
|
||||
static int __init virtual_led_init(void)
|
||||
{
|
||||
int ret;
|
||||
pr_info("Chargement du module pour la LED virtuelle\n");
|
||||
|
||||
ret = led_classdev_register(NULL, &virtual_led);
|
||||
if (ret < 0) {
|
||||
pr_err("Impossible d'ajouter la LED virtuelle\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
pr_info("La LED virtuelle est ajouté\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit virtual_led_exit(void)
|
||||
{
|
||||
pr_info("Déchargement du module pour la LED virtuelle\n");
|
||||
led_classdev_unregister(&virtual_led);
|
||||
pr_info("La LED virtuelle est bien retiré\n");
|
||||
}
|
||||
|
||||
module_init(virtual_led_init);
|
||||
module_exit(virtual_led_exit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Florian RICHER <florian.richer@protonmail.com>");
|
||||
MODULE_DESCRIPTION("Un module noyau qui ajoute une LED virtuelle");
|
||||
MODULE_VERSION("1.0");
|
Loading…
Add table
Add a link
Reference in a new issue