File:  [Research Unix] / researchv9 / jtools / src / pi / audit.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#include "univ.h"
#include "audit.h"
SRCFILE("audit.c")

void Audit::mon(long on)
{
	extern monitor(long,long=0,short* =0,int=0,int=0);
	if( on )
		monitor(2, 150000, new short[50000], 50000, 0);
	else
		monitor(0);
}

void StartAudit() { new Audit; NewPadStats(); }

void Audit::setperiod(long p) { if( period = p ) cycle(); }

void Audit::clone() { new Audit; }

Audit::Audit(){
	pad = 0;
	lastclock = 0;
	setperiod(0);
	cycle();
}

void Audit::lookup()
{
	extern long IdToSymCalls, StrCmpCalls, LoctosymHit, Loctosym;
	int i = IdToSymCalls, s = StrCmpCalls, h = LoctosymHit, l = Loctosym;
	pad->error("strcmp/idtosym=%d/%d; hit/loctosym=%d/%d", s, i, h, l);
}

void Audit::lazy()
{
	extern int FunctionStubs, FunctionGathered, UTypeStubs, UTypeGathered;
	int fs=FunctionStubs, fg=FunctionGathered, us=UTypeStubs, ug=UTypeGathered;
	pad->error( "functions: %d/%d; types: %d/%d", fg, fs, ug, us );
}

void Audit::cycle()
{
	char *ctime(long*);
	long clock, time(long*);
	Menu m;
	void abort(), exit();

	trace( "%d.cycle()", this );
	if( !pad ){
		pad = new Pad( (PadRcv*) this );
		pad->banner( "Audit %d:", this );
		pad->name( "Audit" );
		m.sort( "abort()?",	(Action)&abort		);
		m.sort( "clone",	(Action)&Audit::clone		);
		m.sort( "exit(0)?",	(Action)&exit,	    0	);
		m.sort( "lazy symbol",	(Action)&Audit::lazy,		);
		m.sort( "lookup",	(Action)&Audit::lookup		);
		m.sort( "setperiod(0)",	(Action)&Audit::setperiod, 0	);
		m.sort( "setperiod(1)",	(Action)&Audit::setperiod, 1	);
		m.sort( "setperiod(5)",	(Action)&Audit::setperiod, 5	);
		m.sort( "setperiod(60)",(Action)&Audit::setperiod, 60	);
		m.sort( "monitor(...)", (Action)&Audit::mon,   1	);
		m.sort( "monitor(0)",   (Action)&Audit::mon,   0	);
		pad->menu(m);
	}
	if( period ) pad->alarm(period);
	clock = time(0);
	if( clock < lastclock+period ) return;
	lastclock = clock;
	pad->insert( 1, "%24s", ctime( &clock) );
}

unix.superglobalmegacorp.com

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