3 * This file contains the standard insrumentation functions that are provied
4 * by the instrumentation layer.
11 typedef void (*instFunc)(void *cdata, int type, char *eventData);
13 typedef struct intCounterRec intCounter;
15 /* parameters to a instremented function */
16 typedef struct _parameteters parameters;
17 typedef enum { processTime, wallTime } timerType;
19 /* 64 bit time values */
20 typedef long long int time64;
22 unsigned int aggregate:1;
26 typedef struct sampleIdRec sampleId;
29 struct intCounterRec {
30 int value; /* this field must be first for setValue to work -jkh */
35 typedef struct floatCounterRec floatCounter;
36 struct floatCounterRec {
42 typedef struct tTimerRec tTimer;
44 int counter; /* must be 0 to start/stop */
47 time64 snapShot; /* used to get consistant value during st/stp */
48 int normalize; /* value to divide total by to get seconds */
52 volatile char sampled;
55 typedef (*filterFunc)(void *cdata, parameters *params);
58 * standard inst. functions.
65 void DYNINSTstartTimer(tTimer *timer);
67 void DYNINSTstopTimer(tTimer *timer);
71 * timestamp and write the passed trace type, and event data to the passed
75 void DYNINSTgenerateTraceRecord(traceStream destination,
81 * Define the size of the per process data area.
83 * This should be a power of two to reduce paging and chacing shifts.
85 #define SYN_INST_BUF_SIZE 1024*1024