Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2011-11-10 20:19:02 -0500
committerEugene Tarassov2011-11-10 20:19:02 -0500
commita107edc216f94c5ec059fdf74541908bc7e979bb (patch)
treea0d9a448043cf5b969c2ede059b7d19a3aa64b71 /agent/tcf/services/vm.h
parent07c7a005cded9e4b4ec842d756d0e4d79dade149 (diff)
downloadorg.eclipse.tcf.agent-a107edc216f94c5ec059fdf74541908bc7e979bb.tar.gz
org.eclipse.tcf.agent-a107edc216f94c5ec059fdf74541908bc7e979bb.tar.xz
org.eclipse.tcf.agent-a107edc216f94c5ec059fdf74541908bc7e979bb.zip
Agent code is moved into separate "agent" directory, all C code moved into "tcf" directory.
Diffstat (limited to 'agent/tcf/services/vm.h')
-rw-r--r--agent/tcf/services/vm.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/agent/tcf/services/vm.h b/agent/tcf/services/vm.h
new file mode 100644
index 00000000..90b6bb17
--- /dev/null
+++ b/agent/tcf/services/vm.h
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Wind River Systems, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v1.0 which accompany this distribution.
+ * The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ * You may elect to redistribute this code under either of these licenses.
+ *
+ * Contributors:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+
+
+#ifndef D_vm
+#define D_vm
+
+#include <config.h>
+
+#if ENABLE_DebugContext
+
+#include <framework/context.h>
+
+typedef struct VMState {
+ /* Evaluation context */
+ Context * ctx;
+ int stack_frame;
+ int big_endian;
+ size_t addr_size;
+ uint64_t object_address;
+ RegisterIdScope reg_id_scope;
+
+ /* Code to execute */
+ uint8_t * code;
+ size_t code_pos;
+ size_t code_len;
+
+ /* VM callback */
+ void (*client_op)(uint8_t op);
+
+ /* Result */
+ RegisterDefinition * reg;
+ uint32_t piece_offs;
+ uint32_t piece_bits;
+
+ /* Stack */
+ unsigned stk_pos;
+ unsigned stk_max;
+ uint64_t * stk;
+} VMState;
+
+extern int evaluate_vm_expression(VMState * state);
+
+#endif /* ENABLE_DebugContext */
+
+#endif /* D_vm */

Back to the top