[4337] in Athena Bugs
corrected patches to top
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Tue Feb 27 13:51:17 1990
Date: Tue, 27 Feb 90 13:50:34 -0500
From: Jonathan I. Kamens <jik@PIT-MANAGER.MIT.EDU>
To: bugs@ATHENA.MIT.EDU
In article <1990Feb26.223458.24095@umigw.miami.edu>, jim@mango.miami.edu
(jim brown) writes:
> Here are patches to top v2.1 for an Ultrix Decstation 3100.
> The affected files are display.c, top.c, and layout.h.
>
> My original posting of this patch left out a change to top.c.
> Here is the original posting with the added line in top.c to define
> the macro FIX_TO_DBL.
>
> Jim Brown.
>
> -------------- Clip Here ----------------
> *** display.c.orig Fri Jul 29 15:35:38 1988
> --- display.c Wed Feb 14 19:23:07 1990
> ***************
> *** 13,18 ****
> --- 13,19 ----
>
> #include <stdio.h>
> #include <ctype.h>
> + #include <sys/fixpoint.h>
> #include <sys/param.h>
> #include <sys/dir.h>
> #include <sys/user.h>
> ***************
> *** 22,27 ****
> --- 23,29 ----
> #endif
> #include <sys/proc.h>
> #include <sys/dk.h>
> +
> #include "screen.h" /* interface to screen package */
> #include "layout.h" /* defines for screen position layout */
> #include "top.h"
> ***************
> *** 63,69 ****
> i_loadave(mpid, avenrun)
>
> int mpid;
> ! #if defined(sun)
> long *avenrun;
> #else
> double *avenrun;
> --- 65,71 ----
> i_loadave(mpid, avenrun)
>
> int mpid;
> ! #if defined(sun) || defined(mips)
> long *avenrun;
> #else
> double *avenrun;
> ***************
> *** 81,88 ****
> --- 83,94 ----
> #if defined(sun)
> (double)avenrun[i] / FSCALE);
> #else
> + #if defined(mips)
> + FIX_TO_DBL(avenrun[i]));
> + #else
> avenrun[i]);
> #endif
> + #endif
> }
> lmpid = mpid;
> }
> ***************
> *** 90,96 ****
> u_loadave(mpid, avenrun)
>
> int mpid;
> ! #if defined(sun)
> long *avenrun;
> #else
> double *avenrun;
> --- 96,102 ----
> u_loadave(mpid, avenrun)
>
> int mpid;
> ! #if defined(sun) || defined(mips)
> long *avenrun;
> #else
> double *avenrun;
> ***************
> *** 114,121 ****
> --- 120,131 ----
> #if defined(sun)
> (double)avenrun[i] / FSCALE);
> #else
> + #if defined(mips)
> + FIX_TO_DBL(avenrun[i]));
> + #else
> avenrun[i]);
> #endif
> + #endif
> }
> }
>
> ***************
> *** 234,240 ****
> int i1, i2, i3, i4, i5;
>
> {
> ! printf("Memory: %4dK (%4dK) real, %4dK (%4dK) virtual, %4dK free",
> i1, i2, i3, i4, i5);
> }
>
> --- 244,250 ----
> int i1, i2, i3, i4, i5;
>
> {
> ! printf("Memory: %5dK (%5dK) real, %5dK (%5dK) virtual, %5dK free",
> i1, i2, i3, i4, i5);
> }
>
> ***************
> *** 244,254 ****
>
> {
> Move_to(x_realmem, y_mem);
> ! printf("%4dK (%4d", i1, i2);
> Move_to(x_virtmem, y_mem);
> ! printf("%4dK (%4d", i3, i4);
> Move_to(x_free, y_mem);
> ! printf("%4d", i5);
> }
>
> i_header(f2)
> --- 254,264 ----
>
> {
> Move_to(x_realmem, y_mem);
> ! printf("%5dK (%5d", i1, i2);
> Move_to(x_virtmem, y_mem);
> ! printf("%5dK (%5d", i3, i4);
> Move_to(x_free, y_mem);
> ! printf("%5d", i5);
> }
>
> i_header(f2)
> ***************
> *** 270,276 ****
> --- 280,290 ----
> #if defined(sun)
> #define percent_cpu(pp) ((double)(pp)->p_pctcpu / FSCALE)
> #else
> + #if defined(mips)
> + #define percent_cpu(pp) (FIX_TO_DBL((pp)->p_pctcpu))
> + #else
> #define percent_cpu(pp) ((pp)->p_pctcpu)
> + #endif mips
> #endif sun
>
> #define weighted_cpu(pct, pp) ((pp)->p_time == 0 ? 0.0 : \
>
> *** layout.h.orig Fri Jul 29 15:35:20 1988
> --- layout.h Wed Feb 14 18:22:12 1990
> ***************
> *** 15,22 ****
> #define x_brkdn 14
> #define y_brkdn 1
> #define x_realmem 8
> ! #define x_virtmem 28
> ! #define x_free 51
> #define y_mem 3
> #define x_header 0
> #define y_header 5
> --- 15,22 ----
> #define x_brkdn 14
> #define y_brkdn 1
> #define x_realmem 8
> ! #define x_virtmem 30
> ! #define x_free 55
> #define y_mem 3
> #define x_header 0
> #define y_header 5
>
> *** top.c.orig Mon Feb 26 17:27:51 1990
> --- top.c Wed Feb 14 19:23:03 1990
> ***************
> *** 19,24 ****
> --- 19,26 ----
> * that will run on Sun Unix version 1.1 or later ("sun" is automatically
> * set by the Sun C compiler).
> *
> + * The Ultrix MIPS kernel also uses scaled integers for load average.
> + *
> * The Pyramid splits the stack size (p_ssize) into control stack and user
> * stack sizes. Compilation with the preprocessor variable "pyr" gets an
> * executable that will run on Pyramids ("pyr" is automatically set by the
> ***************
> *** 34,39 ****
> --- 36,42 ----
> #include <nlist.h>
> #include <signal.h>
> #include <setjmp.h>
> + #include <sys/fixpoint.h>
> #include <sys/param.h>
> #include <sys/dir.h>
> #include <sys/user.h>
> ***************
> *** 119,125 ****
> long cp_time_offset;
> long total_offset;
>
> ! #if defined(sun)
> long ccpu;
> long avenrun[3];
> #else
> --- 122,128 ----
> long cp_time_offset;
> long total_offset;
>
> ! #if defined(sun) || defined(mips)
> long ccpu;
> long avenrun[3];
> #else
> ***************
> *** 353,359 ****
> --- 356,366 ----
> #if defined(sun)
> logcpu = log((double)ccpu / FSCALE);
> #else
> + #if defined(mips)
> + logcpu = log(FIX_TO_DBL(ccpu));
> + #else
> logcpu = log(ccpu);
> + #endif
> #endif
>
> /* allocate space for proc structure array and array of pointers */
>
> ??? end of revised patches to top v2.1 ???
Jonathan Kamens USnail:
MIT Project Athena 11 Ashford Terrace
jik@Athena.MIT.EDU Allston, MA 02134
Office: 617-253-8495 Home: 617-782-0710