#include asmlinkage int sys_task_info(void __user *to) { task_info_struct task_info; int ret = -1; /* 'current' is a global variable that indicates currently running process */ task_info.state = current->state; task_info.pid = current->pid; task_info.tgid = current->tgid; task_info.utime = current->utime; task_info.stime = current->stime; task_info.prio = current->prio; task_info.static_prio = current->static_prio; task_info.sleep_avg = current->sleep_avg; task_info.time_slice = current->time_slice; task_info.first_time_slice = current->first_time_slice; ret = copy_to_user(to, (void *)&task_info, sizeof(task_info)); return ret; }