Files
2026-07-30 11:19:44 +05:30

145 lines
3.6 KiB
C

/*
******************************************************************************
* HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipcom_prof.h,v $ $Revision: 1.12 $
* $Source: /home/interpeak/CVSRoot/ipcom/include/ipcom_prof.h,v $
* $Author: ulf $ $Date: 2006-05-30 16:54:49 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
*
******************************************************************************
*/
#ifndef IPCOM_PROF_H
#define IPCOM_PROF_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
* Interpeak profiler API.
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
#include "ipcom_config.h"
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include "ipcom_type.h"
#include "ipcom_cstyle.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
/* Flags for the enter function */
#define IPCOM_PROF_CONTINUED 0x01
/* Flags for the display functions */
#define IPCOM_PROF_ABSOLUTE 0x01
#define IPCOM_PROF_LINENUM 0x02
#define IPCOM_PROF_COUNT 0x04
#define IPCOM_PROF_OVERHEAD 0x08
#ifdef IPCOM_USE_PROFILING_ENABLE
#define IPCOM_PROF_TYPE(t) Ipcom_prof_entry t
#define IPCOM_PROF(s) ipcom_prof_enter(s, __FILE__, __LINE__, 0)
#define IPCOM_PROF_PUSH(e,s) do { \
ipcom_prof_push(&(e)); \
ipcom_prof_enter(s, __FILE__, __LINE__, 0); \
} while ((0))
#define IPCOM_PROF_POP(e) ipcom_prof_pop(&(e))
#else
#define IPCOM_PROF_TYPE(t) IP_NOOP
#define IPCOM_PROF(s) IP_NOOP
#define IPCOM_PROF_PUSH(e,s) IP_NOOP
#define IPCOM_PROF_POP(e) IP_NOOP
#endif
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
typedef struct
{
Ip_u32 us;
const char *msg;
const char *file;
Ip_u16 line;
Ip_u8 type;
Ip_u8 flags;
}
Ipcom_prof_entry;
/*
****************************************************************************
* 6 STANDARD FUNCTIONS
****************************************************************************
*/
IP_PUBLIC void
ipcom_prof_clear(void);
IP_PUBLIC int
ipcom_prof_stopped(int new_prof);
IP_PUBLIC void
ipcom_prof_enter(const char *msg, const char *file, int line, int flags);
IP_PUBLIC void
ipcom_prof_push(Ipcom_prof_entry *e);
IP_PUBLIC void
ipcom_prof_pop(Ipcom_prof_entry *e);
IP_PUBLIC void
ipcom_prof_dump(int start, int stop, int flags);
IP_PUBLIC void
ipcom_prof_summary(int start, int stop, int flags);
IP_PUBLIC void
ipcom_prof_sequence(int start, int stop, int flags);
IP_PUBLIC void
ipcom_prof_void(void);
IP_PUBLIC int
ipcom_cmd_prof(int argc, char *argv[]);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/