```   1: /*
2:  * Copyright (c) 1982, 1986 Regents of the University of California.
4:  * specifies the terms and conditions for redistribution.
5:  *
6:  *	@(#)gprof.h	7.1 (Berkeley) 6/4/86
7:  */
8:
9: struct phdr {
10:     char    *lpc;
11:     char    *hpc;
12:     int     ncnt;
13: };
14:
15:     /*
16:      *	histogram counters are unsigned shorts (according to the kernel).
17:      */
18: #define HISTCOUNTER unsigned short
19:
20:     /*
21:      *	fraction of text space to allocate for histogram counters
22:      *	here, 1/2
23:      */
24: #define HISTFRACTION    2
25:
26:     /*
27:      *	Fraction of text space to allocate for from hash buckets.
28:      *	The value of HASHFRACTION is based on the minimum number of bytes
29:      *	of separation between two subroutine call points in the object code.
30:      *	Given MIN_SUBR_SEPARATION bytes of separation the value of
31:      *	HASHFRACTION is calculated as:
32:      *
33:      *		HASHFRACTION = MIN_SUBR_SEPARATION / (2 * sizeof(short) - 1);
34:      *
35:      *	For the VAX, the shortest two call sequence is:
36:      *
37:      *		calls	\$0,(r0)
38:      *		calls	\$0,(r0)
39:      *
40:      *	which is separated by only three bytes, thus HASHFRACTION is
41:      *	calculated as:
42:      *
43:      *		HASHFRACTION = 3 / (2 * 2 - 1) = 1
44:      *
45:      *	Note that the division above rounds down, thus if MIN_SUBR_FRACTION
46:      *	is less than three, this algorithm will not work!
47:      *
48:      *	NB: for the kernel we assert that the shortest two call sequence is:
49:      *
50:      *		calls	\$0,_name
51:      *		calls	\$0,_name
52:      *
53:      *	which is separated by seven bytes, thus HASHFRACTION is calculated as:
54:      *
55:      *		HASHFRACTION = 7 / (2 * 2 - 1) = 2
56:      */
57: #define HASHFRACTION    2
58:
59:     /*
60:      *	percent of text space to allocate for tostructs
61:      *	with a minimum.
62:      */
63: #define ARCDENSITY  2
64: #define MINARCS     50
65:
66: struct tostruct {
67:     char        *selfpc;
68:     long        count;
70: };
71:
72:     /*
73:      *	a raw arc,
74:      *	    with pointers to the calling site and the called site
75:      *	    and a count.
76:      */
77: struct rawarc {
78:     unsigned long   raw_frompc;
79:     unsigned long   raw_selfpc;
80:     long        raw_count;
81: };
82:
83:     /*
84:      *	general rounding functions.
85:      */
86: #define ROUNDDOWN(x,y)  (((x)/(y))*(y))
87: #define ROUNDUP(x,y)    ((((x)+(y)-1)/(y))*(y))
```

#### Defined struct's

phdr defined in line 9; used 10 times
rawarc defined in line 77; never used
tostruct defined in line 66; used 10 times

#### Defined macros

ARCDENSITY defined in line 63; used 1 times
HASHFRACTION defined in line 57; used 2 times
HISTCOUNTER defined in line 18; used 2 times
HISTFRACTION defined in line 24; used 4 times
MINARCS defined in line 64; used 2 times
ROUNDDOWN defined in line 86; used 1 times
ROUNDUP defined in line 87; used 1 times

#### Usage of this include

 Last modified: 1986-06-05 Generated: 2016-12-26 Generated by src2html V0.67 page hit count: 720  