* elflink.c (_bfd_elf_link_assign_sym_version): Improve error
[deliverable/binutils-gdb.git] / gprof / hist.h
index b36528164f346d2beacce36e986cf84bfa0e05e6..4ed69580aedb2499d95253a49957584f6e274b09 100644 (file)
@@ -1,6 +1,6 @@
 /* hist.h
-   
-   Copyright (C) 2000  Free Software Foundation, Inc.
+
+   Copyright 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
@@ -16,27 +16,42 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 \f
 #ifndef hist_h
 #define hist_h
 
-#include "bfd.h"
+typedef struct histogram
+{
+  bfd_vma lowpc;
+  bfd_vma highpc;
+  unsigned int num_bins;
+  int *sample;           /* Histogram samples (shorts in the file!).  */
+} histogram;
 
-extern bfd_vma s_lowpc;                /* Lowpc from the profile file.  */
-extern bfd_vma s_highpc;       /* Highpc from the profile file.  */
-extern bfd_vma lowpc, highpc;  /* Range profiled, in UNIT's.  */
-extern int hist_num_bins;      /* Number of histogram bins.  */
-extern int *hist_sample;       /* Code histogram.  */
+histogram *histograms;
+unsigned num_histograms;
 
 /* Scale factor converting samples to pc values:
    each sample covers HIST_SCALE bytes.  */
 extern double hist_scale;
 
+extern void hist_read_rec        (FILE *, const char *);
+extern void hist_write_hist      (FILE *, const char *);
+extern void hist_assign_samples  (void);
+extern void hist_print           (void);
 
-extern void hist_read_rec        PARAMS ((FILE *, const char *));
-extern void hist_write_hist      PARAMS ((FILE *, const char *));
-extern void hist_assign_samples  PARAMS ((void));
-extern void hist_print           PARAMS ((void));
+/* Checks if ADDRESS is within the range of addresses for which
+   we have histogram data.  Returns 1 if so and 0 otherwise.  */
+extern int hist_check_address (unsigned address);
+
+/* Given a range of addresses for a symbol, find a histogram record 
+   that intersects with this range, and clips the range to that
+   histogram record, modifying *P_LOWPC and *P_HIGHPC.
+   
+   If no intersection is found, *P_LOWPC and *P_HIGHPC will be set to
+   one unspecified value.  If more that one intersection is found,
+   an error is emitted.  */
+extern void hist_clip_symbol_address (bfd_vma *p_lowpc, bfd_vma *p_highpc);
 
 #endif /* hist_h */
This page took 0.026526 seconds and 4 git commands to generate.