Mercurial > hg > truffle
annotate agent/src/os/solaris/dbx/shell_imp.h @ 3237:399aa66d375e
Fixed a bug in which the valueEquals method was misused. The method does only check the equality of the node data and not full GVN equality by taking inputs and successors into account.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 27 Jul 2011 14:16:38 -0700 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
25 #ifndef SHELL_IMP_H | |
26 #define SHELL_IMP_H | |
27 | |
28 #ifdef __cplusplus | |
29 extern "C" { | |
30 #endif | |
31 | |
32 #include <stdio.h> | |
33 | |
34 /* | |
35 CCR info | |
36 | |
37 Vesrion history: | |
38 | |
39 1.0 - Initial CCR release | |
40 | |
41 Release information for automatic CCR updates: | |
42 | |
43 BEGIN RELEASE NOTES: (signifies what gets put into CCR release notes) | |
44 1.1 | |
45 - Entry points for va_list style msgs; new shell_imp_vmsg() | |
46 and shell_imp_verrmsg() | |
47 - shell_imp_env_checker() is now shell_imp_var_checker(). | |
48 Also the var_checker callback gets passed interp. | |
49 1.2 - interposition framework (used by jdbx) | |
50 - access to input FILE pointer. | |
51 | |
52 END RELEASE NOTES: (signifies what gets put into CCR release notes) | |
53 | |
54 Following is used as a CCR version number: | |
55 #define CCR_SHELL_IMP_VERSION 1.1 | |
56 */ | |
57 | |
58 #include <stdarg.h> | |
59 | |
60 #define SHELL_IMP_MAJOR 1 | |
61 #define SHELL_IMP_MINOR 2 | |
62 #define SHELL_IMP_FLAG_GLOB 0x1 | |
63 #define SHELL_IMP_FLAG_ARGQ 0x2 | |
64 | |
65 typedef void *shell_imp_interp_t; | |
66 typedef void *shell_imp_command_t; | |
67 typedef int shell_imp_fun_t(shell_imp_interp_t, int, char **, void *); | |
68 | |
69 int | |
70 shell_imp_init( | |
71 int, /* major version number */ | |
72 int, /* minor version number */ | |
73 shell_imp_interp_t, /* interpreter */ | |
74 int, /* argc */ | |
75 char *[] /* argv */ | |
76 ); | |
77 | |
78 int | |
79 shell_imp_fini(shell_imp_interp_t); | |
80 | |
81 shell_imp_command_t | |
82 shell_imp_define_command(char *, /* command name e.g. "tnf" */ | |
83 shell_imp_fun_t *, /* callback function */ | |
84 int, /* SHELL_IMP_FLAG_* bit vector */ | |
85 void *, /* client_data Passed as last arg to | |
86 /* callback function */ | |
87 char * /* help message, e.g. */ | |
88 /* "enable the specified tnf probes" */ | |
89 ); | |
90 | |
91 int | |
92 shell_imp_undefine_command(shell_imp_command_t); | |
93 | |
94 int | |
95 shell_imp_var_checker(shell_imp_interp_t, | |
96 const char *, /* var name */ | |
97 int (*)(shell_imp_interp_t, const char*) /* env checker */ | |
98 ); | |
99 | |
100 int | |
101 shell_imp_execute(shell_imp_interp_t, const char *); | |
102 | |
103 const char * | |
104 shell_imp_get_var(shell_imp_interp_t, const char *); | |
105 | |
106 void | |
107 shell_imp_msg(shell_imp_interp_t, const char *, ...); | |
108 | |
109 void | |
110 shell_imp_errmsg(shell_imp_interp_t, const char *, ...); | |
111 | |
112 void | |
113 shell_imp_vmsg(shell_imp_interp_t, const char *, va_list); | |
114 | |
115 void | |
116 shell_imp_verrmsg(shell_imp_interp_t, const char *, va_list); | |
117 | |
118 | |
119 | |
120 /* | |
121 * Stuff added for 1.2 | |
122 */ | |
123 | |
124 struct shell_imp_interposition_info_t { | |
125 shell_imp_fun_t * | |
126 new_func; | |
127 void * new_client_data; | |
128 shell_imp_fun_t * | |
129 original_func; | |
130 void * original_client_data; | |
131 int original_flags; | |
132 }; | |
133 | |
134 typedef int shell_imp_dispatcher_t(shell_imp_interp_t, int, char **, | |
135 shell_imp_interposition_info_t *); | |
136 | |
137 shell_imp_command_t | |
138 shell_imp_interpose(char *name, | |
139 shell_imp_fun_t *new_func, | |
140 int flags, | |
141 void *client_data, | |
142 char * description, | |
143 shell_imp_dispatcher_t *); | |
144 | |
145 int shell_imp_uninterpose(shell_imp_command_t); | |
146 | |
147 int | |
148 shell_imp_dispatch_interposition(shell_imp_interp_t, | |
149 shell_imp_interposition_info_t *, | |
150 int argc, char *argv[]); | |
151 | |
152 int | |
153 shell_imp_dispatch_original(shell_imp_interp_t, | |
154 shell_imp_interposition_info_t *, | |
155 int argc, char *argv[]); | |
156 | |
157 FILE * | |
158 shell_imp_cur_input(shell_imp_interp_t); | |
159 | |
160 #ifdef __cplusplus | |
161 } | |
162 #endif | |
163 | |
164 #endif |