CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Thu Dec 14 07:18:44 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: avoid crashes when proc_from_thread() returns NULL. XXX: pullup-10, ... To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Thu Dec 14 07:18:44 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: avoid crashes when proc_from_thread() returns NULL. XXX: pullup-10, ... To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.28 src/external/bsd/top/dist/machine/m_netbsd.c:1.29 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.28 Sun Oct 22 14:44:09 2023 +++ src/external/bsd/top/dist/machine/m_netbsd.c Thu Dec 14 07:18:44 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.29 2023/12/14 07:18:44 mrg Exp $ */ /* * top - a top users display for Unix @@ -45,12 +45,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $ + * $Id: m_netbsd.c,v 1.29 2023/12/14 07:18:44 mrg Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.29 2023/12/14 07:18:44 mrg Exp $"); #endif #include @@ -825,18 +825,20 @@ get_lwp_info(struct system_info *si, str * status field. threads with L_SYSTEM set are system * threads---these get ignored unless show_sysprocs is set. */ - if (lp->l_stat != 0 && (show_system || ((lp->l_flag & LW_SYSTEM) == 0))) { + if (lp->l_stat != 0 && + (show_system || ((lp->l_flag & LW_SYSTEM) == 0))) { total_lwps++; process_states[(unsigned char) lp->l_stat]++; if (lp->l_stat != LSZOMB && (show_idle || (lp->l_pctcpu != 0) || - (lp->l_stat == LSRUN || lp->l_stat == LSONPROC)) && + (lp->l_stat == LSRUN || lp->l_stat == LSONPROC)) && (!show_uid || uid_from_thread(lp) == sel->uid) && (!show_command || - strstr(get_command(sel, proc_from_thread(lp)), - show_command) != NULL)) { - *lrefp++ = lp; - active_lwps++; + ((pp = proc_from_thread(lp)) != NULL && + strstr(get_command(sel, pp), + show_command) != NULL))) { +*lrefp++ = lp; +active_lwps++; } } } @@ -1215,6 +1217,8 @@ compare_pid(pp1, pp2) struct kinfo_lwp *l2 = *(struct kinfo_lwp **) pp2; struct kinfo_proc2 *p1 = proc_from_thread(l1); struct kinfo_proc2 *p2 = proc_from_thread(l2); + if (p1 == NULL || p2 == NULL) + return -1; return p2->p_pid - p1->p_pid; } else { struct kinfo_proc2 *p1 = *(struct kinfo_proc2 **) pp1; @@ -1232,6 +1236,8 @@ compare_command(pp1, pp2) struct kinfo_lwp *l2 = *(struct kinfo_lwp **) pp2; struct kinfo_proc2 *p1 = proc_from_thread(l1); struct kinfo_proc2 *p2 = proc_from_thread(l2); + if (p1 == NULL || p2 == NULL) + return -1; return strcmp(p2->p_comm, p1->p_comm); } else { struct kinfo_proc2 *p1 = *(struct kinfo_proc2 **) pp1; @@ -1249,6 +1255,8 @@ compare_username(pp1, pp2) struct kinfo_lwp *l2 = *(struct kinfo_lwp **) pp2; struct kinfo_proc2 *p1 = proc_from_thread(l1); struct kinfo_proc2 *p2 = proc_from_thread(l2); + if (p1 == NULL || p2 == NULL) + return -1; return strcmp(p2->p_login, p1->p_login); } else { struct kinfo_proc2 *p1 = *(struct kinfo_proc2 **) pp1;
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: simonb Date: Sun Oct 22 14:44:09 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Remove extraneous comma after pool info To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: simonb Date: Sun Oct 22 14:44:09 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Remove extraneous comma after pool info To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.27 src/external/bsd/top/dist/machine/m_netbsd.c:1.28 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.27 Sat Oct 21 06:30:23 2023 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sun Oct 22 14:44:09 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $ */ /* * top - a top users display for Unix @@ -45,12 +45,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $ + * $Id: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.28 2023/10/22 14:44:09 simonb Exp $"); #endif #include @@ -179,7 +179,7 @@ const char *memorynames[] = { long swap_stats[9]; const char *swapnames[] = { - "K Total, ", "K Used, ", "K Free ", " Pools: ", "K Used, ", + "K Total, ", "K Used, ", "K Free ", " Pools: ", "K Used ", " Network: ", "K In, ", "K Out, ", NULL };
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Sat Oct 21 06:30:23 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: top: add network in & out bytes to the top display. inspired by the macos top(1). the first value displayed is the total in/out bytes since boot, but each update is the amount since the prior update. the new fetching code heavily based upon netstat/if.c. old version: Swap: 128G Total, 128G Free / Pools: 13G Used new version: Swap: 128G Total, 128G Free / Pools: 13G Used, / Network: 26M In, 804K Out update the list of people who have contributed to m_netbsd.c. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Sat Oct 21 06:30:23 UTC 2023 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: top: add network in & out bytes to the top display. inspired by the macos top(1). the first value displayed is the total in/out bytes since boot, but each update is the amount since the prior update. the new fetching code heavily based upon netstat/if.c. old version: Swap: 128G Total, 128G Free / Pools: 13G Used new version: Swap: 128G Total, 128G Free / Pools: 13G Used, / Network: 26M In, 804K Out update the list of people who have contributed to m_netbsd.c. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.26 src/external/bsd/top/dist/machine/m_netbsd.c:1.27 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.26 Fri Jul 15 06:39:06 2022 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sat Oct 21 06:30:23 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $ */ /* * top - a top users display for Unix @@ -20,6 +20,14 @@ * and should work for: * NetBSD-2.0 (when released) * - + * NetBSD-4.0 updates from Christos Zoulas. + * NetBSD-5.0 updates from Andrew Doran, Mindaugas Rasiukevicius and + * Christos Zoulas. + * NetBSD-6.0 updates from matthew green, Christos Zoulas, and + * Mindaugas Rasiukevicius. + * NetBSD-8 updates from Leonardo Taccari. + * NetBSD-10 updates from Christos Zoulas and matthew green. + * * top does not need to be installed setuid or setgid with this module. * * LIBS: -lkvm @@ -37,12 +45,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $ + * $Id: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.27 2023/10/21 06:30:23 mrg Exp $"); #endif #include @@ -50,6 +58,9 @@ __RCSID("$NetBSD: m_netbsd.c,v 1.26 2022 #include #include #include +#include + +#include #include @@ -166,9 +177,10 @@ const char *memorynames[] = { NULL }; -long swap_stats[6]; +long swap_stats[9]; const char *swapnames[] = { "K Total, ", "K Used, ", "K Free ", " Pools: ", "K Used, ", + " Network: ", "K In, ", "K Out, ", NULL }; @@ -445,11 +457,60 @@ format_header(char *uname_field) return(header); } +static void +get_network_kilobytes(long *kb_in, long *kb_out) +{ + struct if_msghdr *ifm; + int mib[6] = { CTL_NET, AF_ROUTE, 0, 0, NET_RT_IFLIST, 0 }; + struct rt_msghdr *rtm; + struct if_data *ifd = NULL; + static char *buf = NULL; + static size_t olen; + char *next, *lim; + size_t len; + static uint64_t last_bytes_in; + static uint64_t last_bytes_out; + uint64_t cur_bytes_in = 0; + uint64_t cur_bytes_out = 0; + + if (sysctl(mib, 6, NULL, , NULL, 0) == -1) + err(1, "sysctl"); + if (len > olen) { + free(buf); + if ((buf = malloc(len)) == NULL) + err(1, NULL); + olen = len; + } + if (sysctl(mib, 6, buf, , NULL, 0) == -1) + err(1, "sysctl"); + + lim = buf + len; + for (next = buf; next < lim; next += rtm->rtm_msglen) { + rtm = (struct rt_msghdr *)next; + if (rtm->rtm_version != RTM_VERSION) + continue; + switch (rtm->rtm_type) { + case RTM_IFINFO: + ifm = (struct if_msghdr *)next; + ifd = >ifm_data; + + cur_bytes_in += ifd->ifi_ibytes; + cur_bytes_out += ifd->ifi_obytes; + break; + } + } + + *kb_in = (cur_bytes_in - last_bytes_in) / 1024; + *kb_out = (cur_bytes_out - last_bytes_out) / 1024; + last_bytes_in = cur_bytes_in; + last_bytes_out = cur_bytes_out; +} + void get_system_info(struct system_info *si) { size_t ssize; - int mib[2]; + int mib[6]; struct uvmexp_sysctl uvmexp; struct swapent *sep; u_int64_t totalsize, totalinuse; @@ -531,8 +592,10 @@ get_system_info(struct system_info *si) swap_stats[4] = pagetok(uvmexp.poolpages); + get_network_kilobytes(_stats[6], _stats[7]); + memory_stats[6] = -1; - swap_stats[3] = swap_stats[5] = -1; + swap_stats[3] = swap_stats[5] = swap_stats[8] = -1; /* set arrays and strings */ si->cpustates = cpu_states;
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Fri Jul 15 06:39:06 UTC 2022 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: add pool usage to the output, sharing the line with swap data. looks like, eg: Swap: 64G Total, 135M Used, 64G Free / Pools: 16G Used future work: figure out the utilisation percentage like vmstat -m To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.25 src/external/bsd/top/dist/machine/m_netbsd.c:1.26 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.25 Fri Apr 16 13:02:47 2021 +++ src/external/bsd/top/dist/machine/m_netbsd.c Fri Jul 15 06:39:06 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $ + * $Id: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.26 2022/07/15 06:39:06 mrg Exp $"); #endif #include @@ -166,9 +166,9 @@ const char *memorynames[] = { NULL }; -long swap_stats[4]; +long swap_stats[6]; const char *swapnames[] = { - "K Total, ", "K Used, ", "K Free, ", + "K Total, ", "K Used, ", "K Free ", " Pools: ", "K Used, ", NULL }; @@ -529,8 +529,10 @@ get_system_info(struct system_info *si) swap_stats[2] = dbtob(totalsize) / 1024 - swap_stats[1]; } while (0); + swap_stats[4] = pagetok(uvmexp.poolpages); + memory_stats[6] = -1; - swap_stats[3] = -1; + swap_stats[3] = swap_stats[5] = -1; /* set arrays and strings */ si->cpustates = cpu_states;
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: mrg Date: Fri Jul 15 06:39:06 UTC 2022 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: add pool usage to the output, sharing the line with swap data. looks like, eg: Swap: 64G Total, 135M Used, 64G Free / Pools: 16G Used future work: figure out the utilisation percentage like vmstat -m To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 16 13:02:47 UTC 2021 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: go back to right-aligning the titles for CPU and WCPU. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.24 src/external/bsd/top/dist/machine/m_netbsd.c:1.25 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.24 Sat Apr 3 15:25:38 2021 +++ src/external/bsd/top/dist/machine/m_netbsd.c Fri Apr 16 09:02:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $ + * $Id: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.25 2021/04/16 13:02:47 christos Exp $"); #endif #include @@ -103,14 +103,14 @@ struct handle { */ static char Proc_header[] = - " PID XPRI NICE SIZE RES STATE TIME WCPU CPU COMMAND"; + " PID XPRI NICE SIZE RES STATE TIME WCPUCPU COMMAND"; /* 0123456 -- field to fill in starts at header+6 */ #define PROC_UNAME_START 6 #define Proc_format \ "%5d %-8.8s %3d %4d%7s %5s %-9.9s%7s %5.*f%% %5.*f%% %s" static char Thread_header[] = - " PID LID XPRI STATE TIME WCPU CPU NAME COMMAND"; + " PID LID XPRI STATE TIME WCPUCPU NAME COMMAND"; /* 0123456 -- field to fill in starts at header+6 */ #define THREAD_UNAME_START 12 #define Thread_format \
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 16 13:02:47 UTC 2021 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: go back to right-aligning the titles for CPU and WCPU. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Sat Apr 3 19:25:38 UTC 2021 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: - Bump field width for state to accommodate > 9 CPUs - When star formatting to adjust the width, count the trailing number of digits starting backwards instead of using strcspn because the lwp name might contain other digits like wm0TxRx/10. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.23 src/external/bsd/top/dist/machine/m_netbsd.c:1.24 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.23 Sat Apr 27 10:10:01 2019 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sat Apr 3 15:25:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $ + * $Id: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.24 2021/04/03 19:25:38 christos Exp $"); #endif #include @@ -57,6 +57,7 @@ __RCSID("$NetBSD: m_netbsd.c,v 1.23 2019 #include #include #include +#include #include #include #include @@ -102,18 +103,18 @@ struct handle { */ static char Proc_header[] = - " PID XPRI NICE SIZE RES STATE TIME WCPUCPU COMMAND"; + " PID XPRI NICE SIZE RES STATE TIME WCPU CPU COMMAND"; /* 0123456 -- field to fill in starts at header+6 */ #define PROC_UNAME_START 6 #define Proc_format \ - "%5d %-8.8s %3d %4d%7s %5s %-8.8s%7s %5.*f%% %5.*f%% %s" + "%5d %-8.8s %3d %4d%7s %5s %-9.9s%7s %5.*f%% %5.*f%% %s" static char Thread_header[] = - " PID LID XPRI STATE TIME WCPUCPU NAME COMMAND"; + " PID LID XPRI STATE TIME WCPU CPU NAME COMMAND"; /* 0123456 -- field to fill in starts at header+6 */ #define THREAD_UNAME_START 12 #define Thread_format \ -"%5d %5d %-8.8s %3d %-8.8s%7s %5.2f%% %5.2f%% %-9.9s %s" +"%5d %5d %-8.8s %3d %-9.9s%7s %5.2f%% %5.2f%% %-9.9s %s" /* * Process state names for the "STATE" column of the display. @@ -879,19 +880,25 @@ format_next_proc(caddr_t handle, char *( } static char * -countable(char *p, size_t l) +countable(char *p, size_t width) { - static const char digits[] = "0123456789"; - size_t first = strcspn(p, digits); // non digits - size_t last = strspn(p + first, digits); // trailing digits - size_t len = first + last; - if (p[len] || last == 0) // should be total and must have digits + size_t len = strlen(p); + if (len < width) { // shorter than width, ok return p; - if (len < l) // if shorter, done + } + size_t first, last = len - 1; + for (first = len - 1; isdigit((unsigned char)p[first]); first--) { + continue; + } + if (first == len - 1) { // no digits, ok return p; - if (l < last + 1) // if not enough for digits, done + } + first++; + last = len - first; + if (width < last + 1) { // if not enough for digits, done return p; - size_t start = l - last - 1; // compute starting point + } + size_t start = width - last - 1; // compute starting point p[start] = '*'; // put a star memmove(p + start + 1, p + first, last + 1); // move digits and NUL return p;
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Sat Apr 3 19:25:38 UTC 2021 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: - Bump field width for state to accommodate > 9 CPUs - When star formatting to adjust the width, count the trailing number of digits starting backwards instead of using strcspn because the lwp name might contain other digits like wm0TxRx/10. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: mrg Date: Sun Oct 13 07:42:27 UTC 2019 Modified Files: src/external/bsd/top/dist: utils.c Log Message: expand a buffer size to properly handle full-size 64 bit values To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/bsd/top/dist/utils.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/utils.c diff -u src/external/bsd/top/dist/utils.c:1.5 src/external/bsd/top/dist/utils.c:1.6 --- src/external/bsd/top/dist/utils.c:1.5 Sat Aug 27 18:48:30 2016 +++ src/external/bsd/top/dist/utils.c Sun Oct 13 07:42:27 2019 @@ -611,7 +611,7 @@ char * format_k(long amt) { -static char retarray[NUM_STRINGS][16]; +static char retarray[NUM_STRINGS][24]; static int idx = 0; register char *ret; register char tag = 'K';
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: mrg Date: Sun Oct 13 07:42:27 UTC 2019 Modified Files: src/external/bsd/top/dist: utils.c Log Message: expand a buffer size to properly handle full-size 64 bit values To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/bsd/top/dist/utils.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Sat Apr 27 14:10:01 UTC 2019 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: simplify and explain To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.22 src/external/bsd/top/dist/machine/m_netbsd.c:1.23 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.22 Fri Apr 26 15:39:19 2019 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sat Apr 27 10:10:01 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $ + * $Id: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.23 2019/04/27 14:10:01 christos Exp $"); #endif #include @@ -882,19 +882,18 @@ static char * countable(char *p, size_t l) { static const char digits[] = "0123456789"; - size_t first = strcspn(p, digits); - size_t last = strspn(p + first, digits); - size_t len = first + last; - if (p[len] || last == 0) + size_t first = strcspn(p, digits); // non digits + size_t last = strspn(p + first, digits); // trailing digits + size_t len = first + last; + if (p[len] || last == 0) // should be total and must have digits return p; - if (len < l) + if (len < l) // if shorter, done return p; - if (l < last + 1) + if (l < last + 1) // if not enough for digits, done return p; - size_t start = l - last - 1; - p[start] = '*'; - memmove(p + start + 1, p + first, len - first); - p[l] = '\0'; + size_t start = l - last - 1; // compute starting point + p[start] = '*'; // put a star + memmove(p + start + 1, p + first, last + 1); // move digits and NUL return p; }
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Sat Apr 27 14:10:01 UTC 2019 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: simplify and explain To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 26 19:39:19 UTC 2019 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: for "countable" lwp names, try to display name* instead of truncating. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.21 src/external/bsd/top/dist/machine/m_netbsd.c:1.22 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.21 Tue Oct 30 17:15:09 2018 +++ src/external/bsd/top/dist/machine/m_netbsd.c Fri Apr 26 15:39:19 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.21 2018/10/30 21:15:09 kre Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.21 2018/10/30 21:15:09 kre Exp $ + * $Id: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.21 2018/10/30 21:15:09 kre Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.22 2019/04/26 19:39:19 christos Exp $"); #endif #include @@ -879,6 +879,26 @@ format_next_proc(caddr_t handle, char *( } static char * +countable(char *p, size_t l) +{ + static const char digits[] = "0123456789"; + size_t first = strcspn(p, digits); + size_t last = strspn(p + first, digits); + size_t len = first + last; + if (p[len] || last == 0) + return p; + if (len < l) + return p; + if (l < last + 1) + return p; + size_t start = l - last - 1; + p[start] = '*'; + memmove(p + start + 1, p + first, len - first); + p[l] = '\0'; + return p; +} + +static char * format_next_lwp(caddr_t handle, char *(*get_userid)(int)) { struct kinfo_proc2 *pp; @@ -946,7 +966,7 @@ format_next_lwp(caddr_t handle, char *(* format_time(cputime), 100.0 * weighted_cpu(l_, pct, pl), 100.0 * pct, - printable(pl->l_name), + countable(printable(pl->l_name), 9), get_command(hp->sel, pp)); /* return the result */
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 26 19:39:19 UTC 2019 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: for "countable" lwp names, try to display name* instead of truncating. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: maya Date: Mon Nov 5 17:44:09 UTC 2018 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Fix typo s/fron/from/ >From dfive on freenode, thanks! To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: maya Date: Mon Nov 5 17:44:09 UTC 2018 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Fix typo s/fron/from/ >From dfive on freenode, thanks! To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.11 src/external/bsd/top/dist/top.1.in:1.12 --- src/external/bsd/top/dist/top.1.in:1.11 Sun Aug 26 21:31:34 2018 +++ src/external/bsd/top/dist/top.1.in Mon Nov 5 17:44:09 2018 @@ -4,7 +4,7 @@ .nr D @DEFAULT_DELAY@ .nr L @HAVE_GETOPT_LONG@ .nr K @ENABLE_KILL@ -.TH TOP 1 "August 26, 2018" +.TH TOP 1 "November 5, 2018" .UC 4 .SH NAME top \- display and update information about the top cpu processes @@ -294,7 +294,7 @@ Change the number of processes to displa .TP .B o Change the order in which the display is sorted. This command is not -available on all systems. The sort key names vary fron system to system +available on all systems. The sort key names vary from system to system but usually include: \*(lqcpu\*(rq, \*(lqres\*(rq, \*(lqsize\*(rq, \*(lqtime\*(rq. The default is cpu. .TP
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sevan Date: Sun Aug 26 21:31:34 UTC 2018 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Document the WCPU field. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.10 src/external/bsd/top/dist/top.1.in:1.11 --- src/external/bsd/top/dist/top.1.in:1.10 Thu Jan 12 18:37:09 2017 +++ src/external/bsd/top/dist/top.1.in Sun Aug 26 21:31:34 2018 @@ -4,7 +4,7 @@ .nr D @DEFAULT_DELAY@ .nr L @HAVE_GETOPT_LONG@ .nr K @ENABLE_KILL@ -.TH TOP 1 "December 28, 2016" +.TH TOP 1 "August 26, 2018" .UC 4 .SH NAME top \- display and update information about the top cpu processes @@ -399,6 +399,9 @@ Current state (typically one of \*(lqsle .B TIME Number of system and user cpu seconds that the process has used. .TP +.B WCPU +Weighted percentage of available cpu time used by this process. +.TP .B CPU Percentage of available cpu time used by this process. .TP
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sevan Date: Sun Aug 26 21:31:34 UTC 2018 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Document the WCPU field. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: snj Date: Wed Jun 6 02:12:47 UTC 2018 Modified Files: src/external/bsd/top/dist: commands.c Log Message: rats in my attic, mice in my top. i've had enough of these damn rodents. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/top/dist/commands.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/commands.c diff -u src/external/bsd/top/dist/commands.c:1.7 src/external/bsd/top/dist/commands.c:1.8 --- src/external/bsd/top/dist/commands.c:1.7 Fri Mar 23 14:46:05 2012 +++ src/external/bsd/top/dist/commands.c Wed Jun 6 02:12:47 2018 @@ -508,7 +508,7 @@ renice_procs(char *str) /* move to the first process number */ if ((str = next_field(str)) == NULL) { - message_error(" remice: no processes specified"); + message_error(" renice: no processes specified"); return; }
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: snj Date: Wed Jun 6 02:12:47 UTC 2018 Modified Files: src/external/bsd/top/dist: commands.c Log Message: rats in my attic, mice in my top. i've had enough of these damn rodents. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/top/dist/commands.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
re: CVS commit: src/external/bsd/top/dist
Christos Zoulas writes: > On Jun 2, 7:36pm, li...@eitanadler.com (Eitan Adler) wrote: > -- Subject: Re: CVS commit: src/external/bsd/top/dist > > | I don't mind reverting this: it came out of a discussion on IRC. That > | said, perhaps "cd /tmp" would resolve both issues? > > This is a 3rd party program that behaves everywhere the same way; > changing it for NetBSD will just produce unexpected results for > the user: How will I even know to cd to /tmp to look for the core? > As I said, if you want it to run from a different directory, wrap > it in a shell script or use an alias. These user-specific customizations > don't belong in a general purpose program. It is a slippery slope > to start making programs behave in random ways just because it is > convenient for some uses. For example, I've never needed top to > chdir before it grew a 'machine' subdirectory to fix the mess of > ifdefs it required to run on multiple OS's. Are you planning to > change vmstat to do the same? iostat? systat? Why not? These changes > don't make sense (to me). yeah - you're right about what we should do here and i'm ok that the revert happened. ... but we should probably keep that part that removes the chdir("/tmp") right before calling exit(). .mrg.
Re: CVS commit: src/external/bsd/top/dist
On 03/06/2018 05:10, Christos Zoulas wrote: > On Jun 2, 7:36pm, li...@eitanadler.com (Eitan Adler) wrote: > -- Subject: Re: CVS commit: src/external/bsd/top/dist > > | I don't mind reverting this: it came out of a discussion on IRC. That > | said, perhaps "cd /tmp" would resolve both issues? > > This is a 3rd party program that behaves everywhere the same way; > changing it for NetBSD will just produce unexpected results for > the user: How will I even know to cd to /tmp to look for the core? > As I said, if you want it to run from a different directory, wrap > it in a shell script or use an alias. These user-specific customizations > don't belong in a general purpose program. It is a slippery slope > to start making programs behave in random ways just because it is > convenient for some uses. For example, I've never needed top to > chdir before it grew a 'machine' subdirectory to fix the mess of > ifdefs it required to run on multiple OS's. Are you planning to > change vmstat to do the same? iostat? systat? Why not? These changes > don't make sense (to me). I agree with Christos here. Cheers, -- khorben
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: eadler Date: Sun Jun 3 05:29:27 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: top(1): revert 1.11 This change breaks the expectations of users that would like a coredump of top(1). Other similar applications such as vmstat(1) don't do this. Since the change was just a courtesy, revert. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.c diff -u src/external/bsd/top/dist/top.c:1.11 src/external/bsd/top/dist/top.c:1.12 --- src/external/bsd/top/dist/top.c:1.11 Sat Jun 2 22:30:19 2018 +++ src/external/bsd/top/dist/top.c Sun Jun 3 05:29:27 2018 @@ -119,6 +119,7 @@ quit(int status) { screen_end(); +chdir("/tmp"); exit(status); /* NOTREACHED */ } @@ -725,16 +726,6 @@ main(int argc, char *argv[]) struct statics statics; globalstate *gstate; -/* - * Since top(1) is often long running and - * doesn't typically care about where its running from - * chdir to the root to allow unmounting of its - * original wd. Failure is alright as this is - * just a courtesy for users. - */ -chdir("/"); - - /* get our name */ if (argc > 0) {
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: eadler Date: Sun Jun 3 05:29:27 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: top(1): revert 1.11 This change breaks the expectations of users that would like a coredump of top(1). Other similar applications such as vmstat(1) don't do this. Since the change was just a courtesy, revert. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Re: CVS commit: src/external/bsd/top/dist
On Jun 2, 7:36pm, li...@eitanadler.com (Eitan Adler) wrote: -- Subject: Re: CVS commit: src/external/bsd/top/dist | I don't mind reverting this: it came out of a discussion on IRC. That | said, perhaps "cd /tmp" would resolve both issues? This is a 3rd party program that behaves everywhere the same way; changing it for NetBSD will just produce unexpected results for the user: How will I even know to cd to /tmp to look for the core? As I said, if you want it to run from a different directory, wrap it in a shell script or use an alias. These user-specific customizations don't belong in a general purpose program. It is a slippery slope to start making programs behave in random ways just because it is convenient for some uses. For example, I've never needed top to chdir before it grew a 'machine' subdirectory to fix the mess of ifdefs it required to run on multiple OS's. Are you planning to change vmstat to do the same? iostat? systat? Why not? These changes don't make sense (to me). christos
Re: CVS commit: src/external/bsd/top/dist
On 2 June 2018 at 18:51, Christos Zoulas wrote: > In article <20180602223020.16462f...@cvs.netbsd.org>, > Eitan Adler wrote: >>-=-=-=-=-=- >> >>Module Name: src >>Committed By: eadler >>Date: Sat Jun 2 22:30:20 UTC 2018 >> >>Modified Files: >> src/external/bsd/top/dist: top.c >> >>Log Message: >>top(1): chdir to / at init >> >>This allows us to unmount whatever directory we happen to be in when we >>started top(1). > > Cuts both ways; next time I hit ^\ to make it core-dump and it does > not work because it chdir'ed to slash... I will then have to edit > the source to fix this. In general programs should not do unexpected > things; you can alias top to 'cd / && /usr/bin/top' in your own > environment. Please don't impose this to everyone. We all strive for > less complexity and magic. I don't mind reverting this: it came out of a discussion on IRC. That said, perhaps "cd /tmp" would resolve both issues? -- Eitan Adler
Re: CVS commit: src/external/bsd/top/dist
In article <20180602223020.16462f...@cvs.netbsd.org>, Eitan Adler wrote: >-=-=-=-=-=- > >Module Name: src >Committed By: eadler >Date: Sat Jun 2 22:30:20 UTC 2018 > >Modified Files: > src/external/bsd/top/dist: top.c > >Log Message: >top(1): chdir to / at init > >This allows us to unmount whatever directory we happen to be in when we >started top(1). Cuts both ways; next time I hit ^\ to make it core-dump and it does not work because it chdir'ed to slash... I will then have to edit the source to fix this. In general programs should not do unexpected things; you can alias top to 'cd / && /usr/bin/top' in your own environment. Please don't impose this to everyone. We all strive for less complexity and magic. christos
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: eadler Date: Sat Jun 2 22:30:20 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: top(1): chdir to / at init This allows us to unmount whatever directory we happen to be in when we started top(1). ok phone To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.c diff -u src/external/bsd/top/dist/top.c:1.10 src/external/bsd/top/dist/top.c:1.11 --- src/external/bsd/top/dist/top.c:1.10 Thu May 31 09:20:05 2018 +++ src/external/bsd/top/dist/top.c Sat Jun 2 22:30:19 2018 @@ -119,7 +119,6 @@ quit(int status) { screen_end(); -chdir("/tmp"); exit(status); /* NOTREACHED */ } @@ -726,6 +725,16 @@ main(int argc, char *argv[]) struct statics statics; globalstate *gstate; +/* + * Since top(1) is often long running and + * doesn't typically care about where its running from + * chdir to the root to allow unmounting of its + * original wd. Failure is alright as this is + * just a courtesy for users. + */ +chdir("/"); + + /* get our name */ if (argc > 0) {
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: eadler Date: Sat Jun 2 22:30:20 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: top(1): chdir to / at init This allows us to unmount whatever directory we happen to be in when we started top(1). ok phone To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: kamil Date: Thu May 31 10:14:21 UTC 2018 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Fix read of unitialized array elements in top(1) The cp_old array is allocated with malloc(3) and its pointer is passed to percentages64(). In this function there happens a calculation of total_change, which value depends on the value inside the unitialized cp_old[] array. ==26662==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x268a2c in percentages64 /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6 #1 0x26748b in get_system_info /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:478:6 #2 0x25518e in do_display /usr/src/external/bsd/top/bin/../dist/top.c:507:5 #3 0x253038 in main /usr/src/external/bsd/top/bin/../dist/top.c:975:2 #4 0x21cad1 in ___start (/usr/bin/top+0x1cad1) SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6 in percentages64 Exiting Fix this issue by changling malloc(3) with calloc(3). Detected with Memory Sanitizer during the integration of sanitizers with the NetBSD basesystem. Reported by To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: kamil Date: Thu May 31 10:14:21 UTC 2018 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Fix read of unitialized array elements in top(1) The cp_old array is allocated with malloc(3) and its pointer is passed to percentages64(). In this function there happens a calculation of total_change, which value depends on the value inside the unitialized cp_old[] array. ==26662==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x268a2c in percentages64 /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6 #1 0x26748b in get_system_info /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:478:6 #2 0x25518e in do_display /usr/src/external/bsd/top/bin/../dist/top.c:507:5 #3 0x253038 in main /usr/src/external/bsd/top/bin/../dist/top.c:975:2 #4 0x21cad1 in ___start (/usr/bin/top+0x1cad1) SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6 in percentages64 Exiting Fix this issue by changling malloc(3) with calloc(3). Detected with Memory Sanitizer during the integration of sanitizers with the NetBSD basesystem. Reported by To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.19 src/external/bsd/top/dist/machine/m_netbsd.c:1.20 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.19 Mon Dec 26 12:46:31 2016 +++ src/external/bsd/top/dist/machine/m_netbsd.c Thu May 31 10:14:21 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.20 2018/05/31 10:14:21 kamil Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran * * - * $Id: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $ + * $Id: m_netbsd.c,v 1.20 2018/05/31 10:14:21 kamil Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.20 2018/05/31 10:14:21 kamil Exp $"); #endif #include @@ -335,7 +335,7 @@ machine_init(statics) ncpu = 1; cpu_states = malloc(sizeof(cpu_states[0]) * CPUSTATES * ncpu); - cp_old = malloc(sizeof(cp_old[0]) * CPUSTATES * ncpu); + cp_old = calloc(CPUSTATES * ncpu, sizeof(cp_old[0])); cp_diff = malloc(sizeof(cp_diff[0]) * CPUSTATES * ncpu); if (cpu_states == NULL || cp_time == NULL || cp_old == NULL || cp_diff == NULL) {
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: kamil Date: Thu May 31 09:20:05 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: Fix unitialized signal mask passed to sigaction(2) in top(1) Detected with Memory Sanitizer during the integration of sanitizers with the NetBSD basesystem. Reported by To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.c diff -u src/external/bsd/top/dist/top.c:1.9 src/external/bsd/top/dist/top.c:1.10 --- src/external/bsd/top/dist/top.c:1.9 Fri Mar 23 14:46:05 2012 +++ src/external/bsd/top/dist/top.c Thu May 31 09:20:05 2018 @@ -135,6 +135,7 @@ set_signal(int sig, RETSIGTYPE (*handler #ifdef HAVE_SIGACTION struct sigaction action; +sigemptyset(_mask); action.sa_handler = handler; action.sa_flags = 0; (void) sigaction(sig, , NULL);
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: kamil Date: Thu May 31 09:20:05 UTC 2018 Modified Files: src/external/bsd/top/dist: top.c Log Message: Fix unitialized signal mask passed to sigaction(2) in top(1) Detected with Memory Sanitizer during the integration of sanitizers with the NetBSD basesystem. Reported by To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: abhinav Date: Thu Jan 12 18:37:10 UTC 2017 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Fix couple of typos: s/summay/summary s/highligting/highlighting To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.9 src/external/bsd/top/dist/top.1.in:1.10 --- src/external/bsd/top/dist/top.1.in:1.9 Wed Dec 28 18:16:30 2016 +++ src/external/bsd/top/dist/top.1.in Thu Jan 12 18:37:09 2017 @@ -409,7 +409,7 @@ Top supports the use of ANSI color in it available but not used. The environment variable .B TOPCOLORS specifies colors to use and conditions for which they should be used. -At the present time, only numbers in the summay display area can be +At the present time, only numbers in the summary display area can be colored. In a future version it will be possible to highlight numbers in the process display area as well. The environment variable is the only way to specify color: there is no equivalent command line option. @@ -454,7 +454,7 @@ You can see a list of color codes recogn with the .B \-T option. This will also show the current set of tests used for -color highligting, as specified in the environment. +color highlighting, as specified in the environment. .SH AUTHOR William LeFebvre .SH ENVIRONMENT
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: abhinav Date: Thu Jan 12 18:37:10 UTC 2017 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Fix couple of typos: s/summay/summary s/highligting/highlighting To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: leot Date: Wed Dec 28 18:16:30 UTC 2016 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Document the `p' command in "interactive mode" that filters processes by pid. While here add date to the `.TH' macro 3rd argument. Reviewed by and thanks to To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.8 src/external/bsd/top/dist/top.1.in:1.9 --- src/external/bsd/top/dist/top.1.in:1.8 Sat Jan 23 22:10:44 2016 +++ src/external/bsd/top/dist/top.1.in Wed Dec 28 18:16:30 2016 @@ -4,7 +4,7 @@ .nr D @DEFAULT_DELAY@ .nr L @HAVE_GETOPT_LONG@ .nr K @ENABLE_KILL@ -.TH TOP 1 Local +.TH TOP 1 "December 28, 2016" .UC 4 .SH NAME top \- display and update information about the top cpu processes @@ -301,6 +301,11 @@ but usually include: \*(lqcpu\*(rq, \*( .B P Sort by CPU usage. Shorthand for \*(lqo cpu\*(rq. .TP +.B p +Display only process with the specified pid (prompt for process id). +If the pid specified is simply \*(lq-1\*(rq, then all processes are +displayed. +.TP .B q Quit .IR top.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: leot Date: Wed Dec 28 18:16:30 UTC 2016 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Document the `p' command in "interactive mode" that filters processes by pid. While here add date to the `.TH' macro 3rd argument. Reviewed by and thanks to To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: leot Date: Mon Dec 26 12:46:32 UTC 2016 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Implement the `c' command in "interactive mode" that displays only commands that match a specified string. Reviewed by and thanks to To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.18 src/external/bsd/top/dist/machine/m_netbsd.c:1.19 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.18 Sun Oct 20 03:02:27 2013 +++ src/external/bsd/top/dist/machine/m_netbsd.c Mon Dec 26 12:46:31 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran* * - * $Id: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $ + * $Id: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $ */ #include #ifndef lint -__RCSID("$NetBSD: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $"); +__RCSID("$NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $"); #endif #include @@ -587,6 +587,7 @@ get_proc_info(struct system_info *si, st int show_idle; int show_system; int show_uid; + char *show_command; static struct handle handle; @@ -626,6 +627,7 @@ get_proc_info(struct system_info *si, st show_idle = sel->idle; show_system = sel->system; show_uid = sel->uid != -1; + show_command = sel->command; /* count up process states and get pointers to interesting procs */ total_procs = 0; @@ -646,9 +648,12 @@ get_proc_info(struct system_info *si, st if (pp->p_stat != LSZOMB && (show_idle || (pp->p_pctcpu != 0) || (pp->p_stat == LSRUN || pp->p_stat == LSONPROC)) && - (!show_uid || pp->p_ruid == (uid_t)sel->uid)) { -*prefp++ = pp; -active_procs++; + (!show_uid || pp->p_ruid == (uid_t)sel->uid) && + (!show_command || + strstr(get_command(sel, pp), + show_command) != NULL)) { + *prefp++ = pp; + active_procs++; } } } @@ -685,6 +690,7 @@ get_lwp_info(struct system_info *si, str int show_idle; int show_system; int show_uid; + char *show_command; static struct handle handle; @@ -736,6 +742,7 @@ get_lwp_info(struct system_info *si, str show_idle = sel->idle; show_system = sel->system; show_uid = sel->uid != -1; + show_command = sel->command; /* count up thread states and get pointers to interesting threads */ total_lwps = 0; @@ -758,9 +765,12 @@ get_lwp_info(struct system_info *si, str if (lp->l_stat != LSZOMB && (show_idle || (lp->l_pctcpu != 0) || (lp->l_stat == LSRUN || lp->l_stat == LSONPROC)) && - (!show_uid || uid_from_thread(lp) == sel->uid)) { -*lrefp++ = lp; -active_lwps++; + (!show_uid || uid_from_thread(lp) == sel->uid) && + (!show_command || + strstr(get_command(sel, proc_from_thread(lp)), + show_command) != NULL)) { + *lrefp++ = lp; + active_lwps++; } } }
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: leot Date: Mon Dec 26 12:46:32 UTC 2016 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Implement the `c' command in "interactive mode" that displays only commands that match a specified string. Reviewed by and thanks to To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: dholland Date: Sat Aug 27 18:48:30 UTC 2016 Modified Files: src/external/bsd/top/dist: utils.c Log Message: Be more careful/explicit with FP rounding when converting floating time to timeval. Also, don't truncate the seconds part to int for y2038. I've had this patch sitting around since 2010 and I completely forget what motivated it. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/utils.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/utils.c diff -u src/external/bsd/top/dist/utils.c:1.4 src/external/bsd/top/dist/utils.c:1.5 --- src/external/bsd/top/dist/utils.c:1.4 Tue May 5 18:51:22 2009 +++ src/external/bsd/top/dist/utils.c Sat Aug 27 18:48:30 2016 @@ -41,6 +41,7 @@ #include "os.h" #include +#include #ifdef HAVE_STDARG_H #include #else @@ -711,8 +712,11 @@ diff_per_second(unsigned int x, unsigned void double2tv(struct timeval *tv, double d) { -tv->tv_sec = (int)d; -tv->tv_usec = (d - tv->tv_sec) * 100; +double di; + +di = floor(d); +tv->tv_sec = (time_t)di; +tv->tv_usec = (int)ceil((d - di) * 100.0); } static int debug_on = 0;
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: dholland Date: Sat Aug 27 18:48:30 UTC 2016 Modified Files: src/external/bsd/top/dist: utils.c Log Message: Be more careful/explicit with FP rounding when converting floating time to timeval. Also, don't truncate the seconds part to int for y2038. I've had this patch sitting around since 2010 and I completely forget what motivated it. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/utils.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Jan 23 22:10:44 UTC 2016 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: PR/5068: Ingo Schwarze: Don't use the .af (alter format) request to display a named register. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.7 src/external/bsd/top/dist/top.1.in:1.8 --- src/external/bsd/top/dist/top.1.in:1.7 Thu Jan 22 21:58:40 2015 +++ src/external/bsd/top/dist/top.1.in Sat Jan 23 17:10:44 2016 @@ -166,9 +166,7 @@ Only display the specified pid. .B "\-s \fItime\fP, \-\-delay=\fItime\fP" Set the delay between screen updates to .I time -seconds. The default delay between updates is -.af D 1 -seconds. +seconds. The default delay between updates is \nD seconds. .TP .B "\-U \fIusername\fP, \-\-user=\fIusername\fP" Show only those processes owned by
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Jan 23 22:10:44 UTC 2016 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: PR/5068: Ingo Schwarze: Don't use the .af (alter format) request to display a named register. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Fri Jan 23 02:58:40 UTC 2015 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: use more markup To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.6 src/external/bsd/top/dist/top.1.in:1.7 --- src/external/bsd/top/dist/top.1.in:1.6 Wed Mar 20 21:39:04 2013 +++ src/external/bsd/top/dist/top.1.in Thu Jan 22 21:58:40 2015 @@ -166,7 +166,9 @@ Only display the specified pid. .B \-s \fItime\fP, \-\-delay=\fItime\fP Set the delay between screen updates to .I time -seconds. The default delay between updates is \nD seconds. +seconds. The default delay between updates is +.af D 1 +seconds. .TP .B \-U \fIusername\fP, \-\-user=\fIusername\fP Show only those processes owned by
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Fri Jan 23 02:58:40 UTC 2015 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: use more markup To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Tue May 13 20:06:41 UTC 2014 Modified Files: src/external/bsd/top/dist: display.c Log Message: Don't die if we resize to smaller than Y_LINES. The display could do better, but it recovers if we grow. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/display.c diff -u src/external/bsd/top/dist/display.c:1.9 src/external/bsd/top/dist/display.c:1.10 --- src/external/bsd/top/dist/display.c:1.9 Sat Jul 3 09:18:57 2010 +++ src/external/bsd/top/dist/display.c Tue May 13 16:06:41 2014 @@ -723,8 +723,9 @@ display_resize() /* adjust total lines on screen to lines available for procs */ if (top_lines y_procs) - return -1; -top_lines -= y_procs; + top_lines = 0; +else + top_lines -= y_procs; /* return number of lines available */ return top_lines;
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Tue May 13 20:06:41 UTC 2014 Modified Files: src/external/bsd/top/dist: display.c Log Message: Don't die if we resize to smaller than Y_LINES. The display could do better, but it recovers if we grow. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sun Oct 20 03:02:27 UTC 2013 Modified Files: src/external/bsd/top/dist: hash.c src/external/bsd/top/dist/machine: m_netbsd.c Log Message: remove unused variables To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/hash.c cvs rdiff -u -r1.17 -r1.18 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/hash.c diff -u src/external/bsd/top/dist/hash.c:1.3 src/external/bsd/top/dist/hash.c:1.4 --- src/external/bsd/top/dist/hash.c:1.3 Tue May 5 14:51:21 2009 +++ src/external/bsd/top/dist/hash.c Sat Oct 19 23:02:26 2013 @@ -579,7 +579,6 @@ hash_remove_pos_uint(hash_pos *pos) llistitem *li; void *ans; hash_item_uint *hi; -unsigned int key; /* sanity checks */ if (pos == NULL || pos-ll_last == pos-ll_item) @@ -597,9 +596,6 @@ hash_remove_pos_uint(hash_pos *pos) hi = (hash_item_uint *)li-datum; ans = hi-value; -/* free up the space */ -key = hi-key; -; ll_freeitem(li); /* back up to previous item */ @@ -917,7 +913,6 @@ hash_remove_pos_pid(hash_pos *pos) llistitem *li; void *ans; hash_item_pid *hi; -pid_t key; /* sanity checks */ if (pos == NULL || pos-ll_last == pos-ll_item) @@ -936,8 +931,6 @@ hash_remove_pos_pid(hash_pos *pos) ans = hi-value; /* free up the space */ -key = hi-key; -; ll_freeitem(li); /* back up to previous item */ @@ -1593,7 +1586,6 @@ hash_remove_pos_pidthr(hash_pos *pos) llistitem *li; void *ans; hash_item_pidthr *hi; -pidthr_t key; /* sanity checks */ if (pos == NULL || pos-ll_last == pos-ll_item) @@ -1612,8 +1604,6 @@ hash_remove_pos_pidthr(hash_pos *pos) ans = hi-value; /* free up the space */ -key = hi-key; -; ll_freeitem(li); /* back up to previous item */ @@ -1932,7 +1922,6 @@ hash_remove_pos_lwpid(hash_pos *pos) llistitem *li; void *ans; hash_item_lwpid *hi; -lwpid_t key; /* sanity checks */ if (pos == NULL || pos-ll_last == pos-ll_item) @@ -1951,8 +1940,6 @@ hash_remove_pos_lwpid(hash_pos *pos) ans = hi-value; /* free up the space */ -key = hi-key; -; ll_freeitem(li); /* back up to previous item */ Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.17 src/external/bsd/top/dist/machine/m_netbsd.c:1.18 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.17 Thu Jan 3 05:12:36 2013 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sat Oct 19 23:02:27 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $ + * $Id: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.18 2013/10/20 03:02:27 christos Exp $); #endif #include sys/param.h @@ -587,7 +587,6 @@ get_proc_info(struct system_info *si, st int show_idle; int show_system; int show_uid; - int show_command; static struct handle handle; @@ -627,7 +626,6 @@ get_proc_info(struct system_info *si, st show_idle = sel-idle; show_system = sel-system; show_uid = sel-uid != -1; - show_command = sel-command != NULL; /* count up process states and get pointers to interesting procs */ total_procs = 0; @@ -687,7 +685,6 @@ get_lwp_info(struct system_info *si, str int show_idle; int show_system; int show_uid; - int show_command; static struct handle handle; @@ -739,7 +736,6 @@ get_lwp_info(struct system_info *si, str show_idle = sel-idle; show_system = sel-system; show_uid = sel-uid != -1; - show_command = sel-command != NULL; /* count up thread states and get pointers to interesting threads */ total_lwps = 0;
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sun Oct 20 03:02:27 UTC 2013 Modified Files: src/external/bsd/top/dist: hash.c src/external/bsd/top/dist/machine: m_netbsd.c Log Message: remove unused variables To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/hash.c cvs rdiff -u -r1.17 -r1.18 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: roy Date: Tue Oct 1 11:39:38 UTC 2013 Modified Files: src/external/bsd/top/dist: screen.c Log Message: Allow interactive displays if the termcap entry does not have the `li' setting but we can calculate the lines from ioctl. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/screen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/screen.c diff -u src/external/bsd/top/dist/screen.c:1.4 src/external/bsd/top/dist/screen.c:1.5 --- src/external/bsd/top/dist/screen.c:1.4 Sat Dec 24 22:29:48 2011 +++ src/external/bsd/top/dist/screen.c Tue Oct 1 11:39:37 2013 @@ -273,8 +273,7 @@ screen_readtermcap(int interactive) /* set up common terminal capabilities */ if ((screen_length = tgetnum(li)) = 0) { - screen_length = smart_terminal = 0; - return No; + screen_length = 0; } /* screen_width is a little different */ @@ -329,6 +328,13 @@ screen_readtermcap(int interactive) sets lower_left. */ screen_getsize(); +/* If screen_length is 0 from both termcap and ioctl then we are dumb */ +if (screen_length == 0) +{ +smart_terminal = No; +return No; +} + /* if stdout is not a terminal, pretend we are a dumb terminal */ #ifdef USE_SGTTY if (ioctl(STDOUT, TIOCGETP, old_settings) == -1)
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: roy Date: Tue Oct 1 11:39:38 UTC 2013 Modified Files: src/external/bsd/top/dist: screen.c Log Message: Allow interactive displays if the termcap entry does not have the `li' setting but we can calculate the lines from ioctl. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/screen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Thu Mar 21 00:27:44 UTC 2013 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: PR/47675: Nick Hudson: top(1) man page missing default number of seconds To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.4 src/external/bsd/top/dist/top.1.in:1.5 --- src/external/bsd/top/dist/top.1.in:1.4 Fri Mar 23 09:32:51 2012 +++ src/external/bsd/top/dist/top.1.in Wed Mar 20 20:27:44 2013 @@ -166,7 +166,7 @@ Only display the specified pid. .B \-s \fItime\fP, \-\-delay=\fItime\fP Set the delay between screen updates to .I time -seconds. The default delay between updates is \nD seconds. +seconds. The default delay between updates is 5 seconds. .TP .B \-U \fIusername\fP, \-\-user=\fIusername\fP Show only those processes owned by
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Thu Mar 21 01:39:04 UTC 2013 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: revert previous, this is a mandoc issue (does not handle .if and .nr) To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.5 src/external/bsd/top/dist/top.1.in:1.6 --- src/external/bsd/top/dist/top.1.in:1.5 Wed Mar 20 20:27:44 2013 +++ src/external/bsd/top/dist/top.1.in Wed Mar 20 21:39:04 2013 @@ -166,7 +166,7 @@ Only display the specified pid. .B \-s \fItime\fP, \-\-delay=\fItime\fP Set the delay between screen updates to .I time -seconds. The default delay between updates is 5 seconds. +seconds. The default delay between updates is \nD seconds. .TP .B \-U \fIusername\fP, \-\-user=\fIusername\fP Show only those processes owned by
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Thu Mar 21 00:27:44 UTC 2013 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: PR/47675: Nick Hudson: top(1) man page missing default number of seconds To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Thu Mar 21 01:39:04 UTC 2013 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: revert previous, this is a mandoc issue (does not handle .if and .nr) To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: para Date: Thu Jan 3 10:12:36 UTC 2013 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: explicitly include sys/resource.h To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.16 src/external/bsd/top/dist/machine/m_netbsd.c:1.17 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.16 Sat Oct 8 08:45:37 2011 +++ src/external/bsd/top/dist/machine/m_netbsd.c Thu Jan 3 10:12:36 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $ */ /* * top - a top users display for Unix @@ -37,15 +37,16 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $ + * $Id: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.17 2013/01/03 10:12:36 para Exp $); #endif #include sys/param.h +#include sys/resource.h #include sys/sysctl.h #include sys/sched.h #include sys/swap.h
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: para Date: Thu Jan 3 10:12:36 UTC 2013 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: explicitly include sys/resource.h To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sborrill Date: Fri Mar 23 13:32:51 UTC 2012 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Mention that 1 can be used as an interactive command. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/top.1.in diff -u src/external/bsd/top/dist/top.1.in:1.3 src/external/bsd/top/dist/top.1.in:1.4 --- src/external/bsd/top/dist/top.1.in:1.3 Sun Jul 20 18:52:06 2008 +++ src/external/bsd/top/dist/top.1.in Fri Mar 23 13:32:51 2012 @@ -237,6 +237,9 @@ These commands are currently recognized: Display a summary of the commands (help screen). Version information is included in this display. .TP +.B 1 +Toggle the display of per-cpu states. +.TP .B C Toggle the use of color in the display. .TP
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sborrill Date: Fri Mar 23 14:46:05 UTC 2012 Modified Files: src/external/bsd/top/dist: commands.c top.c Log Message: Switch off per-cpu states by default (i.e. display a single CPU line with a mean average). Program behaviour now tallies with the man page, but more importantly, the default behaviour is now sensible for modern multi-core machines. If you want the previous behaviour, please set TOP=-1 in your environment. Fix multiple 1 options not toggling and thus allow settings in TOP environmental variable to be reversed by a command line option. Tweak description of 1 command in interactive mode. OK christos@ To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/bsd/top/dist/commands.c cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/commands.c diff -u src/external/bsd/top/dist/commands.c:1.6 src/external/bsd/top/dist/commands.c:1.7 --- src/external/bsd/top/dist/commands.c:1.6 Tue May 5 18:51:21 2009 +++ src/external/bsd/top/dist/commands.c Fri Mar 23 14:46:05 2012 @@ -943,7 +943,7 @@ command command_table[] = { { ' ', cmd_update, update screen }, { '?', cmd_help, help; show this text }, { 'h', cmd_help, NULL }, -{ '1', cmd_percpustates, toggle the detail per cpu of cpustates }, +{ '1', cmd_percpustates, toggle the display of cpu states per cpu }, { 'C', cmd_color, toggle the use of color }, { 'H', cmd_threads, toggle the display of individual threads }, { 't', cmd_threads, NULL }, Index: src/external/bsd/top/dist/top.c diff -u src/external/bsd/top/dist/top.c:1.8 src/external/bsd/top/dist/top.c:1.9 --- src/external/bsd/top/dist/top.c:1.8 Tue May 5 18:51:22 2009 +++ src/external/bsd/top/dist/top.c Fri Mar 23 14:46:05 2012 @@ -345,8 +345,6 @@ do_arguments(globalstate *gstate, int ac { case '1': gstate-percpustates = !gstate-percpustates; - gstate-fulldraw = Yes; - gstate-max_topn += display_setmulti(gstate-percpustates); break; #ifdef ENABLE_COLOR case 'C': @@ -771,7 +769,7 @@ main(int argc, char *argv[]) gstate-fulldraw = Yes; gstate-use_color = Yes; gstate-interactive = Maybe; -gstate-percpustates = Yes; +gstate-percpustates = No; /* preset defaults for process selection */ gstate-pselect.idle = Yes;
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sborrill Date: Fri Mar 23 13:32:51 UTC 2012 Modified Files: src/external/bsd/top/dist: top.1.in Log Message: Mention that 1 can be used as an interactive command. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/top.1.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: sborrill Date: Fri Mar 23 14:46:05 UTC 2012 Modified Files: src/external/bsd/top/dist: commands.c top.c Log Message: Switch off per-cpu states by default (i.e. display a single CPU line with a mean average). Program behaviour now tallies with the man page, but more importantly, the default behaviour is now sensible for modern multi-core machines. If you want the previous behaviour, please set TOP=-1 in your environment. Fix multiple 1 options not toggling and thus allow settings in TOP environmental variable to be reversed by a command line option. Tweak description of 1 command in interactive mode. OK christos@ To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/bsd/top/dist/commands.c cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/top.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Dec 24 22:29:48 UTC 2011 Modified Files: src/external/bsd/top/dist: screen.c Log Message: PR/45739: Moritz Wilhelmy: top(1) segfaults on WINCH with unknown terminal To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/screen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/screen.c diff -u src/external/bsd/top/dist/screen.c:1.3 src/external/bsd/top/dist/screen.c:1.4 --- src/external/bsd/top/dist/screen.c:1.3 Tue May 5 14:51:21 2009 +++ src/external/bsd/top/dist/screen.c Sat Dec 24 17:29:48 2011 @@ -167,7 +167,7 @@ void screen_getsize() { - +char *go; #ifdef TIOCGWINSZ struct winsize ws; @@ -204,7 +204,10 @@ screen_getsize() #endif /* TIOCGSIZE */ #endif /* TIOCGWINSZ */ -(void) strcpy(lower_left, tgoto(tc_cursor_motion, 0, screen_length - 1)); +if ((go = tgoto(tc_cursor_motion, 0, screen_length - 1)) != NULL) + (void) strcpy(lower_left, go); +else + lower_left[0] = '\0'; } int @@ -214,6 +217,7 @@ screen_readtermcap(int interactive) char *bufptr; char *PCptr; char *term_name; +char *go; int status; /* set defaults in case we aren't smart */ @@ -314,7 +318,10 @@ screen_readtermcap(int interactive) PC = (PCptr = tgetstr(pc, bufptr)) ? *PCptr : 0; /* set convenience strings */ -(void) strcpy(home, tgoto(tc_cursor_motion, 0, 0)); +if ((go = tgoto(tc_cursor_motion, 0, 0)) != NULL) + (void) strcpy(home, go); +else + home[0] = '\0'; /* (lower_left is set in screen_getsize) */ /* get the actual screen size with an ioctl, if needed */ @@ -502,7 +509,9 @@ void screen_move(int x, int y) { -tputs(tgoto(tc_cursor_motion, x, y), 1, putstdout); +char *go = tgoto(tc_cursor_motion, x, y); +if (go) + tputs(go, 1, putstdout); } void
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Dec 24 22:29:48 UTC 2011 Modified Files: src/external/bsd/top/dist: screen.c Log Message: PR/45739: Moritz Wilhelmy: top(1) segfaults on WINCH with unknown terminal To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/top/dist/screen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: njoly Date: Sat Oct 8 08:45:37 UTC 2011 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Adjust UID header position, to be aligned with the datas. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.15 src/external/bsd/top/dist/machine/m_netbsd.c:1.16 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.15 Fri Apr 15 02:05:53 2011 +++ src/external/bsd/top/dist/machine/m_netbsd.c Sat Oct 8 08:45:37 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $ + * $Id: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.16 2011/10/08 08:45:37 njoly Exp $); #endif #include sys/param.h @@ -413,7 +413,7 @@ format_process_header(struct process_sel { char *header; char *ptr; - const char *uname_field = sel-usernames ? USERNAME :UID ; + const char *uname_field = sel-usernames ? USERNAME : UID ; if (sel-threads) { header = Thread_header;
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: njoly Date: Sat Oct 8 08:45:37 UTC 2011 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Adjust UID header position, to be aligned with the datas. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 15 02:05:53 UTC 2011 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Swap the command and the thread name in the thread view and let the command be as long as it wants. (Vladimir Kirillov) To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.14 src/external/bsd/top/dist/machine/m_netbsd.c:1.15 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.14 Mon May 31 14:14:59 2010 +++ src/external/bsd/top/dist/machine/m_netbsd.c Thu Apr 14 22:05:53 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $ + * $Id: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.15 2011/04/15 02:05:53 christos Exp $); #endif #include sys/param.h @@ -105,14 +105,14 @@ /* 0123456 -- field to fill in starts at header+6 */ #define PROC_UNAME_START 6 #define Proc_format \ - %5d %-8.8s %3d %4d%7s %5s %-8.8s%7s %5.*f%% %5.*f%% %.12s + %5d %-8.8s %3d %4d%7s %5s %-8.8s%7s %5.*f%% %5.*f%% %s static char Thread_header[] = -PID LID XPRI STATE TIME WCPUCPU COMMAND NAME; +PID LID XPRI STATE TIME WCPUCPU NAME COMMAND; /* 0123456 -- field to fill in starts at header+6 */ #define THREAD_UNAME_START 12 #define Thread_format \ -%5d %5d %-8.8s %3d %-8.8s%7s %5.2f%% %5.2f%% %-12.12s %.12s +%5d %5d %-8.8s %3d %-8.8s%7s %5.2f%% %5.2f%% %-9.9s %s /* * Process state names for the STATE column of the display. @@ -939,8 +939,8 @@ format_time(cputime), 100.0 * weighted_cpu(l_, pct, pl), 100.0 * pct, - get_command(hp-sel, pp), - printable(pl-l_name)); + printable(pl-l_name), + get_command(hp-sel, pp)); /* return the result */ return(fmt);
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Fri Apr 15 02:05:53 UTC 2011 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Swap the command and the thread name in the thread view and let the command be as long as it wants. (Vladimir Kirillov) To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Jul 3 13:18:57 UTC 2010 Modified Files: src/external/bsd/top/dist: display.c Log Message: PR/43562: Witold Jan Wnuk: top: CPU percentages overlap labels To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/display.c diff -u src/external/bsd/top/dist/display.c:1.8 src/external/bsd/top/dist/display.c:1.9 --- src/external/bsd/top/dist/display.c:1.8 Wed Jun 30 07:08:12 2010 +++ src/external/bsd/top/dist/display.c Sat Jul 3 09:18:57 2010 @@ -854,10 +854,10 @@ *ip++ = cpustate_total_length; if ((i = strlen(*pp++)) 0) { - cpustate_total_length += i + 7; - /* strlen( 100% ) is 6, strlen( 99.9% ) is 7. Never 8. */ + cpustate_total_length += i + 8; } } + cpustate_total_length -= 2; } #ifdef ENABLE_COLOR @@ -1155,11 +1155,11 @@ static char fmttag[100]; -const char *short_tag = !multi || ncpu = 1 ? CPU: : CPU%0*d; +const char *short_tag = !multi || ncpu = 1 ? CPU: : CPU%0*d: ; const char *long_tag = !multi || ncpu = 1 ? CPU states: : CPU%0*d states: ; -for (width=0, u=ncpu; u0; u /= 10) { +for (width = 0, u = ncpu - 1; u 0; u /= 10) { ++width; } /* if length + strlen(long_tag) screen_width, then we have to
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Sat Jul 3 13:18:57 UTC 2010 Modified Files: src/external/bsd/top/dist: display.c Log Message: PR/43562: Witold Jan Wnuk: top: CPU percentages overlap labels To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: is Date: Wed Jun 30 11:08:12 UTC 2010 Modified Files: src/external/bsd/top/dist: display.c Log Message: Avoid steps and other artefacts in head for more than 9 CPUs. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: rmind Date: Mon May 31 18:14:59 UTC 2010 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Fix previous, so it builds on some ports. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.13 src/external/bsd/top/dist/machine/m_netbsd.c:1.14 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.13 Mon May 31 03:18:33 2010 +++ src/external/bsd/top/dist/machine/m_netbsd.c Mon May 31 18:14:59 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $ + * $Id: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.14 2010/05/31 18:14:59 rmind Exp $); #endif #include sys/param.h @@ -842,8 +842,8 @@ case LSRUN: case LSSLEEP: case LSIDL: - (void)snprintf(state, sizeof(state), %.6s/%lu, - statep, pp-p_cpuid); + (void)snprintf(state, sizeof(state), %.6s/%u, + statep, (unsigned int)pp-p_cpuid); statep = state; break; } @@ -915,8 +915,8 @@ case LSRUN: case LSSLEEP: case LSIDL: - (void)snprintf(state, sizeof(state), %.6s/%lu, - statep, pl-l_cpuid); + (void)snprintf(state, sizeof(state), %.6s/%u, + statep, (unsigned int)pl-l_cpuid); statep = state; break; }
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: rmind Date: Mon May 31 18:14:59 UTC 2010 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Fix previous, so it builds on some ports. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: christos Date: Wed May 12 22:09:36 UTC 2010 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: implement fullcmd mode. Now we need to modernize the machine specific code to handle displays 80 columns to make this work effectively. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.11 src/external/bsd/top/dist/machine/m_netbsd.c:1.12 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.11 Wed Oct 21 17:11:57 2009 +++ src/external/bsd/top/dist/machine/m_netbsd.c Wed May 12 18:09:36 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.11 2009/10/21 21:11:57 rmind Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.11 2009/10/21 21:11:57 rmind Exp $ + * $Id: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.11 2009/10/21 21:11:57 rmind Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $); #endif #include sys/param.h @@ -70,14 +70,15 @@ #include loadavg.h #include username.h -static void percentages64 __P((int, int *, u_int64_t *, u_int64_t *, -u_int64_t *)); -static int get_cpunum __P((u_int64_t)); +static void percentages64(int, int *, u_int64_t *, u_int64_t *, +u_int64_t *); +static int get_cpunum(u_int64_t); /* get_process_info passes back a handle. This is what it looks like: */ struct handle { + struct process_select *sel; struct kinfo_proc2 **next_proc; /* points to next valid proc pointer */ int remaining; /* number of pointers remaining */ }; @@ -188,17 +189,17 @@ }; /* forward definitions for comparison functions */ -static int compare_cpu __P((struct proc **, struct proc **)); -static int compare_prio __P((struct proc **, struct proc **)); -static int compare_res __P((struct proc **, struct proc **)); -static int compare_size __P((struct proc **, struct proc **)); -static int compare_state __P((struct proc **, struct proc **)); -static int compare_time __P((struct proc **, struct proc **)); -static int compare_pid __P((struct proc **, struct proc **)); -static int compare_command __P((struct proc **, struct proc **)); -static int compare_username __P((struct proc **, struct proc **)); +static int compare_cpu(struct proc **, struct proc **); +static int compare_prio(struct proc **, struct proc **); +static int compare_res(struct proc **, struct proc **); +static int compare_size(struct proc **, struct proc **); +static int compare_state(struct proc **, struct proc **); +static int compare_time(struct proc **, struct proc **); +static int compare_pid(struct proc **, struct proc **); +static int compare_command(struct proc **, struct proc **); +static int compare_username(struct proc **, struct proc **); -int (*proc_compares[]) __P((struct proc **, struct proc **)) = { +int (*proc_compares[])(struct proc **, struct proc **) = { compare_cpu, compare_prio, compare_res, @@ -248,6 +249,57 @@ #define pagetok(size) ((size) pageshift) +/* + * Print swapped processes as pname and + * system processes as [pname] + */ +static const char * +get_pretty(const struct kinfo_proc2 *pp) +{ + if ((pp-p_flag P_SYSTEM) != 0) + return []; + if ((pp-p_flag P_INMEM) == 0) + return ; + return ; +} + +static const char * +get_command(const struct process_select *sel, struct kinfo_proc2 *pp) +{ + static char cmdbuf[128]; + const char *pretty; + char **argv; + if (pp == NULL) + return gone; + pretty = get_pretty(pp); + + if (sel-fullcmd == 0 || kd == NULL || (argv = kvm_getargv2(kd, pp, + sizeof(cmdbuf))) == NULL) { + if (pretty[0] != '\0' pp-p_comm[0] != pretty[0]) + snprintf(cmdbuf, sizeof(cmdbuf), %c%s%c, pretty[0], + printable(pp-p_comm), pretty[1]); + else + strlcpy(cmdbuf, printable(pp-p_comm), sizeof(cmdbuf)); + } else { + char *d = cmdbuf; + if (pretty[0] != '\0' argv[0][0] != pretty[0]) + *d++ = pretty[0]; + while (*argv) { + const char *s = printable(*argv++); + while (d cmdbuf + sizeof(cmdbuf) - 2 + (*d++ = *s++) != '\0') +continue; + if (d cmdbuf d cmdbuf + sizeof(cmdbuf) - 2 + d[-1] == '\0') +d[-1] = ' '; + } + if (pretty[0] != '\0' pretty[0] == cmdbuf[0]) + *d++ = pretty[1]; + *d++ = '\0'; + } + return cmdbuf; +} + static int get_cpunum(id) u_int64_t id; @@ -364,6 +416,7 @@ statics-swap_names = swapnames; statics-order_names = ordernames; statics-flags.threads = 1; + statics-flags.fullcmds = 1; mib[0] = CTL_KERN; mib[1] = KERN_BOOTTIME; @@ -637,6 +690,7 @@ /*
CVS commit: src/external/bsd/top/dist/machine
Module Name:src Committed By: njoly Date: Mon Jul 27 16:26:48 UTC 2009 Modified Files: src/external/bsd/top/dist/machine: m_netbsd.c Log Message: Make process CPU value drop the decimal part when reaching 100%, like WCPU. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/bsd/top/dist/machine/m_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/machine/m_netbsd.c diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.9 src/external/bsd/top/dist/machine/m_netbsd.c:1.10 --- src/external/bsd/top/dist/machine/m_netbsd.c:1.9 Tue May 5 18:51:22 2009 +++ src/external/bsd/top/dist/machine/m_netbsd.c Mon Jul 27 16:26:48 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: m_netbsd.c,v 1.9 2009/05/05 18:51:22 christos Exp $ */ +/* $NetBSD: m_netbsd.c,v 1.10 2009/07/27 16:26:48 njoly Exp $ */ /* * top - a top users display for Unix @@ -37,12 +37,12 @@ * Andrew Doran a...@netbsd.org * * - * $Id: m_netbsd.c,v 1.9 2009/05/05 18:51:22 christos Exp $ + * $Id: m_netbsd.c,v 1.10 2009/07/27 16:26:48 njoly Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: m_netbsd.c,v 1.9 2009/05/05 18:51:22 christos Exp $); +__RCSID($NetBSD: m_netbsd.c,v 1.10 2009/07/27 16:26:48 njoly Exp $); #endif #include sys/param.h @@ -106,7 +106,7 @@ /* 0123456 -- field to fill in starts at header+6 */ #define PROC_UNAME_START 6 #define Proc_format \ - %5d %-8.8s %3d %4d%7s %5s %-8.8s%7s %5.*f%% %5.2f%% %.12s + %5d %-8.8s %3d %4d%7s %5s %-8.8s%7s %5.*f%% %5.*f%% %.12s static char Thread_header[] = PID LID XPRI STATE TIME WCPUCPU COMMAND NAME; @@ -770,7 +770,7 @@ { struct kinfo_proc2 *pp; long cputime; - double pct, wcpu; + double pct, wcpu, cpu; struct handle *hp; const char *statep; #ifdef KI_NOCPU @@ -839,6 +839,7 @@ } #endif wcpu = 100.0 * weighted_cpu(p_, pct, pp); + cpu = 100.0 * pct; /* format this entry */ sprintf(fmt, @@ -852,7 +853,7 @@ statep, format_time(cputime), (wcpu = 100.0) ? 0 : 2, wcpu, - 100.0 * pct, + (cpu = 100.0) ? 0 : 2, cpu, printable(pp-p_comm)); /* return the result */
CVS commit: src/external/bsd/top/dist
Module Name:src Committed By: christos Date: Tue May 5 18:52:13 UTC 2009 Modified Files: src/external/bsd/top/dist: display.c Log Message: PR/41358: YAMAMOTO Takashi: top -n is broken, don't return -1 early if !smartterminal To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/bsd/top/dist/display.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/bsd/top/dist/display.c diff -u src/external/bsd/top/dist/display.c:1.6 src/external/bsd/top/dist/display.c:1.7 --- src/external/bsd/top/dist/display.c:1.6 Tue May 5 14:51:21 2009 +++ src/external/bsd/top/dist/display.c Tue May 5 14:52:13 2009 @@ -717,14 +717,17 @@ memzero(colorbuf, bufsize); } +/* for dumb terminals, pretend like we can show any amount */ +if (!smart_terminal) + return Largest; + /* adjust total lines on screen to lines available for procs */ if (top_lines y_procs) return -1; top_lines -= y_procs; /* return number of lines available */ -/* for dumb terminals, pretend like we can show any amount */ -return(smart_terminal ? top_lines : Largest); +return top_lines; } int