Update copyright to LGPL on all files
[dyninst.git] / dyninstAPI / src / templates2.C
1 /*
2  * Copyright (c) 1996-2009 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  * By your use of Paradyn, you understand and agree that we (or any
12  * other person or entity with proprietary rights in Paradyn) are
13  * under no obligation to provide either maintenance services,
14  * update services, notices of latent defects, or correction of
15  * defects for Paradyn.
16  * 
17  * This library is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU Lesser General Public
19  * License as published by the Free Software Foundation; either
20  * version 2.1 of the License, or (at your option) any later version.
21  * 
22  * This library is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25  * Lesser General Public License for more details.
26  * 
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30  */
31
32
33 // $Id: templates2.C,v 1.80 2008/06/19 19:53:49 legendre Exp $
34
35 #if defined(__XLC__) || defined(__xlC__)
36 #include "common/h/Dictionary.h"
37 #else
38 #pragma implementation "Dictionary.h"
39 #include "common/src/Dictionary.C"
40 #endif
41
42 #include "symtabAPI/h/Symbol.h"
43 #include <string>
44
45 template class pdvector<std::string>;
46
47 template class pdpair<std::string, pdvector<std::string> >;
48
49 template class pdvector<pdpair<std::string, pdvector<std::string> > >;
50
51 using namespace Dyninst;
52 using namespace Dyninst::SymtabAPI;
53 template class  dictionary_hash_iter <Address, Symbol*>;
54
55 //template class  dictionary_hash_iter <instPoint*, unsigned>;
56 //template class  dictionary_hash_iter <std::string, Symbol>;
57 class pdmodule;
58 template class  dictionary_hash_iter <std::string, pdmodule *>;
59
60 class image_func;
61 template class  dictionary_hash_iter <std::string, pdvector<image_func*>*>;
62
63 class mapped_object;
64 template class  pdvector<mapped_object *> ;
65
66 class syscallTrap;
67 template class pdvector<syscallTrap *>;
68
69 /* ***************************************************************************** */
70
71 //template class dictionary_hash <std::string, Symbol>;
72 //template class pdvector<dictionary_hash <std::string, Symbol>::entry>;
73
74 class BPatch_point;
75 template class pdvector<dictionary_hash<Address, BPatch_point *>::entry>;
76 template class dictionary_hash<Address, BPatch_point *>;
77
78 class BPatch_type;
79 template class dictionary_hash<std::string, BPatch_type *>;
80 template class dictionary_hash<int, BPatch_type *>;
81 template class dictionary_hash_iter<std::string, BPatch_type *>;
82 template class pdvector<dictionary_hash <std::string, BPatch_type *>::entry>;
83 template class dictionary_hash_iter<int, BPatch_type *>;
84 template class pdvector<dictionary_hash <int, BPatch_type *>::entry>;
85 class BPatch_localVar;
86 template class dictionary_hash<std::string, BPatch_localVar *>;
87 template class dictionary_hash_iter<std::string, BPatch_localVar *>;
88 template class pdvector<dictionary_hash <std::string, BPatch_localVar *>::entry>;
89
90 #include "EventHandler.h"
91 template class pdvector<EventRecord>;
92 template class dictionary_hash<Address, threadmap_t *>;
93 template class pdvector<dictionary_hash<Address, threadmap_t *>::entry>;
94
95 template class pdvector<dictionary_hash <unsigned int, Address>::entry>;
96
97 class BPatch_basicBlock;
98 template class  dictionary_hash<Address,BPatch_basicBlock*>;
99 template class  pdvector<dictionary_hash<Address,BPatch_basicBlock*>::entry>;
100
101 #if defined( USES_DWARF_DEBUG )
102 #include <stack>
103 template class std::deque< long int >;
104 template class std::stack< long int >;
105 #include <map>
106 template class std::map< unsigned int, char * >;
107 #endif
108
109 class BPatch_typeCollection;
110 template class dictionary_hash< std::string, BPatch_typeCollection * >;
111 template class pdvector<dictionary_hash <std::string, BPatch_typeCollection *>::entry>;
112
113 #include "signalhandler.h"
114 #include "BPatch_asyncEventHandler.h"
115 #include "mailbox.h"
116 #include "callbacks.h"
117 #include "debuggerinterface.h"
118 /* From class BPatch_asyncEventHandler */
119 template class pdvector<process_record>;
120 template class pdvector<BPatchSnippetHandle *>;
121 template class pdvector<BPatch_function *>;
122 template class pdvector<eventLock::lock_stack_elem>;
123 class EventGate;
124 template class pdvector<EventGate *>;
125 template class dictionary_hash< eventType, pdvector< CallbackBase * > >;
126 template class pdvector<dictionary_hash < eventType, pdvector <CallbackBase *> >::entry>;
127
128 template class pdvector<CallbackBase *>;
129 template class pdvector<AsyncThreadEventCallback *>;
130 template class pdvector<void *>;
131 template class pdvector<eventType>;
132 template class pdvector<dyn_lwp *>;
133 template class pdvector<SignalHandler *>;
134 #if defined( arch_ia64 )
135 class int_basicBlock;
136 #include <list>
137 template class std::list< int_basicBlock *>;
138 template class dictionary_hash< Address, void * >;
139 template class pdvector< dictionary_hash< Address, void * >::entry >;
140 #endif /* defined( arch_ia64 ) */
141
142 //template class pdvector< Symbol >;
143 //template class dictionary_hash< std::string, pdvector< Symbol > >;
144 //template class pdvector<dictionary_hash < std::string, pdvector <Symbol> >::entry>;
145
146 template class dictionary_hash< std::string, bool >;
147 template class pdvector< dictionary_hash< std::string, bool >::entry >;
148
149 #if defined(os_aix)
150 #include <set>
151 template class std::set< image * >;
152 #endif
153
154 class multiTramp;
155 template class dictionary_hash<int, multiTramp *>;
156 template class pdvector<dictionary_hash <int, multiTramp *>::entry>;
157
158 class replacedFunctionCall;
159 template class dictionary_hash<Address, replacedFunctionCall *>;
160 template class pdvector<dictionary_hash<Address, replacedFunctionCall *>::entry>;
161
162
163 class Statistic;
164 template class dictionary_hash<std::string, Statistic *>;
165
166 class registerSlot;
167 template class dictionary_hash<unsigned, registerSlot *>;