|
|
1.1 root 1: /* @(#)profile.c 1.3 */
2: /* @(#)profile.c 1.2 */
3: char *mktemp();
4:
5: monitor(lowpc, highpc, buf, bufsiz, cntsiz)
6: char *lowpc, *highpc;
7: int *buf, bufsiz;
8: {
9: register o;
10: static *sbuf, ssiz;
11:
12: if (lowpc == 0) {
13: profil(0, 0, 0, 0);
14: o = creat(mktemp("profXXXXXX"), 0666);
15: write(o, sbuf, ssiz<<1);
16: close(o);
17: return;
18: }
19: ssiz = bufsiz;
20: buf[0] = lowpc;
21: buf[1] = highpc;
22: buf[2] = cntsiz;
23: sbuf = buf;
24: buf += 3*(cntsiz+1);
25: bufsiz -= 3*(cntsiz+1);
26: if (bufsiz<=0)
27: return;
28: o = ((highpc - lowpc)>>1) & 077777;
29: if(bufsiz < o)
30: o = ((long)bufsiz<<15) / o;
31: else
32: o = 077777;
33: profil(buf, bufsiz<<1, lowpc, o<<1);
34: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.