Example #1
0
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 = '*';
        }
    }
} 
Example #2
0
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);
}