home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include "pmplib.h"
- #ifdef PMPSIG
- #include <sys/time.h>
- #include <signal.h>
- int pmpsig = 0;
- #endif
-
- static struct pmpcount *cur = (struct pmpcount *) 0;
-
- void pmpregister(pmpc)
- struct pmpcount *pmpc;
- {
- pmpc->prev = cur;
- cur = pmpc;
- }
-
- pmp(fn)
- char *fn;
- {
- FILE *fi;
- struct pmpcount *t;
-
- if ((fi = fopen(fn,"w")) == NULL)
- return(-1);
- for (t = cur;t;t = t->prev)
- #ifdef PMPSIG
- (void) fprintf(fi,"%s %d: %d+%d\n",t->file,t->line,t->scount,t->tcount);
- #else
- (void) fprintf(fi,"%s %d: %d\n",t->file,t->line,t->scount);
- #endif
- (void) fclose(fi);
- return(0);
- }
-
- #ifdef PMPSIG
- pmpsighandle()
- {
- pmpsig++;
- }
-
- void pmpstartsig(us)
- int us;
- {
- struct itimerval it;
-
- it.it_interval.tv_sec = it.it_value.tv_sec = us / 100000;
- it.it_interval.tv_usec = it.it_value.tv_usec = us % 100000;
-
- (void) signal(SIGVTALRM,pmpsighandle);
- (void) setitimer(ITIMER_VIRTUAL,&it,(struct itimerval *) 0);
- }
- #endif
-