Please help solve this task.

Please help solve this task.

[tex]Please help solve this task.[/tex]

Related Posts

This Post Has 3 Comments

  1. #include <linux/kernel.h>

    #include <linux/module.h>

    #include <linux/init.h>

    #include <linux/sched/signal.h>

    #include <linux/sched.h>



    struct task_struct *task;        /*    Structure defined in sched.h for tasks/processes    */

    struct task_struct *task_child;        /*    Structure needed to iterate through task children    */

    struct list_head *list;            /*    Structure needed to iterate through the list in each task->children struct    */


    int iterate_init(void)                    /*    Init Module    */


       printk(KERN_INFO "%s","LOADING MODULE\n");    /*    good practice to log when loading/removing modules    */


       for_each_process( task ){            /*    for_each_process() MACRO for iterating through each task in the os located in linux\sched\signal.h    */

           printk(KERN_INFO "\nPARENT PID: %d PROCESS: %s STATE: %ld",task->pid, task->comm, task->state);/*    log parent id/executable name/state    */

           list_for_each(list, &task->children){                        /*    list_for_each MACRO to iterate through task->children    */


               task_child = list_entry( list, struct task_struct, sibling );    /*    using list_entry to declare all vars in task_child struct    */


               printk(KERN_INFO "\nCHILD OF %s[%d] PID: %d PROCESS: %s STATE: %ld",task->comm, task->pid, /*    log child of and child pid/name/state    */

                   task_child->pid, task_child->comm, task_child->state);


           printk("");    /*for aesthetics*/




       return 0;


    }                /*    End of Init Module    */


    void cleanup_exit(void)        /*    Exit Module    */




       printk(KERN_INFO "%s","REMOVING MODULE\n");


    }                /*    End of Exit Module    */


    module_init(iterate_init);    /*    Load Module MACRO    */

    module_exit(cleanup_exit);    /*    Remove Module MACRO    */




Leave a Reply

Your email address will not be published. Required fields are marked *