Untitled
unknown
plain_text
2 years ago
801 B
5
Indexable
#include <linux/kernel.h> #include <linux/module.h> #include <linux/kthread.h> #include <linux/sched.h> static struct task_struct *my_thread; int my_thread_fn(void *data) { while (!kthread_should_stop()) { printk(KERN_INFO "My kernel thread is running\n"); ssleep(2); } printk(KERN_INFO "My kernel thread is stopping\n"); return 0; } int init_module(void) { printk(KERN_INFO "Creating my kernel thread\n"); my_thread = kthread_create(my_thread_fn, NULL, "mythread"); if (IS_ERR(my_thread)) { printk(KERN_ERR "Failed to create kernel thread\n"); return PTR_ERR(my_thread); } wake_up_process(my_thread); return 0; } void cleanup_module(void) { printk(KERN_INFO "Stopping my kernel thread\n"); kthread_stop(my_thread); }
Editor is loading...