Annotation of researchv9/jtools/src/pi/audit.c, revision 1.1

1.1     ! root        1: #include "univ.h"
        !             2: #include "audit.h"
        !             3: SRCFILE("audit.c")
        !             4: 
        !             5: void Audit::mon(long on)
        !             6: {
        !             7:        extern monitor(long,long=0,short* =0,int=0,int=0);
        !             8:        if( on )
        !             9:                monitor(2, 150000, new short[50000], 50000, 0);
        !            10:        else
        !            11:                monitor(0);
        !            12: }
        !            13: 
        !            14: void StartAudit() { new Audit; NewPadStats(); }
        !            15: 
        !            16: void Audit::setperiod(long p) { if( period = p ) cycle(); }
        !            17: 
        !            18: void Audit::clone() { new Audit; }
        !            19: 
        !            20: Audit::Audit(){
        !            21:        pad = 0;
        !            22:        lastclock = 0;
        !            23:        setperiod(0);
        !            24:        cycle();
        !            25: }
        !            26: 
        !            27: void Audit::lookup()
        !            28: {
        !            29:        extern long IdToSymCalls, StrCmpCalls, LoctosymHit, Loctosym;
        !            30:        int i = IdToSymCalls, s = StrCmpCalls, h = LoctosymHit, l = Loctosym;
        !            31:        pad->error("strcmp/idtosym=%d/%d; hit/loctosym=%d/%d", s, i, h, l);
        !            32: }
        !            33: 
        !            34: void Audit::lazy()
        !            35: {
        !            36:        extern int FunctionStubs, FunctionGathered, UTypeStubs, UTypeGathered;
        !            37:        int fs=FunctionStubs, fg=FunctionGathered, us=UTypeStubs, ug=UTypeGathered;
        !            38:        pad->error( "functions: %d/%d; types: %d/%d", fg, fs, ug, us );
        !            39: }
        !            40: 
        !            41: void Audit::cycle()
        !            42: {
        !            43:        char *ctime(long*);
        !            44:        long clock, time(long*);
        !            45:        Menu m;
        !            46:        void abort(), exit();
        !            47: 
        !            48:        trace( "%d.cycle()", this );
        !            49:        if( !pad ){
        !            50:                pad = new Pad( (PadRcv*) this );
        !            51:                pad->banner( "Audit %d:", this );
        !            52:                pad->name( "Audit" );
        !            53:                m.sort( "abort()?",     (Action)&abort          );
        !            54:                m.sort( "clone",        (Action)&Audit::clone           );
        !            55:                m.sort( "exit(0)?",     (Action)&exit,      0   );
        !            56:                m.sort( "lazy symbol",  (Action)&Audit::lazy,           );
        !            57:                m.sort( "lookup",       (Action)&Audit::lookup          );
        !            58:                m.sort( "setperiod(0)", (Action)&Audit::setperiod, 0    );
        !            59:                m.sort( "setperiod(1)", (Action)&Audit::setperiod, 1    );
        !            60:                m.sort( "setperiod(5)", (Action)&Audit::setperiod, 5    );
        !            61:                m.sort( "setperiod(60)",(Action)&Audit::setperiod, 60   );
        !            62:                m.sort( "monitor(...)", (Action)&Audit::mon,   1        );
        !            63:                m.sort( "monitor(0)",   (Action)&Audit::mon,   0        );
        !            64:                pad->menu(m);
        !            65:        }
        !            66:        if( period ) pad->alarm(period);
        !            67:        clock = time(0);
        !            68:        if( clock < lastclock+period ) return;
        !            69:        lastclock = clock;
        !            70:        pad->insert( 1, "%24s", ctime( &clock) );
        !            71: }

unix.superglobalmegacorp.com

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