Update copyright to LGPL on all files
[dyninst.git] / dyninstAPI / src / templates-nt.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 // $Id: templates-nt.C,v 1.69 2008/02/23 02:09:11 jaw Exp $
33
34 /* The VC++ v5.0 compiler (probably correctly) generates warning C4660's 
35  * "template class specialization XXXX is already instantiated"
36  * however when linking the executable, the linker is unfortunately not
37  * able to resolve these external symbols and produces error LNK2001's,
38  * therefore the compiler warning is being disabled for this template file.
39  */
40 #pragma warning (disable: 4660)
41
42 #include <string>
43 #include "common/src/Dictionary.C"
44 #include "dyninstAPI/src/symtab.h"
45 #include "dyninstAPI/src/process.h"
46 #include "dyninstAPI/src/ast.h"
47
48 template class dictionary_hash<unsigned int, unsigned int>;
49 template class dictionary_hash<unsigned int, heapItem *>;
50 template class dictionary_hash<unsigned int, int_function *>;
51 class image_func;
52 template class pdvector<image_func *>;
53 template class dictionary_hash<std::string, pdvector<image_func *> *>;
54 template class dictionary_hash<Address, image_func *>;
55 template class dictionary_hash<const image_func *, int_function *>;
56
57 class int_variable;
58 template class pdvector<int_variable *>;
59 template class dictionary_hash<std::string, int_variable *>;
60 template class dictionary_hash<std::string, pdvector<int_variable *> *>;
61 template class dictionary_hash<Address, int_variable *>;
62
63 class image_variable;
64 template class pdvector<image_variable *>;
65 template class dictionary_hash<std::string, image_variable *>;
66 template class dictionary_hash<std::string, pdvector<image_variable *> *>;
67 template class dictionary_hash<Address, image_variable *>;
68 template class dictionary_hash<const image_variable *, int_variable *>;
69
70 class instPoint;
71 template class dictionary_hash<Address, instPoint *>;
72
73 class multiTramp;
74 template class dictionary_hash<int, multiTramp *>;
75
76 class replacedFunctionCall;
77 template class dictionary_hash<Address, replacedFunctionCall *>;
78
79 class relocatedInstruction;
80 template class dictionary_hash<Address, relocatedInstruction *>;
81
82 class BPatch_point;
83 template class dictionary_hash<const instPoint *, BPatch_point *>;
84
85 class image_basicBlock;
86 template class dictionary_hash<Address, image_basicBlock *>;
87 template class  BPatch_Set<image_basicBlock *>;
88
89 class fileDescriptor;
90 template class pdvector<fileDescriptor>;
91
92 template class dictionary_hash<std::string, unsigned int>;
93 template class dictionary_hash<std::string, std::string>;
94 template class dictionary_hash<std::string, Symbol>;
95 template class dictionary_hash<std::string, pdmodule *>;
96 template class dictionary_hash<std::string, int_function *>;
97 //template class dictionary_hash<std::string, internalSym *>;
98
99 template class dictionary_hash<std::string, pdvector<std::string> *>;
100 template class dictionary_hash<std::string, pdvector<int_function *> *>;
101
102 class BPatch_typeCollection;
103 template class dictionary_hash<std::string, BPatch_typeCollection *>;
104
105 #include "dyninstAPI/src/rpcMgr.h"
106 template class  dictionary_hash<unsigned, rpcLWP *>;
107 template class  pdvector<dictionary_hash <unsigned, rpcLWP *>::entry>;
108 template class  pdvector<rpcThr *>;
109 template class pdvector<inferiorRPCtoDo *>;
110 template class pdvector<inferiorRPCinProgress *>;
111
112 #include "common/src/List.C"
113 template class List<miniTramp*>;
114 template class ListBase<miniTramp*, void*>;
115 template class dictionary_hash<instPoint const *, baseTramp *>;
116
117 #include "dyninstAPI/h/BPatch_thread.h"
118 #include "dyninstAPI/h/BPatch_type.h"
119
120 template class dictionary_hash<std::string, BPatch_type *>;
121 template class dictionary_hash<int, BPatch_thread *>;
122 template class dictionary_hash<int, BPatch_type *>;
123 template class dictionary_hash<std::string, BPatch_localVar *>;
124 template class dictionary_hash<int_function*, BPatch_function*>;
125 template class  dictionary_hash <Address, BPatch_variableExpr*>;
126 template class dictionary_hash<Address, BPatch_point *>;
127
128 template class dictionary_hash<u_int, Address>;
129 template class dictionary_hash<Address, Address>;
130 template class dictionary_hash<Address, heapItem *>;
131 template class dictionary_hash<Address, int_function *>;
132 template class dictionary_hash<Address, unsigned>;
133
134 #include "dyn_lwp.h"
135 template class dictionary_hash<unsigned, dyn_lwp *>;
136
137 class BPatch_basicBlock;
138
139 template class  dictionary_hash<Address,BPatch_basicBlock*>;
140 template class  pdvector<dictionary_hash<Address,BPatch_basicBlock*>::entry>;
141
142 template class BPatch_Vector<BPatch_frame>;
143
144 template class dictionary_hash<Address, unsigned char>;
145 template class pdvector<dictionary_hash <Address, unsigned char>::entry >;
146
147 template class dictionary_hash<std::string,supportedLanguages>;
148 template class pdvector<dictionary_hash<std::string,supportedLanguages>::entry>;
149
150 template class pdvector< Symbol >;
151 template class dictionary_hash< std::string, pdvector< Symbol > >;
152
153 template class dictionary_hash<int, BPatch_process *>;
154 template class pdvector<dictionary_hash <int, BPatch_process *>::entry>;
155
156 template class dictionary_hash<const int_function *, BPatch_function *>;
157 template class pdvector<dictionary_hash <const int_function *, BPatch_function *>::entry>;
158
159 class replacedFunctionCall;
160 template class pdvector<replacedFunctionCall *>;
161
162 class dominatorBB;
163 template class  dictionary_hash <unsigned, dominatorBB *>;
164 template class  pdvector<dictionary_hash<unsigned, dominatorBB *>::entry >;
165 template class  BPatch_Vector<dominatorBB *>;
166 template class  BPatch_Set<dominatorBB *>;
167
168 #include "callbacks.h"
169 #include "signalhandler.h"
170 #include "mailbox.h"
171 template class dictionary_hash< eventType, pdvector< CallbackBase * > >;
172 template class pdvector<dictionary_hash < eventType, pdvector <CallbackBase *> >::entry>;
173
174 class EventGate;
175
176 template class pdvector<CallbackBase *>;
177 template class pdvector<eventLock::lock_stack_elem>;
178 template class pdvector<EventGate *>;
179 template class pdvector<SignalHandler *>;
180
181
182 class image_edge;
183 template class  pdvector<image_edge*>;
184
185 template class  dictionary_hash <int, int>;
186 template class  pdvector<dictionary_hash<int,int>::entry >;
187
188 template class  dictionary_hash <unsigned long, std::string>;
189 template class  pdvector<dictionary_hash<unsigned long,std::string>::entry >;
190
191 template class dictionary_hash<Address, threadmap_t *>;
192 template class pdvector<dictionary_hash<Address, threadmap_t *>::entry>;
193
194 class relocatedCode;
195 template class dictionary_hash<Address, relocatedCode *>;
196 template class pdvector<dictionary_hash<Address, relocatedCode *>::entry>;
197
198 template class dictionary_hash<AstNode *, regTracker_t::commonExpressionTracker>;
199 template class pdvector<dictionary_hash<AstNode *, regTracker_t::commonExpressionTracker>::entry>;
200
201 class Statistic;
202 template class dictionary_hash<std::string, Statistic *>;
203
204 class registerSlot;
205 template class dictionary_hash<unsigned, registerSlot *>;