Мне нужно создать 2 новых системных вызова для установки и получения свойства из процесса по заданному pid. Я изменил task_struct, добавил int z_value (это то, что мне нужно установить/получить)
Мне также удалось установить значение z_value по умолчанию (200) для каждого созданного процесса.
Когда я запускаю системный вызов get, я вижу, что z_value по умолчанию правильный. Но когда я пытаюсь установить z_value, ничего не происходит.
Никаких ошибок компиляции, ошибок сегментации и т.д.
Вот мой набор системных вызовов.
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/uaccess.h>
asmlinkage void sys_set_z_value ( int user_value , pid_t pid )
{
rcu_read_lock();
struct task_struct *p = find_task_by_vpid(pid);
p->z_value = user_value;
rcu_read_unlock();
}