Adding function showErrorVisiCallback to display error messages from
[dyninst.git] / visi / h / visiTypes.h
1 #ifndef _visiTypes_h
2 #define _visiTypes_h
3 /*
4  * Copyright (c) 1993, 1994 Barton P. Miller, Jeff Hollingsworth,
5  *     Bruce Irvin, Jon Cargille, Krishna Kunchithapadam, Karen
6  *     Karavanic, Tia Newhall, Mark Callaghan.  All rights reserved.
7  * 
8  * This software is furnished under the condition that it may not be
9  * provided or otherwise made available to, or used by, any other
10  * person, except as provided for by the terms of applicable license
11  * agreements.  No title to or ownership of the software is hereby
12  * transferred.  The name of the principals may not be used in any
13  * advertising or publicity related to this software without specific,
14  * written prior authorization.  Any use of this software must include
15  * the above copyright notice.
16  *
17  */
18 /* $Log: visiTypes.h,v $
19 /* Revision 1.15  1995/11/17 17:27:58  newhall
20 /* added normalized member to Metric class which specifies units type
21 /* added MetricLabel, MetricAveLabel, and MetricSumLabel DG method functions
22 /*
23  * Revision 1.14  1995/11/12  23:29:30  newhall
24  * removed warnings, removed error.C
25  *
26  * Revision 1.13  1995/11/12  00:45:08  newhall
27  * added PARADYNEXITED event, added "InvalidSpans" dataGrid method
28  *
29  * Revision 1.12  1995/09/18  18:25:58  newhall
30  * updated test subdirectory, added visilib routine GetMetRes()
31  *
32  * Revision 1.11  1995/08/24  15:14:41  hollings
33  * AIX/SP-2 port (including option for split instruction/data heaps)
34  * Tracing of rexec (correctly spawns a paradynd if needed)
35  * Added rtinst function to read getrusage stats (can now be used in metrics)
36  * Critical Path
37  * Improved Error reporting in MDL sematic checks
38  * Fixed MDL Function call statement
39  * Fixed bugs in TK usage (strings passed where UID expected)
40  *
41  * Revision 1.10  1995/06/02  21:01:56  newhall
42  * changed type of metric and focus handles to u_int
43  *
44  * Revision 1.9  1995/02/26  01:59:29  newhall
45  * added phase interface functions
46  *
47  * Revision 1.8  1995/02/16  09:32:05  markc
48  * Modified to support machines which do not have NaN(x).
49  * This code has not been tested, but it compiles.
50  *
51  * Revision 1.7  1994/09/25  01:58:15  newhall
52  * changed interface definitions to work for new version of igen
53  * changed AddMetricsResources def. to take array of metric/focus pairs
54  *
55  * Revision 1.6  1994/08/03  20:57:03  newhall
56  * *** empty log message ***
57  *
58  * Revision 1.5  1994/08/03  20:47:46  newhall
59  * removed event type NEWMETRICSRESOURCES
60  *
61  * Revision 1.4  1994/07/30  03:26:56  newhall
62  * added new msgTag type ENABLED
63  *
64  * Revision 1.3  1994/07/28  22:23:19  krisna
65  * changed definition of ERROR to use NaN(X)
66  *
67  * Revision 1.2  1994/05/23  20:55:19  newhall
68  * To visi_GridCellHisto class: added deleted flag, SumValue
69  * method function, and fixed AggregateValue method function
70  *
71  * Revision 1.1  1994/05/11  17:11:08  newhall
72  * changed data values from double to float
73  * */
74
75 #include <stdio.h>
76 #include <math.h>
77 // TODO -- nan.h is a non-standard header file -- there has to be a portable
78 // way to do this -- mdc -- I am not sure if this works, but it compiles
79
80 #ifdef n_def
81 #if !defined(i386_unknown_netbsd1_0) && !defined(hppa1_1_hp_hpux) && !defined(rs6000_ibm_aix3_2)
82 #include <nan.h>
83 #endif /* !defined(i386_unknown_netbsd1_0) */
84 #endif
85
86 #include "util/h/makenan.h"
87 #include "util/h/String.h"
88
89 #define INVALID            0
90 #define VALID              1
91 #define NOVALUE           -1
92 #define OK                 0
93 #define VISI_ERROR_BASE   -19
94 #define ERROR_REALLOC     -20
95 #define ERROR_CREATEGRID  -21
96 #define ERROR_SUBSCRIPT   -22
97 #define ERROR_AGGREGATE   -23
98 #define ERROR_NOELM       -24
99 #define ERROR_MALLOC      -25
100 #define ERROR_STRNCPY     -26
101 #define ERROR_INIT        -27
102 #define VISI_ERROR_MAX    -27
103
104 #define ERROR PARADYN_NaN
105
106 // 
107 // note: add new event types before FOLD (ie. FOLD is always last type)
108 // event types associated with events from Paradyn to a visualization
109 // DATAVALUES:  a new set of data has arrived in the datagrid
110 // INVALIDMETRICSRESOURCES:  a metric resource combination has become invalid
111 // ADDMETRICSRESOURCES:  new metrics have become enabled for a resource
112 // PHASESTART:  a new phase has been defined
113 // PHASEEND:    a phase has ended
114 // PHASEDATA:  data about the current set of phases has arrived
115 // PARADYNEXITED: the paradyn process has exited
116 // FOLD:  the histogram has folded; binWidth has doubled
117 //
118 typedef enum {DATAVALUES,INVALIDMETRICSRESOURCES,ADDMETRICSRESOURCES,
119               PHASESTART,PHASEEND,PHASEDATA,PARADYNEXITED,FOLD} msgTag;
120
121
122 typedef float sampleType;
123 typedef double timeType;
124
125 struct metricStruct {
126      string units;    // how units are measured
127      string name;     // metric name for graph labeling  
128      u_int   Id;       // unique metric Id
129      int     aggregate;  //either SUM or AVE
130      bool    normalized;  // specifies units type
131 };
132 typedef struct metricStruct visi_metricType;
133
134
135 struct resourceStruct{
136      string name;     // resource name for graph labeling
137      u_int  Id;       // unique resource id
138 };
139 typedef struct resourceStruct visi_resourceType;
140
141
142 struct dataValueStruct{
143      u_int metricId;
144      u_int resourceId;
145      int   bucketNum;
146      sampleType data;
147 };
148 typedef struct dataValueStruct visi_dataValue;
149
150 #endif