Deleted Added
full compact
machine.c (172207) machine.c (173004)
1/*
2 * top - a top users display for Unix
3 *
4 * SYNOPSIS: For FreeBSD-2.x and later
5 *
6 * DESCRIPTION:
7 * Originally written for BSD4.4 system by Christos Zoulas.
8 * Ported to FreeBSD 2.x by Steven Wallace && Wolfram Schneider

--- 6 unchanged lines hidden (view full) ---

15 *
16 * LIBS: -lkvm
17 *
18 * AUTHOR: Christos Zoulas <christos@ee.cornell.edu>
19 * Steven Wallace <swallace@freebsd.org>
20 * Wolfram Schneider <wosch@FreeBSD.org>
21 * Thomas Moestl <tmoestl@gmx.net>
22 *
1/*
2 * top - a top users display for Unix
3 *
4 * SYNOPSIS: For FreeBSD-2.x and later
5 *
6 * DESCRIPTION:
7 * Originally written for BSD4.4 system by Christos Zoulas.
8 * Ported to FreeBSD 2.x by Steven Wallace && Wolfram Schneider

--- 6 unchanged lines hidden (view full) ---

15 *
16 * LIBS: -lkvm
17 *
18 * AUTHOR: Christos Zoulas <christos@ee.cornell.edu>
19 * Steven Wallace <swallace@freebsd.org>
20 * Wolfram Schneider <wosch@FreeBSD.org>
21 * Thomas Moestl <tmoestl@gmx.net>
22 *
23 * $FreeBSD: head/usr.bin/top/machine.c 172207 2007-09-17 05:31:39Z jeff $
23 * $FreeBSD: head/usr.bin/top/machine.c 173004 2007-10-26 08:00:41Z julian $
24 */
25
26#include <sys/param.h>
27#include <sys/errno.h>
28#include <sys/file.h>
29#include <sys/proc.h>
30#include <sys/resource.h>
31#include <sys/rtprio.h>

--- 700 unchanged lines hidden (view full) ---

