diff options
author | antrik <antrik@users.sf.net> | 2009-06-20 12:29:06 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-09-18 20:34:20 +0200 |
commit | be9be179a2cde041fbe042362ee80f9874233953 (patch) | |
tree | 22ae322b09d7e6b81b6b984c235a1e865774f8e8 /libps/procstat.c | |
parent | 7cecc5f97fb28126a7d930efe44d3a03a64ba272 (diff) |
Obtain number of ports in proc and libps
Add (and implement) a proc RPC to obtain the number of Mach ports used
by the target task.
Add infrastructure in libps to read this information.
* hurd/process.defs (proc_getnports): New RPC.
* hurd/process_request.defs (proc_getnports_request): New RPC.
* libps/procstat.c (proc_stat_set_flags): Call proc_getnports RPC if
needed.
* libps/ps.h (proc_stat): New `num_ports' field.
(PSTAT_NUM_PORTS): New macro.
(proc_stat_num_ports): New macro.
* libps/spec.c (ps_get_num_ports): New function.
(ps_num_ports_getter): New variable.
(specs): New entry for `ps_num_ports_getter'.
* proc/info.c (S_proc_getnports): New function.
Diffstat (limited to 'libps/procstat.c')
-rw-r--r-- | libps/procstat.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libps/procstat.c b/libps/procstat.c index 6e920f4f..eac4ae42 100644 --- a/libps/procstat.c +++ b/libps/procstat.c @@ -990,6 +990,10 @@ proc_stat_set_flags (struct proc_stat *ps, ps_flags_t flags) if (ps_context_find_tty_by_cttyid (ps->context, ps->cttyid, &ps->tty) == 0) have |= PSTAT_TTY; + /* The number of Mach ports in the task. */ + MGET (PSTAT_NUM_PORTS, PSTAT_PID, + proc_getnports (server, ps->pid, &ps->num_ports)); + /* Update PS's flag state. We haven't tried user flags yet, so don't mark them as having failed. We do this before checking user bits so that the user fetch hook sees PS in a consistent state. */ |