*
*
* Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
*/
#include <mono/utils/mono-sigcontext.h>
void
mono_sigctx_to_monoctx (void *sigctx, MonoContext *mctx)
{
-#if defined (__native_client__)
+#if defined (__native_client__) || defined (HOST_WATCHOS)
printf("WARNING: mono_arch_sigctx_to_monoctx() called!\n");
mctx->eax = 0xDEADBEEF;
mctx->ebx = 0xDEADBEEF;
mctx->esi = 0xDEADBEEF;
mctx->edi = 0xDEADBEEF;
mctx->eip = 0xDEADBEEF;
-#elif defined(MONO_SIGNAL_USE_SIGACTION)
+#elif MONO_CROSS_COMPILE
+ g_assert_not_reached ();
+#elif defined(MONO_SIGNAL_USE_UCONTEXT_T)
ucontext_t *ctx = (ucontext_t*)sigctx;
mctx->eax = UCONTEXT_REG_EAX (ctx);
void
mono_monoctx_to_sigctx (MonoContext *mctx, void *sigctx)
{
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
printf("WARNING: mono_arch_monoctx_to_sigctx() called!\n");
-#elif defined(MONO_SIGNAL_USE_SIGACTION)
+#elif MONO_CROSS_COMPILE
+ g_assert_not_reached ();
+#elif defined(MONO_SIGNAL_USE_UCONTEXT_T)
ucontext_t *ctx = (ucontext_t*)sigctx;
UCONTEXT_REG_EAX (ctx) = mctx->eax;
printf("WARNING: mono_arch_sigctx_to_monoctx() called!\n");
#endif
-#if defined(MONO_SIGNAL_USE_SIGACTION)
+#ifdef MONO_CROSS_COMPILE
+ g_assert_not_reached ();
+#elif defined(MONO_SIGNAL_USE_UCONTEXT_T)
ucontext_t *ctx = (ucontext_t*)sigctx;
mctx->gregs [AMD64_RAX] = UCONTEXT_REG_RAX (ctx);
mctx->gregs [AMD64_R14] = context->R14;
mctx->gregs [AMD64_R15] = context->R15;
#else
- MonoContext *ctx = (MonoContext *)sigctx;
-
- mctx->gregs [AMD64_RAX] = ctx->gregs [AMD64_RAX];
- mctx->gregs [AMD64_RBX] = ctx->gregs [AMD64_RBX];
- mctx->gregs [AMD64_RCX] = ctx->gregs [AMD64_RCX];
- mctx->gregs [AMD64_RDX] = ctx->gregs [AMD64_RDX];
- mctx->gregs [AMD64_RBP] = ctx->gregs [AMD64_RBP];
- mctx->gregs [AMD64_RSP] = ctx->gregs [AMD64_RSP];
- mctx->gregs [AMD64_RSI] = ctx->gregs [AMD64_RSI];
- mctx->gregs [AMD64_RDI] = ctx->gregs [AMD64_RDI];
- mctx->gregs [AMD64_R8] = ctx->gregs [AMD64_R8];
- mctx->gregs [AMD64_R9] = ctx->gregs [AMD64_R9];
- mctx->gregs [AMD64_R10] = ctx->gregs [AMD64_R10];
- mctx->gregs [AMD64_R11] = ctx->gregs [AMD64_R11];
- mctx->gregs [AMD64_R12] = ctx->gregs [AMD64_R12];
- mctx->gregs [AMD64_R13] = ctx->gregs [AMD64_R13];
- mctx->gregs [AMD64_R14] = ctx->gregs [AMD64_R14];
- mctx->gregs [AMD64_R15] = ctx->gregs [AMD64_R15];
- mctx->gregs [AMD64_RIP] = ctx->gregs [AMD64_RIP];
+ g_assert_not_reached ();
#endif
}
printf("WARNING: mono_arch_monoctx_to_sigctx() called!\n");
#endif
-#if defined(MONO_SIGNAL_USE_SIGACTION)
+#ifdef MONO_CROSS_COMPILE
+ g_assert_not_reached ();
+#elif defined(MONO_SIGNAL_USE_UCONTEXT_T)
ucontext_t *ctx = (ucontext_t*)sigctx;
UCONTEXT_REG_RAX (ctx) = mctx->gregs [AMD64_RAX];
context->R14 = mctx->gregs [AMD64_R14];
context->R15 = mctx->gregs [AMD64_R15];
#else
- MonoContext *ctx = (MonoContext *)sigctx;
-
- ctx->gregs [AMD64_RAX] = mctx->gregs [AMD64_RAX];
- ctx->gregs [AMD64_RBX] = mctx->gregs [AMD64_RBX];
- ctx->gregs [AMD64_RCX] = mctx->gregs [AMD64_RCX];
- ctx->gregs [AMD64_RDX] = mctx->gregs [AMD64_RDX];
- ctx->gregs [AMD64_RBP] = mctx->gregs [AMD64_RBP];
- ctx->gregs [AMD64_RSP] = mctx->gregs [AMD64_RSP];
- ctx->gregs [AMD64_RSI] = mctx->gregs [AMD64_RSI];
- ctx->gregs [AMD64_RDI] = mctx->gregs [AMD64_RDI];
- ctx->gregs [AMD64_R8] = mctx->gregs [AMD64_R8];
- ctx->gregs [AMD64_R9] = mctx->gregs [AMD64_R9];
- ctx->gregs [AMD64_R10] = mctx->gregs [AMD64_R10];
- ctx->gregs [AMD64_R11] = mctx->gregs [AMD64_R11];
- ctx->gregs [AMD64_R12] = mctx->gregs [AMD64_R12];
- ctx->gregs [AMD64_R13] = mctx->gregs [AMD64_R13];
- ctx->gregs [AMD64_R14] = mctx->gregs [AMD64_R14];
- ctx->gregs [AMD64_R15] = mctx->gregs [AMD64_R15];
- ctx->gregs [AMD64_RIP] = mctx->gregs [AMD64_RIP];
+ g_assert_not_reached ();
#endif
}