Untitled
unknown
plain_text
3 years ago
801 B
8
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...