forked from Lainports/freebsd-ports
55 lines
1.2 KiB
Text
55 lines
1.2 KiB
Text
--- wmtop.c.orig Wed May 17 05:08:20 2000
|
|
+++ wmtop.c Wed Sep 20 03:48:43 2000
|
|
@@ -78,6 +78,10 @@
|
|
*/
|
|
int mode = 0;
|
|
|
|
+#if defined(FREEBSD)
|
|
+int show_system = 0;
|
|
+#endif
|
|
+
|
|
#if defined(DEBUG)
|
|
/*
|
|
* Memory handler
|
|
@@ -234,7 +238,7 @@
|
|
char deparenthesised_name[WMTOP_BUFLENGTH];
|
|
#endif /* defined(LINUX) */
|
|
#if defined(FREEBSD)
|
|
- int us,um,ks,km;
|
|
+ int us,um,ks,km,ppid;
|
|
#endif /* defined(FREEBSD) */
|
|
|
|
#if defined(PARANOID)
|
|
@@ -298,11 +302,18 @@
|
|
* Extract cpu times from data in /proc/<pid>/stat
|
|
* XXX: Process name extractor for FreeBSD is untested right now.
|
|
*/
|
|
- rc = sscanf(line,"%s %*s %*s %*s %*s %*s %*s %*s %d,%d %d,%d",
|
|
- procname,
|
|
+ rc = sscanf(line,"%s %*s %d %*s %*s %*s %*s %*s %d,%d %d,%d",
|
|
+ procname, &ppid,
|
|
&us,&um,&ks,&km);
|
|
if (rc<5)
|
|
return 1;
|
|
+
|
|
+ if (ppid == 0 && !show_system)
|
|
+ {
|
|
+ process->time_stamp=0;
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
if (process->name)
|
|
wmtop_free(process->name);
|
|
process->name = wmtop_strdup(procname);
|
|
@@ -725,6 +736,11 @@
|
|
i++;
|
|
}
|
|
break;
|
|
+#if defined (FREEBSD)
|
|
+ case 'S':
|
|
+ show_system = 1;
|
|
+ break;
|
|
+#endif
|
|
case 'r':
|
|
if (argc > (i+1)) {
|
|
refresh_rate = (atoi(argv[i+1]) * 1000);
|