"Fossies" - the Fresh Open Source Software Archive

Member "FunctionCheck-3.2.0/src/fcmanager/fc_functions.h" (26 May 2012, 2192 Bytes) of package /linux/privat/old/FunctionCheck-3.2.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2  * FunctionCheck profiler
    3  * (C) Copyright 2000-2012 Yannick Perret
    4  * 
    5  *  This program is free software; you can redistribute it and/or
    6  *  modify it under the terms of the GNU General Public License as
    7  *  published by the Free Software Foundation; either version 2 of the
    8  *  License, or (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 GNU
   13  *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
   18  */
   19 /** fc_functions.h: treat enter/exit actions during profile **/
   20 
   21 #ifndef __fc_functions_h_
   22 #define __fc_functions_h_
   23 
   24 /** structures **/
   25 /* function descriptor */
   26 typedef struct
   27 {
   28   void *symbol;       /* symbol address */
   29   unsigned int calls; /* number of calls */
   30   unsigned long long local_time;   /* time spend in the function */
   31   unsigned long long total_time;  /* total time of execution */
   32   unsigned long long last_time;    /* the 'time' at last treatment */
   33   unsigned long long max_time;    /* the max total time spend in this fnc */
   34   unsigned long long min_time;    /* the min total time spend in this fnc */
   35   unsigned long long max_ltime;    /* the max local time spend in this fnc */
   36   unsigned long long min_ltime;    /* the min local time spend in this fnc */
   37   unsigned long long temp_ltime;   /* temporay local time */
   38   /* used for management during profile */
   39   int recursive_state;   /* number of time in the stack */
   40   int faked;             /* true if special fill-up fnc */
   41 } FC_Function;
   42 
   43 /** functions to manage list of functions **/
   44 
   45 /* initialize a function (pre-allocated) */
   46 void fc_functions_init(FC_Function *fnc);
   47 
   48 /* treat entering in a function */
   49 void fc_functions_enter(void *fnc, void *call_site, unsigned long long time);
   50 
   51 /* treat exiting a function */
   52 void fc_functions_exit(void *fnc, void *call_site, unsigned long long time);
   53 
   54 #endif /* __fc_functions_h_ */