summaryrefslogtreecommitdiff
path: root/libps/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'libps/ChangeLog')
-rw-r--r--libps/ChangeLog747
1 files changed, 747 insertions, 0 deletions
diff --git a/libps/ChangeLog b/libps/ChangeLog
new file mode 100644
index 00000000..0f07b03e
--- /dev/null
+++ b/libps/ChangeLog
@@ -0,0 +1,747 @@
+Wed Jul 10 22:49:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (set_procinfo_flags): Don't use fake "*" wait value
+ if there's no msgport.
+
+Mon Jul 8 21:39:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (_ps_stream_write_field): If a field is truncatable
+ (MAX_WIDTH >= 0), take some of our spacing deficit out of it.
+
+Tue Jul 2 14:43:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Pass PS->task_events_info to
+ task_info, not its address.
+
+Thu Jun 27 18:32:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add common.h.
+
+Thu Jun 27 12:33:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct ps_fmt): Add SRC_LEN field.
+ (proc_stat_list_clone, ps_fmt_clone): New declarations.
+ * fmt.c (_fmt_create): Set NEW_FMT->src_len. Use strdup.
+ (ps_fmt_clone): New function.
+ * proclist.c (proc_stat_list_clone): New function.
+
+Mon Jun 3 10:17:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_wait): Never truncate what we write.
+
+ * user.c (ps_user_passwd): Check return value of install_passwd
+ correctly (it's an error_t).
+
+ * ps.h (struct proc_stat): Add PROC_INFO_VM_ALLOCED,
+ THREAD_WAITS_VM_ALLOCED, and ARGS_VM_ALLOCED fields,
+ * procstat.c (merge_procinfo) Take a struct proc_stat as an arg,
+ not all the individual fields. Correctly set OLD_PI_HDR.
+ Correctly calculate REALLY_NEED.
+ (set_procinfo_flags): Use new calling merge_procinfo calling convention.
+ (_proc_stat_free): Use explicit VM_ALLOCED flag for MFREEMEM.
+ (proc_stat_set_flags): Try mallocing a buffer for PS->args.
+ Move second call to set_procinfo_flags after msgport suppress test.
+ Add TEST_MSGPORT_FLAGS variable, & use it.
+ Be more picky about when we call set_procinfo_flags.
+
+Sat Jun 1 11:18:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (set_procinfo_flags): New function.
+ (proc_stat_set_flags): Use it, to get msgport validity testing right.
+ (merge_procinfo): Take and return HAVE instead of using a
+ reference parameter. Clean up malloced storage if we get an error.
+
+ * spec.c (struct ps_fmt_spec_block): New type.
+ (specs_add_alias): Use a linked list of ps_fmt_spec_blocks instead of
+ reallocing a vector of specs.
+ (ps_fmt_specs_find): Change searching accordingly.
+ * ps.h (struct ps_fmt_specs): The EXPANSIONS field now points to a
+ struct ps_fmt_spec_block. Delete EXPANSIONS_ALLOCED field.
+
+ * procstat.c (merge_procinfo): Correctly test for malloc failure.
+
+Fri May 31 18:36:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (MFREEMEM): New macro combining MFREEM & MFREEVM.
+ (MFREEM, MFREEVM): Macros deleted.
+ (merge_procinfo): Do mem allocation more efficiently and correctly.
+ (fetch_procinfo): Do conversion for PI_SIZE from/to units of
+ sizeof (int), so no one else has to deal with it.
+ (PROCINFO_MALLOC_SIZE, WAITS_MALLOC_SIZE): New macros.
+
+ * procstat.c (proc_stat_set_flags): After fetching number of
+ threads to guess whether we need wait info, put it in PS->num_threads.
+ (merge_procinfo): Avoid vm_allocing a procinfo buffer each time if
+ we can help it.
+ Correctly reflect newly fetched info.
+ (PSTAT_PROCINFO_MERGE, PSTAT_PROCINFO_REFETCH): New macros.
+
+Wed May 29 11:31:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (MP_MGET): Only disable msgport on timeout.
+ (get_thread_wait): Decrement N in loop.
+
+ * ps.h: Renumber PSTAT_ values to remove dup.
+
+ * procstat.c (merge_procinfo): Don't die if WAITS == 0.
+ (summarize_thread_waits): Correctly advance NEXT_WAIT.
+ Skip threads marked `itimer'.
+ (proc_stat_set_flags): Consider processes with less than 4 threads
+ to be candidates for a meaningful process wait status.
+ (get_thread_wait): Use strnlen instead of memchr.
+ (PSTAT_PROCINFO): Typo: PSTAT_THREAD_WAIT --> PSTAT_THREAD_WAITS.
+ (PSTAT_USES_MSGPORT): Add PSTAT_THREAD_WAIT.
+
+Tue May 28 16:36:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): Make NAME termination work for posix-mode.
+
+ * fmt.c (ps_fmt_write_proc_stat): Call the output function correctly.
+ (_fmt_create): Get FIELD's precision, not width, from its spec.
+
+Fri May 24 13:33:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * procstat.c (fetch_procinfo): Always turn on PSTAT_PROC_INFO if
+ proc_getprocinfo returns successfully.
+ (merge_procinfo): Update *HAVE with PSTAT_PROC_INFO from
+ REALLY_HAVE here.
+
+Wed May 22 19:55:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): Increment SRC when reading modifiers.
+ Recognize '^' modifier.
+
+Sun May 12 13:33:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): Add
+ PSTAT_THREAD_WAITS.
+ (proc_stat_set_flags): Be more careful about when we fetch
+ thread_wait information, and synthesize a process-summary thread_wait
+ value for lots of threads.
+ (summarize_thread_waits): Only give a real summary if there's but
+ a single user thread.
+ (fetch_procinfo): Use PSTAT_THREAD_WAITS instead of PSTAT_THREAD_WAIT.
+ * ps.h (PSTAT_THREAD_WAITS): New macro.
+
+ * procstat.c (merge_procinfo, fetch_procinfo): Change HAVE to be an
+ input/output parameter.
+ (proc_stat_set_flags): Change accordingly.
+
+ * procstat.c (get_thread_wait): Correctly advance WAIT.
+
+ * spec.c (specs): Give runtime specs 2 fraction digits by default.
+
+Thu May 9 17:03:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * procstat.c (fetch_procinfo): Pass a reference to PI_FLAGS in
+ call to fetch_procinfo.
+
+Mon May 6 16:28:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_spec_nominal): Take a spec again.
+ * ps.h (proc_stat_list_spec_nominal): Change FIELD arg to SPEC.
+
+ * user.c (install_passwd): New function.
+ (ps_user_passwd): Use it.
+ (ps_user_uname_create, ps_user_passwd_create): New functions.
+ * ps.h (ps_user_uname_create, ps_user_passwd_create): New declarations.
+ (ps_fmt_set_output_width): New declaration.
+
+ * spec.c (ps_emit_user_name): New function.
+
+ * ps.h (struct ps_fmt_spec): Remove keep field, add flags field.
+ (struct ps_fmt_field): Remove at_mod, colon_mod, & keep fields,
+ add flags field.
+ (PS_FMT_FIELD_AT_MOD, PS_FMT_FIELD_COLON_MOD, PS_FMT_FIELD_KEEP,
+ PS_FMT_FIELD_UPCASE_TITLE): New macros.
+ * spec.c (specs): Initialize flags field, not keep field.
+ (specs_add_alias): Pass on flags field.
+ * fmt.c (_fmt_create): Use flags fields, and implement global
+ flags, and add upcase flag (^).
+ (ps_fmt_write_titles): Implement PS_FMT_FIELD_UPCASE_TITLE.
+ * proclist.c (proc_stat_list_spec_nominal): Use flags field, not
+ keep field.
+
+ * ps.h (struct proc_stat): Remove exec_flags field.
+ (PSTAT_EXEC_FLAGS): Macro removed.
+ * procstat.c (add_preconditions, proc_stat_set_flags): Remove
+ references to exec_flags.
+
+Sun May 5 00:22:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_spec_nominal): Take a field, not a spec.
+ If the field has the keep flag set, don't nominalize it.
+ * fmt.c (_fmt_create): Change syntax of fields. Add support for
+ precision and `@', `:', `?', & `!' modifiers.
+ Add POSIX argument, and support for posix-style format strings.
+ When using the field name as the title, use the defn, not the user's.
+ (ps_fmt_squash): Call FN with the field, not the field's spec.
+ (ps_fmt_squash_flags): Appropiately modify the function we use.
+ (ps_fmt_create, ps_fmt_creation_error): Add POSIX argument.
+ * ps.h (struct ps_fmt_spec): Add precision & keep fields.
+ Change args to OUTPUT_FN.
+ (struct ps_fmt_field): Add precision, keep, at_mod, & colon_mod fields.
+ (proc_stat_list_spec_nominal): Change SPEC arg to FIELD.
+ (ps_fmt_squash): Call FN on the field, not the spec.
+ (ps_fmt_create, ps_fmt_creation_error): Add POSIX arg.
+ * spec.c (specs): Add precision & keep fields.
+ (FG): New macro.
+ (ps_emit_*): Take FIELD argument instead of WIDTH.
+
+Thu May 2 00:12:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_creation_error): New declaration.
+
+Tue Apr 30 18:54:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): New function (was ps_fmt_create).
+ (ps_fmt_create): Call _fmt_create.
+ (ps_fmt_creation_error): New function.
+
+ * spec.c (ps_emit_past_time): Implement.
+
+Mon Apr 29 12:59:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_seconds): Use new args to fmt_seconds.
+ (ps_emit_minutes): Use new args to fmt_minutes.
+
+Tue Apr 23 13:38:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (PSTAT_STATE_P_ATTRS): Fix names of individual flags.
+
+ * spec.c (state_shadows): If a process has no parent don't show
+ various process attributes (that are likely to be noise).
+
+Thu Apr 11 18:05:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (MIGCOMUFLAGS): Delete variable.
+
+ * spec.c (ps_emit_past_time): Return zero.
+
+Wed Mar 27 15:19:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (msg-MIGUFLAGS, term-MIGUFLAGS): Add a user prefix of `ps_'.
+ * procstat.c (proc_stat_set_flags): Use new prefix.
+ Include "ps_msg.h".
+ * tty.c (ps_tty_name): Use new prefix.
+ Include "ps_term.h".
+
+Mon Mar 25 11:35:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ...just about everything...: Get rid of mega typedefs, and just
+ use structure pointers like other hurd libraries. Other misc cleanups.
+
+ * ps.h (struct ps_fmt_specs): Add EXPANSIONS & EXPANSIONS_ALLOCED.
+ * spec.c (ps_fmt_specs_find): Use new alias expansion method.
+ (specv_find, specs_add_alias): New functions.
+
+Mon Mar 11 16:27:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (noise_write): Keep track of amount printed correctly.
+
+Sat Mar 9 15:52:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (iscntl): New macro.
+ (noise_write, noise_len): Correctly handle MAX < 0 case.
+ (noise_write): Use new arguments for flush.
+ (flush): Moved to file scope. Remove END argument and use NEW - 1.
+ (noise_write): Make T of type unsigned char * so that chars with
+ the high bit set print correctly.
+
+Thu Mar 7 19:08:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (iscntl): New macro.
+ (noise_write, noise_len, flush): New functions.
+ (ps_stream_write, _ps_stream_write_field): Use noise functions.
+
+Thu Feb 15 00:02:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (specs): Right-align the TTY column.
+
+Wed Feb 14 17:49:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (ps_stream_write): Don't screw up on negative spaces.
+
+ * proclist.c (proc_stat_list_add_pids): Add and support new return
+ parameter PROC_STATS.
+ (proc_stat_list_add_pid): Add and support new return parameter PS.
+ (proc_stat_list_add_fn_pids, proc_stat_list_add_id_fn_pids,
+ proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session, proc_stat_list_add_pgrp):
+ Add and support new return parameters PROC_STATS & NUM_PROCS.
+ * ps.h (proc_stat_list_add_pids, proc_stat_list_add_pid,
+ proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session, proc_stat_list_add_pgrp):
+ Update declarations.
+
+ * filters.c (ps_alive_filter): New variable.
+ (ps_alive_p): New function.
+ * ps.h (ps_alive_filter): New declaration.
+
+Mon Feb 12 14:34:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_wait): For rpcs, put the port first.
+
+Fri Feb 9 15:55:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct proc_stat): Add thread_wait, thread_waits, &
+ thread_waits_len fields.
+ (PSTAT_THREAD_WAIT): Renamed from PSTAT_THREAD_RPC.
+ (proc_stat_thread_wait): New macro.
+ (ps_stream_write_trunc_field): New declaration.
+ * procstat.c (fetch_procinfo, merge_procinfo): Return wait strings.
+ (summarize_thread_waits): Return both wait and rpc info.
+ (get_thread_wait): New function.
+ (proc_stat_set_flags): Support finding wait info.
+ Change occurances of PSTAT_THREAD_RPC to PSTAT_THREAD_WAIT.
+ * spec.c (specs): Change `Rpc' entry to `Wait'.
+ (ps_emit_wait): New function.
+ (ps_emit_string, ps_emit_string0): Use ps_stream_write_trunc_field.
+ (ps_get_wait): Renamed from ps_get_rpc; calling convention changed.
+ (ps_wait_getter): Renamed from ps_rpc_getter & contents changed accord.
+ (get_syscall_name, get_rpc_name): New stub functions.
+ * write.c (ps_stream_write_field): Call _ps_stream_write_field.
+ (ps_stream_write_trunc_field): New function.
+ (_ps_stream_write_field): New function, from ps_stream_write_field.
+
+Sat Feb 3 22:22:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (specs, state_shadows, ps_pid_getter,
+ ps_thread_index_getter, ps_owner_getter, ps_owner_uid_getter,
+ ps_ppid_getter, ps_pgrp_getter, ps_session_getter,
+ ps_login_col_getter, ps_num_threads_getter, ps_args_getter,
+ ps_state_getter, ps_rpc_getter, ps_vsize_getter, ps_rsize_getter,
+ ps_cur_priority_getter, ps_base_priority_getter,
+ ps_max_priority_getter, ps_usr_time_getter, ps_sys_time_getter,
+ ps_tot_time_getter, ps_rmem_frac_getter, ps_cpu_frac_getter,
+ ps_sleep_getter, ps_susp_count_getter, ps_proc_susp_count_getter,
+ ps_thread_susp_count_getter, ps_tty_getter, ps_page_faults_getter,
+ ps_cow_faults_getter, ps_pageins_getter, ps_msgs_sent_getter,
+ ps_msgs_rcvd_getter, ps_zero_fills_getter): Make const.
+ * ps.h (ps_getter_t, ps_filter_t, struct ps_filter,
+ ps_not_leader_filter, ps_ctty_filter, ps_unorphaned_filter,
+ ps_parent_filter, ps_std_fmt_specs): Make const.
+
+Mon Jan 15 16:32:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (summarize_thread_basic_info): If there are any
+ running threads, then only average priority from them.
+
+Sun Jan 14 00:24:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (state_shadows): Don't reflect a suspended thread in the
+ process state display if any thread isn't suspended.
+
+Sun Dec 24 14:24:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (installhdrsubdir): New macro (put ps.h in <>, not <hurd/>).
+
+Sat Dec 23 21:50:58 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (ps_fmt_set_output_width): New function.
+
+Fri Dec 22 12:21:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct ps_user_hooks): New structure.
+ (PSTAT_HOOK, PSTAT_USER_BASE, PSTAT_USER_MASK): New macros.
+ (struct ps_context): Add USER_HOOKS field.
+ * procstat.c (_proc_stat_free): Call user cleanup hook.
+ (proc_stat_set_flags, add_preconditions): Deal with user bits.
+ * context.c (ps_context_create): Initialize USER_HOOKS field.
+
+Thu Dec 21 12:04:24 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_get_usr_time, ps_get_sys_time, ps_get_tot_time):
+ Return a struct timeval instead of mach time_value_t.
+ (ps_cmp_times): New function.
+ (ps_emit_seconds, ps_emit_minutes): Use timefmt functions.
+ (append_fraction, sprint_long_time, ps_emit_nice_seconds): Deleted.
+ Include <timefmt.h>.
+
+ * ps.h (struct ps_fmt_spec): Add TITLE field. Renamed
+ DEFAULT_WIDTH field to WIDTH, and move to after TITLE.
+ (ps_fmt_spec_width): Renamed from ps_fmt_spec_default_width()..
+ (ps_fmt_spec_title): New macro.
+ (struct ps_fmt): Add INVAL field.
+ (ps_fmt_inval): New macro.
+ * spec.c (specs): Rearrange to use new field layout.
+
+ * fmt.c (ps_fmt_create): Use the new spec fields.
+ (ps_fmt_write_proc_stat): Support new inval field in FMT.
+
+ * spec.c (ps_fmt_specs_find): Renamed from find_ps_fmt_spec; now
+ uses a struct ps_fmt_specs instead of an array of specs.
+ (specs): Renamed from ps_std_fmt_specs;
+ (ps_std_fmt_specs): Now of type struct ps_fmt_specs, pointing to specs.
+ * ps.h (ps_fmt_specs_t): New typedef.
+ (struct ps_fmt_specs): New structure.
+ (ps_std_fmt_specs): Now of type struct ps_fmt_specs.
+ (ps_fmt_specs_find): Renamed from find_ps_fmt_spec; now uses a
+ struct ps_fmt_specs instead of an array of specs.
+ (ps_fmt_create): Now takes a ps_fmt_specs_t structure instead of
+ an array of specs.
+
+ * fmt.c (ps_fmt_create): Now takes a ps_fmt_specs_t instead of an
+ array of specs. Also fixup call to ps_fmt_specs_find().
+
+ * ps.h (struct proc_stat): Add failed and hook fields.
+ * procstat.c (proc_stat_set_flags): Support the failed field.
+ (_proc_stat_create): Initialize the failed and hook fields.
+
+Wed Dec 20 12:49:24 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_nz_int): Write `-' when the value is 0, rather
+ than mangling the output.
+
+Sun Dec 17 03:09:31 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): If there's no owner, set the
+ uid to -1 (and the owner to null), instead of failing.
+ * spec.c (ps_emit_uid): Use an int uid, and emit "-" for none.
+ (ps_emit_uname, ps_cmp_uids, ps_cmp_unames, ps_nominal_user):
+ Handle NULL users.
+
+ * filters.c (ps_not_leader_p): Renamed from ps_not_sess_leader_p.
+ (ps_not_leader_filter): Renamed from ps_not_sess_leader_filter.
+ (ps_unorphaned_p): Include login leaders as well as session leaders.
+ * ps.h (ps_not_leader_filter): Renamed from ps_not_sess_leader_filter.
+
+Sat Dec 16 23:42:27 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (proc_stat_owner_uid): New macro.
+ (PSTAT_OWNER_UID): New macro.
+ (struct proc_stat): Add owner_uid field.
+ * procstat.c (proc_stat_set_flags): Add support for PROC_OWNER_UID.
+ (add_preconditions): Add preconditions for owner_uid (& owner).
+ * spec.c (ps_owner_uid_getter): New variable.
+ (ps_get_owner_uid, ps_nominal_uid): New functions.
+ (ps_std_fmt_specs): Make "UID" use owner_uid rather than owner.
+ (own_uid): New variable (was function local).
+ * filters.c (ps_own_filter): Depend on PSTAT_OWNER_UID.
+ (ps_own_p): Account for there being no uid.
+
+Thu Nov 16 12:51:34 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (ps_stream_write_field): Trim spaces from BUF.
+
+Wed Nov 15 18:55:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_write_titles, ps_fmt_write_proc_stat,
+ proc_stat_list_fmt, ps_emit_int, ps_emit_nz_int, ps_emit_priority,
+ ps_emit_percent, ps_emit_num_blocks, ps_emit_nice_int,
+ ps_emit_nice_seconds, ps_emit_seconds, ps_emit_uid, ps_emit_uname,
+ ps_emit_string0, ps_emit_string, ps_emit_tty_name, ps_emit_state,
+ ps_stream_write, ps_stream_space, ps_stream_pad,
+ ps_stream_newline, ps_stream_write_field, ps_stream_write_int_field):
+ Use new STREAM parameter instead of old one and count.
+ (ps_stream_write): Renamed from ps_write_string.
+ (ps_stream_space): Renamed from ps_write_spaces.
+ (ps_stream_pad): Renamed from ps_write_padding.
+ (ps_stream_write_field): Renamed from ps_write_field.
+ (ps_stream_write_int_field): Renamed from ps_write_int_field.
+ (ps_stream_newline): New declaration.
+
+ * fmt.c (ps_fmt_write_titles, ps_fmt_write_proc_stat): Use new
+ write function names. Use new STREAM parameter instead of old one
+ and count.
+ * proclist.c (proc_stat_list_fmt): Ditto.
+ * spec.c (ps_emit_int, ps_emit_nz_int, ps_emit_priority,
+ ps_emit_percent, ps_emit_num_blocks, ps_emit_nice_int,
+ ps_emit_nice_seconds, ps_emit_seconds, ps_emit_uid, ps_emit_uname,
+ ps_emit_string0, ps_emit_string, ps_emit_tty_name, ps_emit_state):
+ Ditto.
+ (ps_emit_seconds): Remove leading spaces from what we print.
+
+ * write.c (ps_stream_write): Renamed from ps_write_string.
+ (ps_stream_space): Renamed from ps_write_spaces.
+ (ps_stream_pad): Renamed from ps_write_padding.
+ (ps_stream_write_field): Renamed from ps_write_field.
+ (ps_stream_write_int_field): Renamed from ps_write_int_field.
+ (ps_stream_write, ps_stream_space, ps_stream_pad,
+ ps_stream_newline, ps_stream_write_field, ps_stream_write_int_field):
+ Use new STREAM parameter instead of old one and count.
+ Use new function names.
+ (ps_stream_write, ps_stream_space): Support negative spaces.
+ (ps_stream_newline): New function.
+ (ps_stream_pad, ps_stream_write_field): Use negative spaces.
+
+Tue Nov 7 17:43:48 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_base_priority_getter, ps_cur_priority_getter,
+ ps_get_base_priority, ps_get_cur_priority): Get this info using
+ PSTAT_THREAD_BASIC instead of PSTAT_THREAD_SCHED.
+ * procstat.c (summarize_thread_basic_info): Summarize available
+ priority info too.
+ (summarize_thread_sched_info): Do max_ & depress_priority too.
+
+ * procstat.c (proc_stat_set_flags): Initialize the proc_info and
+ proc_info_size fields if they've never been set before.
+ Always update proc_getprocinfo fields, even if we already had them.
+ (add_preconditions): Correct preconditions for PSTAT_STATE.
+ (PSTAT_TEST_MSGPORT): Renamed from SHOULD_SUPPRESS_MSGPORT_FLAGS.
+ (PSTAT_USES_MSGPORT): New macro.
+ (SUPPRESS_MSGPORT_FLAGS): Use PSTAT_USES_MSGPORT, not PSTAT_MSGPORT.
+ (proc_stat_set_flags): Use PSTAT_TEST_MSGPORT.
+ (merge_procinfo): Only copy old task info if we actually had it.
+ (proc_stat_set_flags): Don't unnecessarily grab procinfo stuff.
+
+Tue Oct 31 14:03:53 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_rpc_getter): New variable.
+ (ps_get_rpc): New function.
+ (ps_std_fmt_specs): Add "RPC" entry.
+ (ps_emit_nz_int): New function.
+
+ * ps.h (PSTAT_STATE_P_LOGINLDR, PSTAT_STATE_P_WAIT,
+ PSTAT_STATE_P_GETMSG): New flags.
+ * procstat.c (add_preconditions): Don't require PSTAT_EXEC_FLAGS for
+ getting the state anymore (but do require PSTAT_{TASK,THREAD}_BASIC).
+ (proc_stat_state_tags): Update to reflect new flags.
+ (proc_stat_set_flags): Set new flags.
+
+ * procstat.c (PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): New macros.
+ (fetch_procinfo, merge_procinfo): New functions.
+ (SHOULD_SUPPRESS_MSGPORT_FLAGS): Change to use more accurate flags.
+ (should_suppress_msgport): Use new fields.
+ (summarize_thread_basic_info, summarize_thread_sched_info,
+ summarize_thread_states, summarize_thread_rpcs, count_threads):
+ New functions.
+ (proc_stat_set_flags): Support the new division of PSTAT_INFO into
+ individual flags, and support getting thread information by
+ using the thread's origin proc_stat.
+ (_proc_stat_free): Free the thread_basic_info and
+ thread_sched_info fields if necessary.
+ (proc_stat_thread_create): Don't require that the source process
+ have thread information around; it will be fetched later if necessary.
+
+ * spec.c (ps_ppid_getter, ps_pgrp_getter, ps_session_getter,
+ ps_login_col_getter): Use PSTAT_PROC_INFO, not PSTAT_INFO.
+ (ps_get_ppid, ps_get_pgrp, ps_get_session, ps_get_login_col): Use
+ proc_stat_proc_info, not proc_stat_info.
+ (ps_vsize_getter, ps_rsize_getter, ps_rmem_frac_getter,
+ ps_proc_susp_count_getter): Use PSTAT_TASK_BASIC, not PSTAT_INFO.
+ (ps_get_vsize, ps_get_rsize, ps_get_rmem_frac, ps_get_proc_susp_count):
+ Use proc_stat_task_basic_info, not proc_stat_info.
+ (ps_cur_priority_getter, ps_base_priority_getter,
+ ps_max_priority_getter): Use PSTAT_THREAD_SCHED, not PSTAT_THREAD_INFO.
+ (ps_usr_time_getter, ps_sys_time_getter, ps_tot_time_getter,
+ ps_cpu_frac_getter, ps_sleep_getter):
+ Use PSTAT_THREAD_BASIC, not PSTAT_THREAD_INFO.
+
+ * filters.c (ps_own_filter): Use PSTAT_PROC_INFO, not PSTAT_INFO.
+ (ps_own_p): Use proc_stat_proc_info, not proc_stat_info.
+
+ * ps.h (proc_stat_num_threads): Use the num_threads field.
+ (proc_stat_thread_sched_info, proc_stat_thread_basic_info): Don't
+ take the address, now that the fields used are pointers themselves.
+ (proc_stat_thread_rpc, proc_stat_task_basic_info): New macros.
+ (proc_stat_proc_info): Renamed from proc_stat_info.
+ (PSTAT_PROC_INFO): Renamed from PSTAT_INFO.
+ (PSTAT_TASK_BASIC, PSTAT_THREAD_BASIC, PSTAT_THREAD_SCHED,
+ PSTAT_THREAD_RPC): New macros.
+ (struct proc_stat): info & info_len --> proc_info & proc_info_len.
+ Add the num_threads, task_basic_info, and thread_rpc fields.
+ thread_basic_info & thread_sched_info are now pointers.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Specify shared library dependencies.
+
+Fri Aug 25 18:55:51 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h (ps_std_fmt_specs): Declare extern.
+
+Wed Aug 23 15:04:51 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Just put the migs stubs directly in here.
+ (REMHDRS, MIGSTUBS): Removed.
+
+Sat Aug 19 11:49:06 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Actually set the P_STOP bit.
+
+Fri Aug 18 16:43:41 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h (PSTAT_STATE_*): All proc state flags reorganized and
+ renamed to PSTAT_STATE_P_* for process-global bits, and
+ PSTAT_STATE_T_* for per-thread bits.
+ * procstat.c (proc_stat_state_tags): Reordered to reflect the new
+ ordering of the state bits.
+ (thread_state, proc_stat_set_flags): Use the new state bits.
+ * spec.c (ps_emit_state): Rearrange things to reflect the new
+ state bits.
+ (state_shadows): New variable.
+ (ps_emit_state): Use the state_shadows list to turn off some states.
+ * filters.c (ps_not_sess_leader_p, ps_unorphaned_p, ps_parent_p):
+ Use the new state bits.
+
+Sat Jul 8 13:34:20 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * tty.c (ps_tty_short_name): That assignment around which extra
+ parents were put was actually supposed to be a test! Make it so...
+
+Thu Jul 6 22:25:20 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * tty.c (ps_tty_short_name): Put extra parens around assignment
+ inside if test.
+
+Thu Jul 6 15:36:04 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile: Remove include dependencies.
+
+Thu Jun 29 15:29:05 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile (REMHDRS): New variable.
+ ($(OBJS)): depend on ../libihash/ihash.h.
+ * ps.h: Include hurd/ihash.h instead of ihash.h.
+
+Wed May 31 13:09:04 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fmt.c (ps_fmt_create): Don't mutate the format spec name in the
+ fmt_spec list we're passed just to get correctly capitalized
+ titles. Instead, do things correctly by making enough room to
+ store our own version of the title string, which we can do with
+ what we please.
+
+ * ps.h (ps_own_filter, ps_not_sess_leader_filter, ps_ctty_filter,
+ ps_unorphaned_filter, ps_parent_filter): Declare these as extern
+ so that the linker will bring in the initialized version (it's not
+ doing so otherwise may be a bug).
+
+Thu May 4 20:01:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): If a msg port call times out,
+ disable use of that msg port.
+ * Makefile (MIGSTUBS, term-MIGUFLAGS, msg-MIGUFLAGS): Compile our
+ own msg & term user stubs to add msg timeouts.
+
+Wed May 3 11:32:52 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_for_each): New function for iterating
+ over proc_stat_lists.
+ (proc_stat_list_spec_nominal): New function for deciding if a
+ particular spec is always nominal.
+ * ps.h: Add entries for proc_stat_list_for_each and
+ proc_stat_list_spec_nominal.
+
+ * fmt.c (ps_fmt_squash, ps_fmt_squash_flags): Recalculate the set
+ of ps flags needed by the fmt in ps_fmt_squash.
+
+Tue May 2 12:25:57 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_squash): Rename to ps_fmt_squash_flags.
+ * fmt.c (ps_fmt_squash, ps_fmt_squash_flags): Rename ps_fmt_squash to
+ ps_fmt_squash_flags, moving most of the guts into a new more
+ general ps_fmt_squash, which is usable for other things than flags.
+
+ * ps.h (struct ps_fmt_spec): Add the nominal_fn field, which will
+ be used to decide whether values are `unexciting'.
+ * spec.c (ps_std_fmt_specs): Add values for the nominal_fn field.
+ (ps_nominal_zint, ps_nominal_user, ps_nominal_pri, ps_nominal_nth):
+ Possible nominal funs.
+
+ * ps.h (struct proc_stat): Add the suspend_count field, along with
+ PSTAT_SUSPEND_COUNT, and proc_stat_suspend_count(ps).
+ * procstat.c (proc_stat_set_flags, add_preconditions): Add support for
+ the suspend_count field.
+ * spec.c (ps_std_fmt_specs): Add the Susp (task/thread suspend count),
+ PSusp (task suspend count), and TSusp (thread suspend count) output
+ specs.
+
+ * procstat.c (add_preconditions): A new function that calculates inter-
+ flag dependencies; code moved here from from proc_stat_set_flags.
+ (should_suppress_msgport): A new function that returns true when
+ there's some condition indicating that we shouldn't use a process's msg
+ port.
+ (proc_stat_set_flags): Avoid using a process's msg port when it may be
+ unusable.
+
+ * ps.h (PSTAT_STATE_FORKED): A new flag to replace PSTAT_STATE_EXECED;
+ we want to the flags to mark exceptional conditions, and this is rarer.
+ * procstat.c (proc_stat_set_flags): Set PSTAT_STATE_FORKED instead of
+ PSTAT_STATE_EXECED.
+ (proc_stat_state_tags): Change the user state letter to "f" from "e".
+
+Sun Apr 23 15:38:39 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile: Set libname.
+
+Fri Apr 7 11:12:15 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_sort1): Always keep threads after their
+ process when sorting!
+
+ * spec.c (ps_emit_state): If a process is marked as stopped, then
+ don't mention sleeping or idle threads' status (as that's presumably
+ the signal thread).
+
+ * ps.h: Add decls for proc_stat_list_add_pgrp & ps_tty_short_name.
+
+ * proclist.c (proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session): Move most of the functionality into
+ proc_stat_list_add_[id_]fn_pids.
+ (proc_stat_list_add_pgrp): New function, adds pids for a pgrp.
+
+ * tty.c (ps_tty_short_name): New function; functionality used to be in
+ spec.c
+ (ps_tty_create, ps_tty_free): Add short_name fields.
+ * spec.c (ps_emit_tty_name): Move guts into into ps_tty_short_name.
+
+ * Just about everything: tighten up types used (i.e., don't use int
+ for everything).
+
+Wed Apr 5 22:42:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * spec.c (ps_std_fmt_specs): Add the `Arg0' spec, which is the
+ same as `Args', but only prints the first one. Change MsgsIn
+ and MsgsOut to MsgIn and MsgOut.
+
+Tue Apr 4 20:13:55 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h: Add the PSTAT_NO_MSGPORT flag, which when set disables any
+ use of the process's message port.
+ * procstat.c (proc_stat_set_flags): If PSTAT_NO_MSGPORT is set,
+ don't use the msg port.
+
+Wed Mar 29 15:36:43 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Don't barf if a process has
+ zero threads.
+
+Tue Mar 28 10:33:08 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * ps.h: Add the exec_flags field to the proc_stat structure, and
+ add PSTAT_STATE_TRACED.
+ * procstat.c (proc_stat_set_flags): Add support for the exec_flags
+ field, and make the state bits calculation use that to support the
+ PSTAT_STATE_TRACED bit.
+
+Mon Mar 20 20:51:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * user.c (ps_user_passwd) [COUNT, COPY]: Use `if' statement.
+ * spec.c (ps_emit_num_blocks): Use int format for int arg.
+ (sprint_frac_value): Likewise.
+ * write.c (ps_write_int_field): Likewise.
+ * host.c (ps_host_basic_info): Cast third arg to host_info.
+ (ps_host_sched_info): Likewise.
+ (ps_host_load_info): Likewise.
+
+ * filters.c: Include <unistd.h>.
+ * context.c: Include <hurd/term.h>.
+ * tty.c: Likewise.
+ * spec.c: Include <string.h>.
+ * procstat.c: Likewise.
+
+ * host.c: Don't include "pshost.h".
+ * spec.c: Likewise.
+
+ * ps.h: Include <errno.h>.
+ (ps_get_host, ps_host_basic_info, ps_host_sched_info,
+ ps_host_load_info): Copied here from pshost.h.
+ (ps_write_string, ps_write_spaces, ps_write_padding,
+ ps_write_field, ps_write_int_field): Copied here from pswrite.h
+ * pshost.h, pswrite.h: Delete files.
+
+ * New ChangeLog, moved into canonical directory structure.
+ Old ChangeLog is in .../hurd/utils/ps.ChangeLog.
+