Annotation of researchv9/jerq/sgs/libsdp/stats.c, revision 1.1.1.1

1.1       root        1: static char ID[] = "@(#) stats.c: 1.1 3/16/82";
                      2: 
                      3: #include <stdio.h>
                      4: #include "sdp.h"
                      5: #include "define3.h"
                      6: 
                      7: #ifdef SHORT
                      8: #define ST01   "ST01 "
                      9: #define STAU   "STAU "
                     10: #else
                     11: #define ST01   "ST01 -- attempt to take statistics on an unhoused enviroment\n%o\n",environ
                     12: #define STAU   "%s","STAU -- audit failed in sdp_stats\n"
                     13: #endif
                     14: 
                     15: #ifdef SWEET
                     16: #define PROLOG
                     17: #define EPILOG
                     18: #else
                     19: #define PROLOG if(aud_flag == AUDITON)\
                     20:                        aud_set() ;
                     21: #define EPILOG if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
                     22:                {\
                     23:                        stats.uses =   ERROR ;\
                     24:                        stats.faults = ERROR ;\
                     25:                        stats.writes = ERROR ;\
                     26:                        stats.maxuse = ERROR ;\
                     27:                        ERR_RET(STAU,stats) ;  \
                     28:                }\
                     29:                if(hist_fp != NULL)\
                     30:                        fprintf(hist_fp,"ST\t%o\t%ld\t%ld\t%ld\t%d\n",environ,stats.uses,stats.faults,stats.writes,stats.maxuse) ;
                     31: #endif
                     32: 
                     33: extern int aud_flag ;
                     34: extern FILE *hist_fp ;
                     35: extern struct ENVIRON *first_environ ;
                     36: extern FATAL() ;
                     37: extern struct LIBFILE *Glib_file ;
                     38: 
                     39: struct STATS                                   /* contains statistics */
                     40: sdp_stats(environ)
                     41: struct ENVIRON *environ ;
                     42: {
                     43:        register struct ENVIRON *curr ;
                     44:        register struct ENVIRON *next ;
                     45:        struct STATS            stats ;
                     46: 
                     47:        PROLOG
                     48:        stats.uses   = 0l ;
                     49:        stats.faults = 0l ;
                     50:        stats.writes = 0l ;
                     51:        stats.maxuse = 0 ;
                     52: 
                     53:        for(curr=first_environ; curr!=NULL; curr=next)
                     54:        {
                     55:                next = curr->next_environ ;
                     56:                if( (curr==environ) || (environ==NULL) )
                     57:                {
                     58:                        stats.uses   += (curr->stats).uses ;
                     59:                        stats.faults += (curr->stats).faults ;
                     60:                        stats.writes += (curr->stats).writes ;
                     61:                        stats.maxuse += (curr->stats).maxuse ;
                     62:                        stats.curuse += (curr->stats).curuse ;
                     63: 
                     64:                        if(environ == curr)
                     65:                                break ;
                     66:                }
                     67:        }
                     68: 
                     69:        if( (curr == NULL) && (environ != NULL) )
                     70:        {
                     71:                stats.uses   = ERROR ;
                     72:                stats.faults = ERROR ;
                     73:                stats.writes = ERROR ;
                     74:                stats.maxuse = ERROR ;
                     75:                ERR_RET(ST01,stats)
                     76:        }
                     77: 
                     78:        EPILOG
                     79:        return(stats) ;
                     80: }

unix.superglobalmegacorp.com

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