Adding error message when shmat fails - naim
[dyninst.git] / paradyn / h / VM.I
1 /* $Log: VM.I,v $
2 /* Revision 1.17  1997/06/02 19:38:18  karavan
3 /* added new call registerValidVisis.  This single call from Visi Manager to
4 /* UI thread at startup registers all valid visis as specified in a config
5 /* file, and replaces use of synchronous VM->VMAvailableVisis().
6 /*
7  * Revision 1.16  1996/04/04 21:49:26  newhall
8  * added mi_limit to VMAddNewVisualization
9  *
10  * Revision 1.15  1996/01/05 20:00:27  newhall
11  * removed warnings
12  *
13 # Revision 1.14  1995/08/12  22:27:12  newhall
14 # added VM_sequential_init(), VM_post_thread_create_init(), & vmp members
15 #
16 # Revision 1.13  1995/08/01  02:15:27  newhall
17 # added phase type parameter to VMCreateVisi
18 #
19 # Revision 1.12  1995/06/02  20:58:44  newhall
20 # made code compatable with new datamanager interface
21 # replaced List and HTable container classes with STL containers
22 #
23 # Revision 1.10  1995/02/26  02:11:52  newhall
24 # added some phase interface routines
25 #
26 # Revision 1.9  1995/02/16  08:01:39  markc
27 # Modified interfaces:
28 #   1) XDR interfaces use strings and vectors instead of igen arrays and char*'s
29 #   2) No sync upcalls are allowed by the server in xdr interfaces
30 #   3) Redefined igen arrays that were used in thread code to use manually defined
31 #      structures rather than igen-defined, since igen did not need to know about
32 #      these structures.
33 #   4) Upped all of the version numbers since all new interface code is generated
34 #   5) Async calls are no longer handled while waiting for sync responses, these
35 #      requests are buffered.
36 #
37 # Revision 1.8  1994/09/30  21:19:32  newhall
38 # added interface function VMStringToMetResPair
39 # changed parameters to VMCreateVisi to take list of metrespair
40 #
41 # Revision 1.7  1994/09/25  01:49:03  newhall
42 # UI and VM interface changes to support new representation
43 # of metric/focus lists as a list of metric/focus pairs (either
44 # as a string or a list of metric* resourceList* pairs).
45 #
46 # Revision 1.6  1994/09/22  00:42:31  markc
47 # Changed "String" to "char*"
48 # Declared $array types explicitly
49 # Incremented version number
50 #
51 # Revision 1.5  1994/08/17  17:55:25  markc
52 # Incremented version numbers because a new version of igen has been
53 # committed.
54 #
55 # Revision 1.4  1994/08/13  20:49:57  newhall
56 # changed parameters to VMCreateVisi
57 #
58 # Revision 1.3  1994/06/16  18:28:57  newhall
59 # *** empty log message ***
60 #
61 # Revision 1.2  1994/04/09  21:26:29  newhall
62 # change VMDestroyVisi to  async
63 #
64 # Revision 1.1  1994/03/30  05:42:34  newhall
65 # exported services of the Visualization Manager thread
66 # */
67
68 #include "paradyn/src/DMthread/DMinclude.h"
69 #include "util/h/Vector.h"
70 #include "paradyn/src/VMthread/VMinclude.h"
71
72 typedef struct VM_activeVisiInfo {
73   int visiNum; // tid of active visi used to kill visi (VMDestroyVisi)
74   int visiTypeId;  
75   string name;
76 } VM_activeVisiInfo;
77
78 $remote VM{
79
80   $base 5000;
81   $version 13;
82
83   // returns a list of information about active visualizations
84   // the client is responsible for freeing the space associated with
85   // this list
86   vector<VM_activeVisiInfo> *VMActiveVisis(); 
87
88
89   // returns a list of information about available visualizations
90   // the client is responsible for freeing the space associated with
91   // this list
92   vector<VM_visiInfo> *VMAvailableVisis(); 
93   
94   //  name: string representation of visi (for UIM menuing)
95   //  args: command line arguments for the visualiztion, argv[0]
96   //        is the executable name
97   //  matrix: initial set of metrics and foci to start the visi with
98   int VMAddNewVisualization(const char *name,
99                             vector<string> *argv,       
100                             int forceProcessStart,
101                             int mi_limit,
102                             char *matrix,
103                             int numMatrices);
104
105
106   //  converts a string representation of a list of met/focus pairs  
107   //  to the internal list of metrespairs representation
108   //  returns metrespair_Array values of count = 0, and data = NULL on error
109   vector<metric_focus_pair> *VMStringToMetResPair(const char *metresString);
110
111
112   // remenuFlag: if set, remenuing request made by visithread when 
113   //             a set of metrics and resource choices can't be enabled
114   // forceProcessStart: if set, the visi process is started w/o menuing first
115   // visiTypeId: identifier indicating wch visi type to start
116   // matrix: list of initial set of metrics/foci to start visi with
117   int VMCreateVisi(int remenuFlag,  
118                    int forceProcessStart,
119                    int visiTypeId,
120                    phaseType phase_type,
121                    vector<metric_focus_pair> *matrix);
122   
123   // visiThreadId: thread identifier associated with the  visi to destroy 
124   // can be called by any thread in the paradyn process
125   $async void VMDestroyVisi(thread_t visiThreadId);
126
127   // visiThreadId: thread identifier of visithread that has died
128   // called by visithread when the visualization process exits
129   void VMVisiDied(thread_t visiThreadId);
130
131   $signore
132   
133   static int VM_sequential_init();
134   static int VM_post_thread_create_init();
135   static VM *vmp;
136   $signore
137 };
138