diff --git a/apps/src/ps.c b/apps/src/ps.c index 5721d419..c7f9fb35 100644 --- a/apps/src/ps.c +++ b/apps/src/ps.c @@ -17,8 +17,8 @@ pid_t get_current_max_threads() void display_process(struct pstat* pstatbuf) { - printf("%ld %ld %s %s (%ld ms)\n", pstatbuf->pt_pid, pstatbuf->pt_ppid, pstatbuf->pt_name, pstatname(pstatbuf), - pstatbuf->pt_time); + printf("%d %d %ld %ld %s %s (%ld ms)\n", pstatbuf->pt_uid, pstatbuf->pt_gid, pstatbuf->pt_pid, pstatbuf->pt_ppid, + pstatbuf->pt_name, pstatname(pstatbuf), pstatbuf->pt_time); } int try_pstat(pid_t pid, struct pstat* pstatbuf) diff --git a/kernel/src/thread/Scheduler.cpp b/kernel/src/thread/Scheduler.cpp index 0db18fb9..37d838a6 100644 --- a/kernel/src/thread/Scheduler.cpp +++ b/kernel/src/thread/Scheduler.cpp @@ -615,6 +615,8 @@ struct pstat char pt_name[128]; int pt_state; long pt_time; + uid_t pt_uid; + gid_t pt_gid; }; void sys_pstat(Context* context, long pid, struct pstat* buf) @@ -647,6 +649,8 @@ void sys_pstat(Context* context, long pid, struct pstat* buf) kpstat->pt_ppid = task->ppid; kpstat->pt_state = (int)task->state; kpstat->pt_time = (long)task->cpu_time; + kpstat->pt_uid = task->uid; + kpstat->pt_gid = task->gid; strlcpy(kpstat->pt_name, task->name, sizeof(kpstat->pt_name)); release_user_ref(kpstat); } diff --git a/libs/libc/include/luna/pstat.h b/libs/libc/include/luna/pstat.h index 407f041c..fe6e4295 100644 --- a/libs/libc/include/luna/pstat.h +++ b/libs/libc/include/luna/pstat.h @@ -10,6 +10,8 @@ struct pstat char pt_name[128]; int pt_state; long pt_time; + uid_t pt_uid; + gid_t pt_gid; }; #define PT_IDLE 0