2009-10-08 H.J. Lu <hongjiu.lu@intel.com>
[deliverable/binutils-gdb.git] / gprof / hist.h
CommitLineData
ef368dac 1/* hist.h
0eee5820 2
c34f4fc6
NC
3 Copyright 2000, 2001, 2002, 2004, 2005, 2007, 2009
4 Free Software Foundation, Inc.
ef368dac 5
651dbc76 6 This file is part of GNU Binutils.
ef368dac 7
651dbc76
NC
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
ef368dac 12
651dbc76
NC
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
ef368dac 17
651dbc76
NC
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21 MA 02110-1301, USA. */
ef368dac 22\f
252b5132
RH
23#ifndef hist_h
24#define hist_h
25
b3296dc5
VP
26typedef struct histogram
27{
28 bfd_vma lowpc;
29 bfd_vma highpc;
30 unsigned int num_bins;
31 int *sample; /* Histogram samples (shorts in the file!). */
32} histogram;
33
c34f4fc6
NC
34extern histogram * histograms;
35extern unsigned num_histograms;
ef368dac
NC
36
37/* Scale factor converting samples to pc values:
38 each sample covers HIST_SCALE bytes. */
252b5132
RH
39extern double hist_scale;
40
3e8f6abf
BE
41extern void hist_read_rec (FILE *, const char *);
42extern void hist_write_hist (FILE *, const char *);
43extern void hist_assign_samples (void);
44extern void hist_print (void);
252b5132 45
b3296dc5
VP
46/* Checks if ADDRESS is within the range of addresses for which
47 we have histogram data. Returns 1 if so and 0 otherwise. */
48extern int hist_check_address (unsigned address);
49
50/* Given a range of addresses for a symbol, find a histogram record
51 that intersects with this range, and clips the range to that
52 histogram record, modifying *P_LOWPC and *P_HIGHPC.
53
54 If no intersection is found, *P_LOWPC and *P_HIGHPC will be set to
55 one unspecified value. If more that one intersection is found,
56 an error is emitted. */
57extern void hist_clip_symbol_address (bfd_vma *p_lowpc, bfd_vma *p_highpc);
58
252b5132 59#endif /* hist_h */
This page took 0.386264 seconds and 4 git commands to generate.