Age | Commit message (Collapse) | Author |
|
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.
|
|
* proc/info.c (S_proc_getprocinfo): Clear PI_FETCH_TASKEVENTS from
`flags' when task_info.
|
|
* info.c (S_proc_getprocinfo): If PI_FETCH_TASKEVENTS is set in *FLAGS,
fill in PI->taskevents using task_info with TASK_EVENTS_INFO.
|
|
* host.c (S_proc_setexecdata, S_proc_getexecdata): u_int -> size_t
(initialize_version_info): Likewise. Fix cast in host_info arg.
(get_string_array): Likewise.
* info.c (get_string, S_proc_getprocargs, S_proc_getprocenv): Likewise.
(S_proc_getprocinfo, S_proc_getloginpids): Likewise.
(S_proc_getprocinfo): int -> size_t; fix casts in *_info argument.
|
|
* proc.h (check_owner): Move this extern inline function ...
* info.c (check_owner): ... to here, made static inline.
|
|
* info.c (S_proc_getprocinfo): If we return because mmap failed
for *PIARRAY, be sure to munmap THDS if necessary.
|
|
* host.c: Doc fix: ``Implement foo as described in <hurd/proc.defs>''
=> ``Implement foo as described in <hurd/process.defs>''
* info.c: Likewise.
* mgt.c: Likewise.
* pgrp.c: Likewise.
* wait.c: Likewise.
* host.c (S_proc_setexecdata): Check for memory allocation errors.
Use memcpy, not bcopy.
(S_proc_getexecdata): Likewise.
(S_proc_execdata_notify): Check return of malloc.
(S_proc_register_version): Likewise.
(initialize_version_info): Add asserts.
* info.c (S_proc_pid2task): Do not bother searching for the pid
if we do not have a valid caller.
(S_proc_pid2proc): Likewise.
Use memcpy, not bcopy.
(S_proc_getprocinfo): Doc fixes. Use MAP_FAILED not -1. Use
memcpy, not bcopy.
(S_proc_getloginpids): Check return value of malloc. Use realloc
correctly.
(S_proc_setlogin): Check return value of malloc.
* main.c (main): Assert allocate_proc.
* mgt.c (make_ids): Check return value of malloc and fail
accordingly.
(S_proc_reauthenticate): Check return value of make_ids and fail
accordingly.
(S_proc_child): Call task_find after we know that we were passed
a valid child.
(S_proc_reassign): Likewise.
(S_proc_handle_exceptions): Use memcpy, not bcopy.
(allocate_proc): Check return value of ports_create_port and fail
accordingly.
(create_startup_proc): Add asserts.
(complete_proc): Do not assume the length of "<none>".
* msg.c (S_proc_getmsgport): Call pid_find_allow_zombie after
we know we were passed a valid caller.
* pgrp.c: Include assert.h.
(new_pgrp): Check return value of malloc and fail accordingly.
(new_session): Likewise.
(boot_setsid): Assert sess.
(S_proc_getsessionpids): Use MAP_FAILED not -1.
(S_proc_getsessionppids): Likewise.
(S_proc_getpgrppids): Likewise.
* wait.c (S_proc_wait): Use memset, not bzero.
|
|
* info.c (get_string): New arg, pass back length of string.
(get_string_array): Use it, rather than repeating strlen.
When increasing NEWSIZE to fit, round it to page size.
Diddle a few casts to be prettier.
|
|
* info.c (get_string_array): Use mmap instead of vm_allocate.
(S_proc_getprocinfo): Likewise.
(S_proc_getloginpids): Likewise.
* mgt.c (S_proc_getallpids): Likewise.
* pgrp.c (S_proc_getsessionpids): Likewise.
(S_proc_getsessionpgids): Likewise.
(S_proc_getpgrppids): Likewise.
|
|
* info.c: Add #include <sys/mman.h> for munmap decl.
* mgt.c: Likewise.
|
|
* info.c (get_string): Use munmap instead of vm_deallocate.
(get_vector): Likewise.
(get_string_array): Likewise.
(S_proc_getprocinfo): Likewise.
* mgt.c (S_proc_reauthenticate): Likewise.
(S_proc_dostop): Likewise.
(add_tasks): Likewise.
|
|
* mgt.c (add_tasks): Skip invalid (null) rights in tasks array.
* info.c (S_proc_pid2task): Add assert for p_task right validity.
|
|
* msg.c (check_msgport_death): New function.
(S_proc_getmsgport): Use it.
* proc.h (check_msgport_death): Provide prototype.
* info.c (S_proc_getprocinfo): Call check_msgport_death to make
sure that our knowledge about P's message port is up to date.
|
|
Correctly adjust NEWSIZE when reallocating to add very long strings.
|
|
|
|
|
|
|
|
(S_proc_getprocinfo):
Only allocate thread detail storage if we're actually returning thread
details (a lone PI_FETCH_THREADS simply means "number of threads").
React to errors somewhat more gracefully.
|
|
|
|
|
|
|
|
Release GLOBAL_LOCK around time consuming bits, and more importantly,
potential calls to P's msgport, which can block.
Fix test when appending to WAITS.
|
|
compile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
not valid.
|
|
|
|
|
|
Add NOISE and NOISE_LEN args. Fix various typos. Initialize ERR.
|
|
PI_ZOMBIE.
|
|
msg_report_wait call; improve organization.
|
|
get_string_array.
|
|
PI->logincollection.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|