This commit enables arbitrary instrumentation points at the last instruction
[dyninst.git] / dyninstAPI / h / baseTrampTemplate.h
1 /*\r
2  * Copyright (c) 1998 Barton P. Miller\r
3  * \r
4  * We provide the Paradyn Parallel Performance Tools (below\r
5  * described as Paradyn") on an AS IS basis, and do not warrant its\r
6  * validity or performance.  We reserve the right to update, modify,\r
7  * or discontinue this software at any time.  We shall have no\r
8  * obligation to supply such updates or modifications or any other\r
9  * form of support to you.\r
10  * \r
11  * This license is for research uses.  For such uses, there is no\r
12  * charge. We define "research use" to mean you may freely use it\r
13  * inside your organization for whatever purposes you see fit. But you\r
14  * may not re-distribute Paradyn or parts of Paradyn, in any form\r
15  * source or binary (including derivatives), electronic or otherwise,\r
16  * to any other organization or entity without our permission.\r
17  * \r
18  * (for other uses, please contact us at paradyn@cs.wisc.edu)\r
19  * \r
20  * All warranties, including without limitation, any warranty of\r
21  * merchantability or fitness for a particular purpose, are hereby\r
22  * excluded.\r
23  * \r
24  * By your use of Paradyn, you understand and agree that we (or any\r
25  * other person or entity with proprietary rights in Paradyn) are\r
26  * under no obligation to provide either maintenance services,\r
27  * update services, notices of latent defects, or correction of\r
28  * defects for Paradyn.\r
29  * \r
30  * Even if advised of the possibility of such damages, under no\r
31  * circumstances shall we (or any other person or entity with\r
32  * proprietary rights in the software licensed hereunder) be liable\r
33  * to you or any third party for direct, indirect, or consequential\r
34  * damages of any character regardless of type of action, including,\r
35  * without limitation, loss of profits, loss of use, loss of good\r
36  * will, or computer failure or malfunction.  You agree to indemnify\r
37  * us (and any other person or entity with proprietary rights in the\r
38  * software licensed hereunder) for any and all liability it may\r
39  * incur to third parties resulting from your use of Paradyn.\r
40  */\r
41 \r
42 \r
43 /* \r
44  * $Id: baseTrampTemplate.h,v 1.1 2001/08/01 15:39:52 chadd Exp $\r
45  */\r
46 //ccw 2 aug 2000\r
47 //created to allow many files to include this\r
48 //w/o the overhead of inst-mips.h!\r
49 \r
50 #ifndef baseTrampTemplate__\r
51 #define baseTrampTemplate__\r
52 #include "common/h/Types.h"\r
53 \r
54 #ifdef mips_unknown_ce2_11 //ccw 2 aug 2000\r
55 //in order to get the mips assembly code on the NT box \r
56 //where it needs to be to produce the trampolines,\r
57 //the assembly is loaded by the CE client, and passed back\r
58 //up to the NT box.  In that case, the assembly functions are\r
59 //just defined as Addresses, set when the system initializes.\r
60 //\r
61 //these values are set by remoteDevice::remoteDevice in file remoteDevice.C\r
62 //\r
63 \r
64 extern char *baseTrampMem; //where the allocated memory will go.\r
65 extern char *baseNonRecursiveTrampMem;//the the NonRecursive code goes.\r
66 \r
67 extern Address baseTramp;\r
68 extern Address baseTemplate_savePreInsOffset;\r
69 extern Address baseTemplate_skipPreInsOffset;\r
70 extern Address baseTemplate_globalPreOffset;\r
71 extern Address baseTemplate_localPreOffset;\r
72 extern Address baseTemplate_localPreReturnOffset;\r
73 extern Address baseTemplate_updateCostOffset;\r
74 extern Address baseTemplate_restorePreInsOffset;\r
75 extern Address baseTemplate_emulateInsOffset;\r
76 extern Address baseTemplate_skipPostInsOffset;\r
77 extern Address baseTemplate_savePostInsOffset;\r
78 extern Address baseTemplate_globalPostOffset;\r
79 extern Address baseTemplate_localPostOffset;\r
80 extern Address baseTemplate_localPostReturnOffset;\r
81 extern Address baseTemplate_restorePostInsOffset;\r
82 extern Address baseTemplate_returnInsOffset;\r
83 \r
84 extern Address baseTemplate_trampTemp;\r
85 extern Address baseTemplate_size;\r
86 extern Address baseTemplate_cost;\r
87 extern Address baseTemplate_prevBaseCost;\r
88 extern Address baseTemplate_postBaseCost;\r
89 extern Address baseTemplate_prevInstru;\r
90 extern Address baseTemplate_postInstru;\r
91 extern Address baseTramp_endTramp;\r
92 \r
93 \r
94 /////nonRecursive!\r
95 extern Address baseNonRecursiveTramp;\r
96 \r
97 extern Address nonRecursiveBaseTemplate_guardOffPost_beginOffset;\r
98 extern Address nonRecursiveBaseTemplate_savePreInsOffset;\r
99 extern Address nonRecursiveBaseTemplate_skipPreInsOffset;\r
100 extern Address nonRecursiveBaseTemplate_globalPreOffset ;\r
101 extern Address nonRecursiveBaseTemplate_localPreOffset;\r
102 extern Address nonRecursiveBaseTemplate_localPreReturnOffset;\r
103 extern Address nonRecursiveBaseTemplate_updateCostOffset;\r
104 extern Address nonRecursiveBaseTemplate_restorePreInsOffset;\r
105 extern Address nonRecursiveBaseTemplate_emulateInsOffset;\r
106 extern Address nonRecursiveBaseTemplate_skipPostInsOffset;\r
107 extern Address nonRecursiveBaseTemplate_savePostInsOffset;\r
108 extern Address nonRecursiveBaseTemplate_globalPostOffset;\r
109 extern Address nonRecursiveBaseTemplate_localPostOffset;\r
110 extern Address nonRecursiveBaseTemplate_localPostReturnOffset;\r
111 extern Address nonRecursiveBaseTemplate_restorePostInsOffset;\r
112 extern Address nonRecursiveBaseTemplate_returnInsOffset;\r
113 extern Address nonRecursiveBaseTemplate_guardOnPre_beginOffset;\r
114 extern Address nonRecursiveBaseTemplate_guardOffPre_beginOffset;\r
115 extern Address nonRecursiveBaseTemplate_guardOnPost_beginOffset;\r
116 extern Address nonRecursiveBaseTemplate_guardOffPost_beginOffset;\r
117 extern Address nonRecursiveBaseTemplate_guardOnPre_endOffset;\r
118 extern Address nonRecursiveBaseTemplate_guardOffPre_endOffset;\r
119 extern Address nonRecursiveBaseTemplate_guardOnPost_endOffset;\r
120 extern Address nonRecursiveBaseTemplate_guardOffPost_endOffset;\r
121 extern Address nonRecursiveBaseTemplate_trampTemp;\r
122 extern Address nonRecursiveBaseTemplate_size;\r
123 extern Address nonRecursiveBaseTemplate_cost;\r
124 extern Address nonRecursiveBaseTemplate_prevBaseCost;\r
125 extern Address nonRecursiveBaseTemplate_postBaseCost;\r
126 extern Address nonRecursiveBaseTemplate_prevInstru;\r
127 extern Address nonRecursiveBaseTemplate_postInstru;\r
128 \r
129 #else\r
130 \r
131 // baseTramp assembly code symbols\r
132 #include "asmExterns.h"\r
133 \r
134 #endif\r
135 \r
136 #endif\r