changed interface definitions to work for new version of igen
[dyninst.git] / visi / h / visi.I
1
2 /*
3  * Copyright (c) 1993, 1994 Barton P. Miller, Jeff Hollingsworth,
4  *     Bruce Irvin, Jon Cargille, Krishna Kunchithapadam, Karen
5  *     Karavanic, Tia Newhall, Mark Callaghan.  All rights reserved.
6  * 
7  * This software is furnished under the condition that it may not be
8  * provided or otherwise made available to, or used by, any other
9  * person, except as provided for by the terms of applicable license
10  * agreements.  No title to or ownership of the software is hereby
11  * transferred.  The name of the principals may not be used in any
12  * advertising or publicity related to this software without specific,
13  * written prior authorization.  Any use of this software must include
14  * the above copyright notice.
15  *
16  */
17
18 /* $Log: visi.I,v $
19 /* Revision 1.8  1994/09/25 01:58:13  newhall
20 /* changed interface definitions to work for new version of igen
21 /* changed AddMetricsResources def. to take array of metric/focus pairs
22 /*
23 # Revision 1.7  1994/09/22  03:12:24  markc
24 # declared arrays at start
25 # incremented version number
26 #
27 # Revision 1.6  1994/08/17  18:21:09  markc
28 # Incremented the version number because a new version of igen is in place.
29 #
30 # Revision 1.5  1994/08/03  20:47:28  newhall
31 # removed interface routines Enabled and NewMetricsResources
32 #
33 # Revision 1.4  1994/07/30  03:26:18  newhall
34 # added visi interface routines Enabled and BulkDataTransfer
35 #
36 # Revision 1.3  1994/05/11  17:11:07  newhall
37 # changed data values from double to float
38 #
39 # Revision 1.2  1994/04/13  21:23:09  newhall
40 # *** empty log message ***
41 #
42 # Revision 1.1  1994/03/29  02:42:13  newhall
43 # exported services of the visualization process
44 #
45 # Revision 1.3  1994/03/17  05:20:35  newhall
46 # changed bucket width and time value's type to double
47 #
48 # Revision 1.2  1994/03/14  20:28:52  newhall
49 # changed visi subdirectory structure
50 #  */ 
51
52
53 $remote typedef struct {
54      char *units;    // how units are measured  i.e. "ms" 
55      char *name;     // for y-axis labeling  
56      int     Id;       // unique metric Id
57      int     aggregate;  //either SUM or AVE
58 } metricType;
59
60 $remote typedef struct{
61      char *name;     // obj. name for graph labeling
62      int    Id;       // unique resource id
63 } resourceType;
64
65 $remote typedef struct{
66   int   metricId;
67   int   resourceId;
68   int   bucketNum;
69   float data;
70 }dataValue;
71
72 $remote typedef struct {
73     resourceType res;
74     metricType   met;
75 }visi_matrix;
76
77
78 $remote array visi_matrix  visi_matrix_Array;
79 $remote array dataValue    dataValue_Array;
80 $remote array float         float_Array;
81
82 $remote visualization {
83   $base  7000;
84   $version  7;
85
86   // data: list of new data values from Paradyn 
87   $async void Data(dataValue_Array data);  
88
89   $async void Fold(double newBucketWidth);
90
91   // m: metricId of invalid metric-focus combination
92   // r: resourceId of invalid metric-focus combination
93   $async void InvalidMR(int m,int r);
94
95   // newElements: a list of new metric-focus matrices
96   // bucketWidth: current bucket width for histograms
97   // nobuckets:   max number of buckets for histograms
98   $async void AddMetricsResources(visi_matrix_Array newElements,
99                                   double bucketWidth,
100                                   int nobuckets);
101   // begin: phase start time
102   // end:   phase end time
103   // name:  phase name
104   $async void Phase(double begin,
105                     double end,
106                     char *name);
107
108   // values: array of data values starting from 0th element
109   // metricId:   id of metric assoc. with data values
110   // resourceId: id of focus assoc. with data values
111   $async void BulkDataTransfer(float_Array values,
112                                int metricId,
113                                int resourceId);
114
115
116   $upcall $async void GetMetricResource(char *mets_res,
117                                         int numElements,
118                                         int type);
119
120   // metricId, resourceId: id's of metric-focus combination to stop
121   $upcall $async void StopMetricResource(int metricId,
122                                          int resourceId);
123
124   // begin: phase start time
125   // end:   phase end time
126   // name:  phase name
127   $upcall $async void PhaseName(double begin,
128                                 double end,
129                                 char *name);
130 };