URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/ecos-2.0/packages/services/profile/gprof/v2_0/include
- from Rev 27 to Rev 174
- ↔ Reverse comparison
Rev 27 → Rev 174
/profile.h
0,0 → 1,73
#ifndef CYGONCE_PROFILE_H |
#define CYGONCE_PROFILE_H |
|
//========================================================================== |
// |
// profile.h |
// |
// Application profiling support |
// |
//========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 2002 Gary Thomas |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//========================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): gthomas |
// Contributors: |
// Date: 2002-11-14 |
// Purpose: Define profiling support |
// Description: |
// |
// Usage: |
// #include <cyg/profile/profile.h> |
// |
// |
//####DESCRIPTIONEND#### |
// |
//========================================================================== |
|
#include <pkgconf/profile_gprof.h> |
#include <cyg/infra/cyg_type.h> |
|
// Enable profiling |
__externC void profile_on(void *start_addr, void *end_addr, |
int bucket_size, int sample_resolution); |
|
// Callback used by timer routine |
__externC void __profile_hit(unsigned long pc); |
|
// Timer setup routine, used when enabling profiling |
__externC void hal_enable_profile_timer(int resolution); |
|
#endif // CYGONCE_PROFILE_H |
/gmon_out.h
0,0 → 1,54
// Slightly adapted from OpenBSD "/src/gnu/usr.bin/binutils/gprof/gmon_out.h" |
// for eCos environment |
|
/* |
* This file specifies the format of gmon.out files. It should have |
* as few external dependencies as possible as it is going to be |
* included in many different programs. That is, minimize the |
* number of #include's. |
* |
* A gmon.out file consists of a header (defined by gmon_hdr) followed |
* by a sequence of records. Each record starts with a one-byte tag |
* identifying the type of records, followed by records specific data. |
*/ |
#ifndef gmon_out_h |
#define gmon_out_h |
|
#define GMON_MAGIC "gmon" /* magic cookie */ |
#define GMON_VERSION 1 /* version number */ |
|
/* |
* Raw header as it appears on file (without padding): |
*/ |
struct gmon_hdr |
{ |
char cookie[4]; |
char version[4]; |
char spare[3 * 4]; |
}; |
|
/* types of records in this file: */ |
typedef enum |
{ |
GMON_TAG_TIME_HIST = 0, GMON_TAG_CG_ARC = 1, GMON_TAG_BB_COUNT = 2 |
} |
GMON_Record_Tag; |
|
struct gmon_hist_hdr |
{ |
char low_pc[sizeof (char*)]; /* base pc address of sample buffer */ |
char high_pc[sizeof (char*)]; /* max pc address of sampled buffer */ |
char hist_size[4]; /* size of sample buffer */ |
char prof_rate[4]; /* profiling clock rate */ |
char dimen[15]; /* phys. dim., usually "seconds" */ |
char dimen_abbrev; /* usually 's' for "seconds" */ |
}; |
|
struct gmon_cg_arc_record |
{ |
char from_pc[sizeof (char*)]; /* address within caller's body */ |
char self_pc[sizeof (char*)]; /* address within callee's body */ |
char count[4]; /* number of arc traversals */ |
}; |
|
#endif /* gmon_out_h */ |