(root)/
binutils-2.41/
gprof/
cg_arcs.h
       1  /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
       2  
       3     This file is part of GNU Binutils.
       4  
       5     This program is free software; you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation; either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program; if not, write to the Free Software
      17     Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
      18     MA 02110-1301, USA.  */
      19  
      20  #ifndef cg_arcs_h
      21  #define cg_arcs_h
      22  
      23  /*
      24   * Arc structure for call-graph.
      25   *
      26   * With pointers to the symbols of the parent and the child, a count
      27   * of how many times this arc was traversed, and pointers to the next
      28   * parent of this child and the next child of this parent.
      29   */
      30  typedef struct arc
      31    {
      32      Sym *parent;		/* source vertice of arc */
      33      Sym *child;			/* dest vertice of arc */
      34      unsigned long count;	/* # of calls from parent to child */
      35      double time;		/* time inherited along arc */
      36      double child_time;		/* child-time inherited along arc */
      37      struct arc *next_parent;	/* next parent of CHILD */
      38      struct arc *next_child;	/* next child of PARENT */
      39      int has_been_placed;	/* have this arc's functions been placed? */
      40    }
      41  Arc;
      42  
      43  extern unsigned int num_cycles;	/* number of cycles discovered */
      44  extern Sym *cycle_header;	/* cycle headers */
      45  
      46  extern void arc_add (Sym * parent, Sym * child, unsigned long count);
      47  extern Arc *arc_lookup (Sym * parent, Sym * child);
      48  extern Sym **cg_assemble (void);
      49  extern Arc **arcs;
      50  extern unsigned int numarcs;
      51  
      52  #endif /* cg_arcs_h */