1
0
Files
irix-657m-src/irix/cmd/mmscd/loadtest.c
2022-09-29 17:59:04 +03:00

91 lines
1.8 KiB
C

#include <sys/types.h>
#include <sys/sysmp.h>
#include <sys/sysinfo.h>
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <curses.h>
#define DECAY_PER_SECOND 0.25
#define UPDATE_PERIOD 0.25
/*
* Test program for load module
*/
#include "load.h"
#define COL_WIDTH 1
#define COLCPU0 7
#define COL(cpu) (COLCPU0 + (cpu) * COL_WIDTH)
int opt_nodemode=1;
main(int argc, char **argv)
{
int i, j;
int ncpus;
int clk_tck, period_tck;
u_char *p;
clk_tck = CLK_TCK;
period_tck = (int) (CLK_TCK * UPDATE_PERIOD + 0.5);
initscr();
clear();
ncpus = load_cpu_get();
mvaddstr(LINES - 5, 2, "0%");
mvaddstr(0, 0, "100%");
mvaddstr(LINES - 3, 3, "C");
mvaddstr(LINES - 2, 3, "P");
mvaddstr(LINES - 1, 3, "U");
mvaddstr(LINES - 12, 0, "u)ser");
mvaddstr(LINES - 11, 0, "s)ys");
mvaddstr(LINES - 10, 0, "i)ntr");
mvaddstr(LINES - 9, 0, "d)isk");
mvaddstr(LINES - 8, 0, "g)fx");
for (i = 0; i < ncpus; i++) {
mvprintw(LINES - 1, COL(i), "%d", i % 10);
mvprintw(LINES - 2, COL(i), "%d", i / 10 % 10);
mvprintw(LINES - 3, COL(i), "%d", i / 100);
}
while (1) {
p = load_graph(1, DECAY_PER_SECOND, UPDATE_PERIOD);
for (i = 0; i < ncpus; i++) {
u_char h_user, h_sys, h_intr, h_io, h_gfx;
h_user = *p++ * (LINES - 4) / 255;
h_sys = *p++ * (LINES - 4) / 255;
h_intr = *p++ * (LINES - 4) / 255;
h_io = *p++ * (LINES - 4) / 255;
h_gfx = *p++ * (LINES - 4) / 255;
for (j = 0; j < LINES - 4; j++)
mvaddch(LINES - 5 - j, COL(i),
j < h_user ? 'u' :
j < h_sys ? 's' :
j < h_intr ? 'i' :
j < h_io ? 'd' :
j < h_gfx ? 'g' :
' ');
}
move(LINES - 1, 0);
refresh();
sginap(period_tck);
}
}
void
cleanup(void) {
/* needed by error.c */
return;
}