732
733 cmdbuf = (char *)malloc(cmdlengthdelta + 1);
734 if (cmdbuf == NULL) {
735 warn("malloc(%d)", cmdlengthdelta + 1);
736 return NULL;
737 }
738
739 if (!(flags & FMT_SHOWARGS)) {
24 */
25
26#include <sys/param.h>
27#include <sys/errno.h>
28#include <sys/file.h>
29#include <sys/proc.h>
30#include <sys/resource.h>
31#include <sys/rtprio.h>

--- 700 unchanged lines hidden (view full) ---

732
733 cmdbuf = (char *)malloc(cmdlengthdelta + 1);
734 if (cmdbuf == NULL) {
735 warn("malloc(%d)", cmdlengthdelta + 1);
736 return NULL;
737 }
738
739 if (!(flags & FMT_SHOWARGS)) {
740 snprintf(cmdbuf, cmdlengthdelta, "%s", pp->ki_comm);
741 }
742 else if (pp->ki_args == NULL ||
743 (args = kvm_getargv(kd, pp, cmdlengthdelta)) == NULL || !(*args))
744 snprintf(cmdbuf, cmdlengthdelta, "[%s]", pp->ki_comm);
745 else {
746 char *src, *dst, *argbuf;
747 char *cmd;
748 size_t argbuflen;
749 size_t len;
750
751 argbuflen = cmdlengthdelta * 4;
752 argbuf = (char *)malloc(argbuflen + 1);
753 if (argbuf == NULL) {
754 warn("malloc(%d)", argbuflen + 1);
755 free(cmdbuf);
756 return NULL;
740 if (ps.thread && pp->ki_flag & P_HADTHREADS &&
741 pp->ki_ocomm[0]) {
742 snprintf(cmdbuf, cmdlengthdelta, "{%s}", pp->ki_ocomm);
743 } else {
744 snprintf(cmdbuf, cmdlengthdelta, "%s", pp->ki_comm);
757 }
745 }
746 } else {
747 if (pp->ki_flag & P_SYSTEM ||
748 pp->ki_args == NULL ||
749 (args = kvm_getargv(kd, pp, cmdlengthdelta)) == NULL ||
750 !(*args)) {
751 if (ps.thread && pp->ki_flag & P_HADTHREADS &&
752 pp->ki_ocomm[0]) {
753 snprintf(cmdbuf, cmdlengthdelta,
754 "{%s}", pp->ki_ocomm);
755 } else {
756 snprintf(cmdbuf, cmdlengthdelta,
757 "[%s]", pp->ki_comm);
758 }
759 } else {
760 char *src, *dst, *argbuf;
761 char *cmd;
762 size_t argbuflen;
763 size_t len;
758
764
759 dst = argbuf;
765 argbuflen = cmdlengthdelta * 4;
766 argbuf = (char *)malloc(argbuflen + 1);
767 if (argbuf == NULL) {
768 warn("malloc(%d)", argbuflen + 1);
769 free(cmdbuf);
770 return NULL;
771 }
760
772
761 /* Extract cmd name from argv */
762 cmd = strrchr(*args, '/');
763 if (cmd == NULL)
764 cmd = *args;
765 else
766 cmd++;
773 dst = argbuf;
767
774
768 for (; (src = *args++) != NULL; ) {
769 if (*src == '\0')
770 continue;
771 len = (argbuflen - (dst - argbuf) - 1) / 4;
772 strvisx(dst, src, strlen(src) < len ? strlen(src) : len,
773 VIS_NL | VIS_CSTYLE);
774 while (*dst != '\0')
775 dst++;
776 if ((argbuflen - (dst - argbuf) - 1) / 4 > 0)
777 *dst++ = ' '; /* add delimiting space */
778 }
779 if (dst != argbuf && dst[-1] == ' ')
780 dst--;
781 *dst = '\0';
775 /* Extract cmd name from argv */
776 cmd = strrchr(*args, '/');
777 if (cmd == NULL)
778 cmd = *args;
779 else
780 cmd++;
782
781
783 if (strcmp(cmd, pp->ki_comm) != 0 )
784 snprintf(cmdbuf, cmdlengthdelta, "%s (%s)",argbuf, \
785 pp->ki_comm);
786 else
787 strlcpy(cmdbuf, argbuf, cmdlengthdelta);
782 for (; (src = *args++) != NULL; ) {
783 if (*src == '\0')
784 continue;
785 len = (argbuflen - (dst - argbuf) - 1) / 4;
786 strvisx(dst, src,
787 strlen(src) < len ? strlen(src) : len,
788 VIS_NL | VIS_CSTYLE);
789 while (*dst != '\0')
790 dst++;
791 if ((argbuflen - (dst - argbuf) - 1) / 4 > 0)
792 *dst++ = ' '; /* add delimiting space */
793 }
794 if (dst != argbuf && dst[-1] == ' ')
795 dst--;
796 *dst = '\0';
788
797
789 free(argbuf);
798 if (strcmp(cmd, pp->ki_comm) != 0 )
799 snprintf(cmdbuf, cmdlengthdelta,
800 "%s (%s)",argbuf, pp->ki_comm);
801 else
802 strlcpy(cmdbuf, argbuf, cmdlengthdelta);
803
804 free(argbuf);
805 }
790 }
791
792 if (ps.jail == 0)
793 jid_buf[0] = '\0';
794 else
795 snprintf(jid_buf, sizeof(jid_buf), " %*d",
796 sizeof(jid_buf) - 3, pp->ki_jid);
797

--- 522 unchanged lines hidden ---
806 }
807
808 if (ps.jail == 0)
809 jid_buf[0] = '\0';
810 else
811 snprintf(jid_buf, sizeof(jid_buf), " %*d",
812 sizeof(jid_buf) - 3, pp->ki_jid);
813

--- 522 unchanged lines hidden ---