static void fill_load(float *load, loadCharType *loadval, int *busyBit, int nIdx) { int j; int i=1; for (j=0;j<UT;j++) { if (busyBit && (busyBit[0] & i)) sprintf(loadval[j], "*%4.1f ", load[j]); else fillDefal (loadval[j], "%5.1f ", j, load[j]); i = i << 1; } if (busyBit && (busyBit[0] & HOST_BUSY_UT)) sprintf(loadval[UT], "*%2.1f ", load[UT]); else fillDefal (loadval[UT], " %3.1f ", UT, load[UT]); if (busyBit && (busyBit[0] & HOST_BUSY_PG)) sprintf(loadval[PG], "*%6.1f ", load[PG]); else fillDefal (loadval[PG], "%7.1f ", PG, load[PG]); if (busyBit && (busyBit[0] & HOST_BUSY_IO)) sprintf(loadval[IO], "*%4.0f ", load[IO]); else fillDefal (loadval[IO], "%5.0f ", IO, load[IO]); if (busyBit && (busyBit[0] & HOST_BUSY_LS)) sprintf(loadval[LS], "* %2.0f ", load[LS]); else fillDefal (loadval[LS], " %3.0f ", LS, load[LS]); if (busyBit && (busyBit[0] & HOST_BUSY_IT)) sprintf(loadval[IT], "*%4.0f ", load[IT]); else fillDefal (loadval[IT], "%5.0f ", IT, load[IT]); if (busyBit && (busyBit[0] & HOST_BUSY_SWP)) sprintf(loadval[SWP], "*%4.0fM ", load[SWP]); else fillDefal (loadval[SWP], "%5.0fM ", SWP, load[SWP]); if (busyBit && (busyBit[0] & HOST_BUSY_MEM)) sprintf(loadval[MEM], "*%4.0fM ", load[MEM]); else fillDefal (loadval[MEM], "%5.0fM ", MEM, load[MEM]); if (busyBit && (busyBit[0] & HOST_BUSY_TMP)) sprintf(loadval[TMP], "*%4.0fM ", load[TMP]); else fillDefal (loadval[TMP], "%5.0fM ", TMP, load[TMP]); for (j = MEM + 1; j < nIdx; j++) { if (busyBit && LSB_ISBUSYON (busyBit, j)) sprintf(loadval[j], "*%6.1f", load[j]); else fillDefal(loadval[j], "%6.1f", j, load[j]); } for (j=0;j<nIdx;j++) { char *sp; if (loadval[j][0] != '*') continue; sp = loadval[j]; for (sp=sp+1; *sp==' '; sp++) { *(sp-1) = ' '; *sp = '*'; } } }
static int makeFields(struct hostInfoEnt *host, char *loadval[], char **dispindex, int option) { int j, id, nf, index; char *sp; char tmpfield[MAXFIELDSIZE]; char fmtField[MAXFIELDSIZE]; char firstFmt[MAXFIELDSIZE]; float real, avail, load; nf = 0; for(j=0; dispindex[j] && j < host->nIdx; j++, nf++) { int newIndexLen; id = nameToFmt(dispindex[j]); if (id == DEFAULT_FMT) newIndexLen = strlen(dispindex[j]); real = getLoad(dispindex[j], host->realLoad, &index); avail = getLoad(dispindex[j], host->load, &index); if (option == TRUE) load = avail; else { real = getLoad(dispindex[j], host->realLoad, &index); load = (avail >= real)? (avail - real):(real - avail); } if (load >= INFINIT_LOAD) sp = "- "; else { if (option == TRUE && (host->hStatus & HOST_STAT_BUSY) && (LSB_ISBUSYON (host->busySched, index) || LSB_ISBUSYON (host->busyStop, index))) { strcpy(firstFmt, fmt[id].busy); sprintf(fmtField, "%s%s",firstFmt, fmt[id].normFmt); sprintf(tmpfield, fmtField, load * fmt[id].scale); } else { strcpy(firstFmt, fmt[id].ok); sprintf(fmtField, "%s%s", firstFmt, fmt[id].normFmt); sprintf(tmpfield, fmtField, load * fmt[id].scale); } sp = stripSpaces(tmpfield); if (strlen(sp) > fmt[id].dispLen) { if (load > 1024) sprintf(fmtField, "%s%s", firstFmt, fmt[id].expFmt); else sprintf(fmtField, "%s%s", firstFmt, fmt[id].normFmt); if ((load > 1024) && ((!strcmp(fmt[id].name,"mem")) || (!strcmp(fmt[id].name,"tmp")) || (!strcmp(fmt[id].name,"swp")))) sprintf(tmpfield,fmtField,(load*fmt[id].scale)/1024); else sprintf(tmpfield,fmtField, (load * fmt[id].scale)); } sp = stripSpaces(tmpfield); } if (id == DEFAULT_FMT && newIndexLen >= 7){ char newFmt[10]; sprintf(newFmt, " %s%d%s", "%", newIndexLen, "s"); sprintf(loadval[j], newFmt, sp); } else sprintf(loadval[j], fmt[id].hdr, sp); } return(nf); }