fix potential division by zero issues

This commit is contained in:
marschap
2005-07-03 16:14:45 +00:00
parent b94ea7ba78
commit 7d2612bde8
2 changed files with 29 additions and 19 deletions
+21 -10
View File
@@ -34,12 +34,12 @@ cpu_screen(int rep, int display)
#undef CPU_BUF_SIZE
#define CPU_BUF_SIZE 4
static int first = TRUE;
static float cpu[CPU_BUF_SIZE + 1][5]; // last buffer is scratch
static double cpu[CPU_BUF_SIZE + 1][5]; // last buffer is scratch
static int gauge_wid = 0;
static int usni_wid = 0;
int i, j, n;
float value;
double value;
load_type load;
if (first) {
@@ -104,11 +104,20 @@ cpu_screen(int rep, int display)
cpu[i][j] = cpu[i + 1][j];
// Read new data
cpu[CPU_BUF_SIZE - 1][0] = ((float) load.user / (float) load.total) * 100.0;
cpu[CPU_BUF_SIZE - 1][1] = ((float) load.system / (float) load.total) * 100.0;
cpu[CPU_BUF_SIZE - 1][2] = ((float) load.nice / (float) load.total) * 100.0;
cpu[CPU_BUF_SIZE - 1][3] = ((float) load.idle / (float) load.total) * 100.0;
cpu[CPU_BUF_SIZE - 1][4] = (((float) load.user + (float) load.system + (float) load.nice) / (float) load.total) * 100.0;
if (load.total > 0L) {
cpu[CPU_BUF_SIZE - 1][0] = 100.0 * ((double) load.user / (double) load.total);
cpu[CPU_BUF_SIZE - 1][1] = 100.0 * ((double) load.system / (double) load.total);
cpu[CPU_BUF_SIZE - 1][2] = 100.0 * ((double) load.nice / (double) load.total);
cpu[CPU_BUF_SIZE - 1][3] = 100.0 * ((double) load.idle / (double) load.total);
cpu[CPU_BUF_SIZE - 1][4] = 100.0 * (((double) load.user + (double) load.system + (double) load.nice) / (double) load.total);
}
else {
cpu[CPU_BUF_SIZE - 1][0] = 0.0;
cpu[CPU_BUF_SIZE - 1][1] = 0.0;
cpu[CPU_BUF_SIZE - 1][2] = 0.0;
cpu[CPU_BUF_SIZE - 1][3] = 0.0;
cpu[CPU_BUF_SIZE - 1][4] = 0.0;
}
/*
// Only clear on first display...
@@ -204,12 +213,12 @@ cpu_graph_screen(int rep, int display)
#undef CPU_BUF_SIZE
#define CPU_BUF_SIZE 2
static int first = TRUE;
static float cpu[CPU_BUF_SIZE];
static double cpu[CPU_BUF_SIZE];
static int cpu_past[LCD_MAX_WIDTH];
static int gauge_hgt = 0;
int i, n = 0;
float value ;
double value ;
load_type load;
if (first) {
@@ -248,7 +257,9 @@ cpu_graph_screen(int rep, int display)
// Read and save new data
machine_get_load(&load);
cpu[CPU_BUF_SIZE-1] = ((float) load.user + (float) load.system + (float) load.nice) / (float) load.total;
cpu[CPU_BUF_SIZE-1] = (load.total > 0L)
? ((double) load.user + (double) load.system + (double) load.nice) / (double) load.total
: 0;
// Average values for final result
value = 0.0;
+8 -9
View File
@@ -132,21 +132,20 @@ cpu_smp_screen (int rep, int display)
for (j = 4; j < 5; j++)
cpu[z][i][j] = cpu[z][i + 1][j];
if (load[z].total == 0) {
continue;
}
// Read new data
#if 0 // we're only using 4 right now
cpu[z][CPU_BUF_SIZE - 1][0] = ((float) load[z].user / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE - 1][1] = ((float) load[z].system / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE - 1][2] = ((float) load[z].nice / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE - 1][3] = ((float) load[z].idle / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE-1][0] = ((float) load[z].user / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE-1][1] = ((float) load[z].system / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE-1][2] = ((float) load[z].nice / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE-1][3] = ((float) load[z].idle / (float) load[z].total) * 100.0;
#endif
cpu[z][CPU_BUF_SIZE - 1][4] = (((float) load[z].user + (float) load[z].system + (float) load[z].nice) / (float) load[z].total) * 100.0;
cpu[z][CPU_BUF_SIZE-1][4] = (load[z].total > 0L)
? (((float) load[z].user + (float) load[z].system + (float) load[z].nice) / (float) load[z].total) * 100.0
: 0.0;
// Average values for final result
for (i = 4; i < 5; i++) {
value = 0;
value = 0.0;
for (j = 0; j < CPU_BUF_SIZE; j++) {
value += cpu[z][j][i];
}