- time = 0;
- for (i = 0; i < CPUSTATES; i++)
- time += s.cp_time[i];
- if (time == 0.0)
- time = 1.0;
- wmove(wnd, row, 5); histogram(100*s.cp_time[o] / time, 60, 0.5, 'X');
+ if (nlst[X_DK_BUSY].n_type == 0)
+ return;
+ for (i = 0; i < dk_ndrive; i++) {
+#define X(fld) t = s.fld[i]; s.fld[i] -= s1.fld[i]; s1.fld[i] = t
+ X(dk_xfer); X(dk_seek); X(dk_wds); X(dk_time);
+ }
+ etime = 0;
+ for(i = 0; i < CPUSTATES; i++) {
+ X(cp_time);
+ etime += s.cp_time[i];
+ }
+ if (etime == 0.0)
+ etime = 1.0;
+ etime /= (float) hz;
+ row = 1;
+ for (i = 0; i < CPUSTATES; i++)
+ stat1(row++, i);
+ if (!numbers) {
+ row += 2;
+ for (i = 0; i < dk_ndrive; i++)
+ if (dk_select[i] && dk_mspw[i] != 0.0) {
+ if (row > wnd->_maxy - linesperregion)
+ break;
+ row = stats(row, INSET, i);
+ }
+ return;
+ }
+ col = 0;
+ wmove(wnd, row + linesperregion, 0);
+ wdeleteln(wnd);
+ wmove(wnd, row + 3, 0);
+ winsertln(wnd);
+ for (i = 0; i < dk_ndrive; i++)
+ if (dk_select[i] && dk_mspw[i] != 0.0) {
+ if (col + COLWIDTH >= wnd->_maxx) {
+ col = 0, row += linesperregion + 1;
+ if (row > wnd->_maxy - (linesperregion + 1))
+ break;
+ wmove(wnd, row + linesperregion, 0);
+ wdeleteln(wnd);
+ wmove(wnd, row + 3, 0);
+ winsertln(wnd);
+ }
+ (void) stats(row + 3, col, i);
+ col += COLWIDTH;
+ }