Untitled

 avatar
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...