|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 3.2
3: * Copyright (c) 1982, 1991 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: * The layout of the mon.out file created by a call to monitor is
11: * as follows:
12: * header (m_hdr)
13: * function count buffer (array of m_funcs)
14: * profil buffer (array of shorts)
15: * The profil data scales the pc as follows:
16: * bin number = (pc - low pc) * (scale/2) / (1<<16)
17: */
18:
19: #ifndef MON_H
20: #define MON_H MON_H
21:
22: #include <sys/types.h>
23:
24: #ifndef NULL
25: #define NULL ((char *)0)
26: #endif
27:
28: struct m_hdr {
29: unsigned m_nbins, /* number of bins */
30: m_scale, /* scale factor */
31: m_nfuncs; /* number of function counts */
32: vaddr_t m_lowpc; /* lowest pc to monitor */
33: vaddr_t m_lowsp; /* lowest sp in scount */
34: vaddr_t m_hisp; /* highest sp in scount */
35: };
36:
37: struct m_func {
38: vaddr_t m_addr; /* address in function */
39: long m_ncalls; /* number of times function called */
40: };
41:
42: /*
43: * The m_flst structure is allocated (by the C compiler) for every routine
44: * compiled with the -p option.
45: */
46: struct m_flst {
47: struct m_func m_data; /* data on this function */
48: struct m_flst *m_link; /* link to next function in list */
49: };
50:
51: #endif
52:
53: /* end of mon.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.