+/* Arch-specific */
+typedef struct {
+ int dummy;
+} MonoDynCallInfo;
+
+/*
+ * Possible frame types returned by the stack walker.
+ */
+typedef enum {
+ /* Normal managed frames */
+ FRAME_TYPE_MANAGED = 0,
+ /* Pseudo frame marking the start of a method invocation done by the soft debugger */
+ FRAME_TYPE_DEBUGGER_INVOKE = 1,
+ /* Frame for transitioning to native code */
+ FRAME_TYPE_MANAGED_TO_NATIVE = 2,
+ FRAME_TYPE_SENTINEL = 3
+} StackFrameType;
+
+/*
+ * Information about a stack frame
+ */
+typedef struct {
+ StackFrameType type;
+ /*
+ * For FRAME_TYPE_MANAGED.
+ * For FRAME_TYPE_MANAGED_TO_NATIVE, the ji for the method which transitioned to
+ * native code, if there is one, else NULL.
+ */
+ MonoJitInfo *ji;
+ /*
+ * For FRAME_TYPE_MANAGED_TO_NATIVE, it is either the method which transitioned
+ * to native code, or the method which was JITted.
+ */
+ MonoMethod *method;
+ /* The domain containing the code executed by this frame */
+ MonoDomain *domain;
+ gboolean managed;
+ int native_offset;
+ int il_offset;
+ gpointer lmf;
+} StackFrameInfo;
+
+typedef struct {
+ int il_offset, native_offset;
+ /* Indexes of successor sequence points */
+ int *next;
+ /* Number of entries in next */
+ int next_len;
+} SeqPoint;
+
+typedef struct {
+ int len;
+ SeqPoint seq_points [MONO_ZERO_LEN_ARRAY];
+} MonoSeqPointInfo;
+