Thread View: mod.computers.masscomp
1 messages
1 total messages
Started by Stan Barber
Mon, 29 Sep 1986 21:32
Top for the Masscomp part 1 of 3
Author: Stan Barber
Date: Mon, 29 Sep 1986 21:32
Date: Mon, 29 Sep 1986 21:32
282 lines
7940 bytes
7940 bytes
Recently, my friend, Bill, released the latest version of his "top" program
to display the most active processes on a Vax, Pyramid or Sun computer. I
attempted to make it work on a Masscomp. Here is the results of that
work. Please let me know about any fixes. I will forward them to Bill as
well.
Have fun.
Stan Barber
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# boolean.h
# layout.h
# screen.h
# top.h
# top.local.h
# masscomp.h
# bzero.c
# This archive created: Mon Sep 29 16:14:10 1986
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'boolean.h'" '(125 characters)'
if test -f 'boolean.h'
then
echo shar: "will not over-write existing file 'boolean.h'"
else
cat << \SHAR_EOF > 'boolean.h'
/* My favorite names for boolean values */
#define No 0
#define Yes 1
#define Maybe 2 /* tri-state boolean, actually */
SHAR_EOF
fi
echo shar: "extracting 'layout.h'" '(845 characters)'
if test -f 'layout.h'
then
echo shar: "will not over-write existing file 'layout.h'"
else
cat << \SHAR_EOF > 'layout.h'
/*
* Top - a top users display for Berkeley Unix
*
* This file defines the locations on tne screen for various parts of the
* display. These definitions are used by the routines in "display.c" for
* cursor addressing.
*/
#define x_lastpid 10
#define y_lastpid 0
#define x_loadave 33
#define y_loadave 0
#define x_procstate 0
#define y_procstate 1
#define x_brkdn 14
#define y_brkdn 1
#define x_realmem 8
#define x_virtmem 28
#define x_free 53
#define y_mem 3
#define x_header 0
#define y_header 5
#define x_idlecursor 0
#define y_idlecursor 4
#define y_procs 6
#define x_p_pid 0
#define x_p_user 6
#define x_p_pri 15
#define x_p_nice 20
#define x_p_size 25
#define x_p_res 31
#define x_p_state 37
#define x_p_time 43
#define x_p_wcpu 50
#define x_p_cpu 57
#define x_p_command 64
#define y_cpustates 2
SHAR_EOF
fi
echo shar: "extracting 'screen.h'" '(874 characters)'
if test -f 'screen.h'
then
echo shar: "will not over-write existing file 'screen.h'"
else
cat << \SHAR_EOF > 'screen.h'
/*
* top - a top users display for Unix 4.2
*
* This file contains all the definitions necessary to use the hand-written
* screen package in "screen.c"
*/
#define TCputs(str) tputs(str, 1, putstdout)
#define putcap(str) ((str) != NULL ? TCputs(str) : 0)
#define Move_to(x, y) TCputs(tgoto(cursor_motion, x, y))
extern char ch_erase; /* set to the user's erase character */
extern char ch_kill; /* set to the user's kill character */
extern char smart_terminal; /* set if the terminal has sufficient termcap
capabilities for normal operation */
/* These aresome termcap strings for use outside of "screen.c" */
extern char *cursor_motion;
extern char *clear_line;
/* rows and columns on the screen according to termcap */
extern int screen_length;
extern int screen_width;
/* a function that puts a single character on stdout */
int putstdout();
SHAR_EOF
fi
echo shar: "extracting 'top.h'" '(794 characters)'
if test -f 'top.h'
then
echo shar: "will not over-write existing file 'top.h'"
else
cat << \SHAR_EOF > 'top.h'
/*
* Top - a top users display for Berkeley Unix
*
* General (global) definitions
*/
/* Number of lines of header information on the standard screen */
#define Header_lines 6
/* Number of columns needed for display */
#define Display_width 80
/* Log base 2 of 1024 is 10 (2^10 == 1024) */
#define LOG1024 10
/* Convert clicks (kernel pages) to kbytes ... */
/* If there is no PGSHIFT defined, assume it is 11 */
/* Is this needed for compatability with some old flavor of 4.2 or 4.1? */
#ifndef PGSHIFT
#define pagetok(size) ((size) << 1)
#else
#if PGSHIFT>10
#define pagetok(size) ((size) << (PGSHIFT - LOG1024))
#else
#define pagetok(size) ((size) >> (LOG1024 - PGSHIFT))
#endif
#endif
extern double logcpu;
double log();
double exp();
extern char (* screenbuf)[Display_width];
SHAR_EOF
fi
echo shar: "extracting 'top.local.h'" '(1261 characters)'
if test -f 'top.local.h'
then
echo shar: "will not over-write existing file 'top.local.h'"
else
cat << \SHAR_EOF > 'top.local.h'
/*
* Top - a top users display for Berkeley Unix
*
* Definitions for things that might vary between installations.
*/
/*
* "Table_size" defines the size of the hash tables used to map uid to
* username. The number of users in /etc/passwd CANNOT be greater than
* this number. If the error message "table overflow: too many users"
* is printed by top, then "Table_size" needs to be increased. Things will
* work best if the number is a prime number that is about twice the number
* of lines in /etc/passwd.
*/
#ifndef Table_size
#define Table_size 421
#endif
/*
* "Nominal_TOPN" is used as the default TOPN when Default_TOPN is Infinity
* and the output is a dumb terminal. If we didn't do this, then
* installations who use a default TOPN of Infinity will get every
* process in the system when running top on a dumb terminal (or redirected
* to a file). Note that Nominal_TOPN is a default: it can still be
* overridden on the command line, even with the value "infinity".
*/
#ifndef Nominal_TOPN
#define Nominal_TOPN 18
#endif
/*
* File name for the system image and the memory devices.
*/
#ifdef MASSCOMP
#define VMUNIX "/unix"
#else
#define VMUNIX "/vmunix"
#endif
#define KMEM "/dev/kmem"
#define MEM "/dev/mem"
SHAR_EOF
fi
echo shar: "extracting 'masscomp.h'" '(407 characters)'
if test -f 'masscomp.h'
then
echo shar: "will not over-write existing file 'masscomp.h'"
else
cat << \SHAR_EOF > 'masscomp.h'
/* include file to define a MASSCOMP */
/* by Stan Barber, Baylor College of Medicine */
#if defined(mc300) || defined(mc500) || defined(mc700)
#define MASSCOMP
#undef DIRSIZ
#define DIRSIZ 14
#define CPUSTATES 4
#define MAX_PROC 300 /* jack this up if you run more than 300 processes */
#include <sys/minmax.h>
#include <sys/pte.h>
#include <sys/cmap.h>
#include <sys/text.h>
#include <sys/cinfo.h>
#endif
SHAR_EOF
fi
echo shar: "extracting 'bzero.c'" '(789 characters)'
if test -f 'bzero.c'
then
echo shar: "will not over-write existing file 'bzero.c'"
else
cat << \SHAR_EOF > 'bzero.c'
/*
* Fast, sleazy, and ugly zero function.
*
* Note that this will only work on a VAX, but it is real easy to write a
* similar function for whatever machine you may need. If nothing else,
* just a simple loop in C will suffice.
*
* Dave Johnson, Rice University.
*
* Enhanced by William LeFebvre of Rice University to handle zeroing more
* than 64K.
*/
# define K 1024
/*
* bzero(memory, amount) - set "amount" bytes starting at "memory" to the
* value 0.
*/
bzero(memory, amount)
char *memory;
int amount;
{
while (amount >= 64*K)
{
_bzero64(memory, 64*K-1);
memory += 64*K-1;
amount -= 64*K-1;
}
_bzero64(memory, amount);
}
_bzero64(memory, amount)
char *memory;
int amount;
{
asm(" movc5 $0, (sp), $0, 8(ap), *4(ap)");
}
SHAR_EOF
fi
exit 0
# End of shell archive
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads