Changed /MsgTag to /Message in MDL/paradyn.rc
[dyninst.git] / paradyn / src / PCthread / PCfocus.C
1 /*
2  * Copyright (c) 1996 Barton P. Miller
3  * 
4  * We provide the Paradyn Parallel Performance Tools (below
5  * described as Paradyn") on an AS IS basis, and do not warrant its
6  * validity or performance.  We reserve the right to update, modify,
7  * or discontinue this software at any time.  We shall have no
8  * obligation to supply such updates or modifications or any other
9  * form of support to you.
10  * 
11  * This license is for research uses.  For such uses, there is no
12  * charge. We define "research use" to mean you may freely use it
13  * inside your organization for whatever purposes you see fit. But you
14  * may not re-distribute Paradyn or parts of Paradyn, in any form
15  * source or binary (including derivatives), electronic or otherwise,
16  * to any other organization or entity without our permission.
17  * 
18  * (for other uses, please contact us at paradyn@cs.wisc.edu)
19  * 
20  * All warranties, including without limitation, any warranty of
21  * merchantability or fitness for a particular purpose, are hereby
22  * excluded.
23  * 
24  * By your use of Paradyn, you understand and agree that we (or any
25  * other person or entity with proprietary rights in Paradyn) are
26  * under no obligation to provide either maintenance services,
27  * update services, notices of latent defects, or correction of
28  * defects for Paradyn.
29  * 
30  * Even if advised of the possibility of such damages, under no
31  * circumstances shall we (or any other person or entity with
32  * proprietary rights in the software licensed hereunder) be liable
33  * to you or any third party for direct, indirect, or consequential
34  * damages of any character regardless of type of action, including,
35  * without limitation, loss of profits, loss of use, loss of good
36  * will, or computer failure or malfunction.  You agree to indemnify
37  * us (and any other person or entity with proprietary rights in the
38  * software licensed hereunder) for any and all liability it may
39  * incur to third parties resulting from your use of Paradyn.
40  */
41
42 /*
43  * PCfocus.C
44  * 
45  * Initializing focus info needed by PC from DM's resource hierarchies.
46  * 
47  * $Log: PCfocus.C,v $
48  * Revision 1.4  1997/03/29 02:04:18  sec
49  * Changed /MsgTag to /Message in MDL/paradyn.rc
50  *
51  * Revision 1.3  1996/08/16 21:03:28  tamches
52  * updated copyright for release 1.1
53  *
54  * Revision 1.2  1996/02/22 18:30:34  karavan
55  * cleanup after dataMgr calls; explicitly cast all NULLs to keep
56  * AIX happy
57  *
58  * Revision 1.1  1996/02/02 02:06:34  karavan
59  * A baby Performance Consultant is born!
60  *
61  */
62
63 #include <assert.h>
64 #include "PCintern.h"
65
66 //
67 // known, "base" resources -- these are invariant across applications
68 //
69 resourceHandle RootResource;
70 resourceHandle SyncObject;
71 resourceHandle Procedures;
72 resourceHandle Processes;
73 resourceHandle Machines;
74 resourceHandle Locks;
75 resourceHandle Barriers;
76 resourceHandle Semaphores;
77 resourceHandle Messages;
78
79 // focus formed from topmost node of each resource hierarchy
80 focus topLevelFocus;
81
82
83 void initResources()
84 {
85   // only toplevel "base" resources are known to PC 
86   // get names <-> handles here
87
88   // first, get handles for base resources guaranteed to exist for every application
89   //
90   resourceHandle *h = dataMgr->getRootResource();
91   assert (h != NULL); 
92   RootResource = *h;
93   delete h;
94
95   vector<resourceHandle> *testr = dataMgr->getRootResources();
96   assert (testr != NULL);
97   topLevelFocus = dataMgr->getResourceList(testr);
98   delete testr;
99
100   h = dataMgr->findResource ("/SyncObject");
101   assert (h != NULL);  
102   SyncObject = *h;
103   delete h;
104
105   h = dataMgr->findResource ("/Code");
106   assert (h != NULL); 
107   Procedures = *h;
108   delete h;
109
110   h = dataMgr->findResource ("/Process");
111   assert (h != NULL); 
112   Processes = *h;
113   delete h;
114
115   h = dataMgr->findResource ("/Machine");
116   assert (h != NULL); 
117   Machines = *h;
118   delete h;
119   
120   //
121   // now try toplevels not guaranteed to exist for every application
122   //
123   h = dataMgr->findResource ("/SpinLock");
124   if (h != NULL) {
125     Locks = *h;
126     delete h;
127   }
128
129   h = dataMgr->findResource ("/Barrier");
130   if (h != NULL) {
131     Barriers = *h;
132     delete h;
133   }
134
135   h = dataMgr->findResource ("/Semaphore");
136   if (h != NULL) {
137     Semaphores = *h;
138     delete h;
139   }
140
141   h = dataMgr->findResource ("/Message");
142   if (h != NULL) {
143     Messages = *h;
144     delete h;
145   }
146
147 }
148
149