|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 4.0
3: * Copyright (c) 1982, 1992 by Mark Williams Company.
4: * All rights reserved. May not be copied without permission.
5: -lgl) */
6: /*
7: * mon.h
8: * Program profiling (monitor) header.
9: *
10: * A call to monitor() creates a mon.out file structured as follows:
11: * header struct m_hdr
12: * function count array struct m_func[m_nfuncs]
13: * profil buffer short[m_nbins]
14: * The profil data scales the pc as follows:
15: * bin number = (pc - low pc) * (scale/2) / (1<<16)
16: */
17:
18: #ifndef _MON_H
19: #define _MON_H
20:
21: #include <sys/types.h>
22:
23: #ifndef NULL
24: #define NULL ((char *)0)
25: #endif
26:
27: struct m_hdr {
28: unsigned short m_nbins; /* number of bins */
29: unsigned short m_scale; /* scale factor */
30: unsigned short m_nfuncs; /* number of function counts */
31: vaddr_t m_lowpc; /* lowest pc to monitor */
32: vaddr_t m_lowsp; /* lowest sp in scount */
33: vaddr_t m_hisp; /* highest sp in scount */
34: };
35:
36: struct m_func {
37: vaddr_t m_addr; /* address in function */
38: long m_ncalls; /* number of times function called */
39: };
40:
41: /*
42: * The C compiler allocates an m_flst structure for each function
43: * compiled with the -VPROF option.
44: */
45: struct m_flst {
46: struct m_func m_data; /* data on this function */
47: struct m_flst *m_link; /* link to next function in list */
48: };
49:
50: #endif
51:
52: /* end of mon.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.