home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libc / gen / mon.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  552 b   |  31 lines

  1. monitor(lowpc, highpc, buf, bufsiz, cntsiz)
  2. char *lowpc, *highpc;
  3. int *buf, bufsiz;
  4. {
  5.     register o;
  6.     static *sbuf, ssiz;
  7.  
  8.     if (lowpc == 0) {
  9.         profil(0, 0, 0, 0);
  10.         o = creat("mon.out", 0666);
  11.         write(o, sbuf, ssiz<<1);
  12.         close(o);
  13.         return;
  14.     }
  15.     ssiz = bufsiz;
  16.     buf[0] = (int)lowpc;
  17.     buf[1] = (int)highpc;
  18.     buf[2] = cntsiz;
  19.     sbuf = buf;
  20.     buf += 3*(cntsiz+1);
  21.     bufsiz -= 3*(cntsiz+1);
  22.     if (bufsiz<=0)
  23.         return;
  24.     o = ((highpc - lowpc)>>1) & 077777;
  25.     if(bufsiz < o)
  26.         o = ((long)bufsiz<<15) / o;
  27.     else
  28.         o = 077777;
  29.     profil(buf, bufsiz<<1, lowpc, o<<1);
  30. }
  31.