+
+/*------------------------------------------------------------------*/
+/* */
+/* Name - mono_arch_start_single_stepping. */
+/* */
+/* Function - Start single stepping. */
+/* */
+/*------------------------------------------------------------------*/
+
+void
+mono_arch_start_single_stepping (void)
+{
+ mono_mprotect (ss_trigger_page, mono_pagesize (), 0);
+}
+
+/*========================= End of Function ========================*/
+
+/*------------------------------------------------------------------*/
+/* */
+/* Name - mono_arch_stop_single_stepping. */
+/* */
+/* Function - Stop single stepping. */
+/* */
+/*------------------------------------------------------------------*/
+
+void
+mono_arch_stop_single_stepping (void)
+{
+ mono_mprotect (ss_trigger_page, mono_pagesize (), MONO_MMAP_READ);
+}
+
+/*========================= End of Function ========================*/
+
+/*------------------------------------------------------------------*/
+/* */
+/* Name - mono_arch_is_single_step_event. */
+/* */
+/* Function - Return whether the machine state in sigctx cor- */
+/* responds to a single step event. */
+/* */
+/*------------------------------------------------------------------*/
+
+gboolean
+mono_arch_is_single_step_event (void *info, void *sigctx)
+{
+ siginfo_t* sinfo = (siginfo_t*) info;
+
+ /* Sometimes the address is off by 4 */
+ if (sinfo->si_addr >= ss_trigger_page && (guint8*)sinfo->si_addr <= (guint8*)ss_trigger_page + 128)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/*========================= End of Function ========================*/
+
+/*------------------------------------------------------------------*/
+/* */
+/* Name - mono_arch_skip_single_step. */
+/* */
+/* Function - Modify the ctx so the IP is placed after the */
+/* single step trigger instruction, so that the */
+/* instruction is not executed again. */
+/* */
+/*------------------------------------------------------------------*/
+
+void
+mono_arch_skip_single_step (MonoContext *ctx)
+{
+ MONO_CONTEXT_SET_IP (ctx, (guint8*)MONO_CONTEXT_GET_IP (ctx) + BREAKPOINT_SIZE);
+}
+
+/*========================= End of Function ========================*/
+
+/*------------------------------------------------------------------*/
+/* */
+/* Name - mono_arch_create_seq_point_info. */
+/* */
+/* Function - Return a pointer to a data struction which is */
+/* used by the sequence point implementation in */
+/* AOTed code. */
+/* */
+/*------------------------------------------------------------------*/
+
+gpointer
+mono_arch_get_seq_point_info (MonoDomain *domain, guint8 *code)
+{
+ NOT_IMPLEMENTED;
+ return NULL;
+}
+
+/*========================= End of Function ========================*/
+
+#endif