Annotation of 42BSD/ingres/source/ctlmod/monitor.c, revision 1.1.1.1

1.1       root        1: # include      <useful.h>
                      2: # include      <opsys.h>
                      3: # include      <pmon.h>
                      4: # include      <sccs.h>
                      5: 
                      6: SCCSID(@(#)monitor.c   7.1     2/5/81)
                      7: 
                      8: /*
                      9: **  MARKPERF -- mark the performance info in a monitor struct
                     10: **
                     11: **     At any point, there is a monitor struct representing the
                     12: **     current object running.  This is stored in the static
                     13: **     variable "curmon".  This call essentially does a "context
                     14: **     switch" to the structure passed as the argument.
                     15: **
                     16: **     Parameters:
                     17: **             mbuf -- a pointer to a monitor struct.
                     18: **
                     19: **     Returns:
                     20: **             a pointer to the previous monitor struct.
                     21: **
                     22: **     Side Effects:
                     23: **             none
                     24: */
                     25: 
                     26: # define       HZ      60      /* speed of clock in ticks/second */
                     27: 
                     28: struct tbuffer
                     29: {
                     30: # ifdef xV7_UNIX
                     31:        long    tms_utime;
                     32:        long    tms_stime;
                     33: # else
                     34:        short   tms_utime;
                     35:        short   tms_stime;
                     36: # endif
                     37:        long    tms_cutime;
                     38:        long    tms_cstime;
                     39: };
                     40: 
                     41: struct monitor *
                     42: markperf(mbuf)
                     43: register struct monitor        *mbuf;
                     44: {
                     45:        struct tbuffer          tbuf;
                     46:        register long           ut;
                     47:        register long           st;
                     48:        static struct tbuffer   baset;
                     49:        static struct monitor   *curmon;
                     50:        register struct monitor *oldmon;
                     51: 
                     52:        times(&tbuf);
                     53: 
                     54:        ut = tbuf.tms_utime + tbuf.tms_cutime - baset.tms_utime - baset.tms_cutime;
                     55:        st = tbuf.tms_stime + tbuf.tms_cstime - baset.tms_stime - baset.tms_cstime;
                     56:        oldmon = curmon;
                     57:        if (oldmon != NULL)
                     58:        {
                     59:                oldmon->mon_utime += ut;
                     60:                oldmon->mon_stime += st;
                     61:        }
                     62:        curmon = mbuf;
                     63:        bmove(&tbuf, &baset, sizeof baset);
                     64:        return (oldmon);
                     65: }
                     66: /*
                     67: **  ADD_MON -- "add" two monitor structs
                     68: **
                     69: **     The logical sum of two monitor structs is created
                     70: **
                     71: **     Parameters:
                     72: **             a -- the first monitor struct
                     73: **             b -- the second monitor struct; gets the result.
                     74: **
                     75: **     Returns:
                     76: **             none (value is returned through b)
                     77: **
                     78: **     Side Effects:
                     79: **             none.
                     80: */
                     81: 
                     82: add_mon(a, b)
                     83: register struct monitor        *a;
                     84: register struct monitor        *b;
                     85: {
                     86:        b->mon_utime += a->mon_utime;
                     87:        b->mon_stime += a->mon_stime;
                     88: }
                     89: /*
                     90: **  CVT_TIME -- convert time for output
                     91: **
                     92: **     Converts a time in ticks to a string (in seconds) for
                     93: **     printing.
                     94: **
                     95: **     Parameters:
                     96: **             t -- time in ticks
                     97: **
                     98: **     Returns:
                     99: **             pointer to string suitable for printing or framing.
                    100: **
                    101: **     Side Effects:
                    102: **             previous return value is clobbered.
                    103: */
                    104: 
                    105: char *
                    106: cvt_time(t)
                    107: long   t;
                    108: {
                    109:        static char     buf[30];
                    110: 
                    111:        sprintf(buf, "%.3f", ((float) t) / ((float) HZ));
                    112:        return (buf);
                    113: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.