Ejemplo n.º 1
0
// FIX ME: This is not complete
void
mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data)
{
	uintptr_t sp = (uintptr_t) MONO_CONTEXT_GET_SP(ctx);
	ctx->regs [PPC_FIRST_ARG_REG] = user_data;
	sp -= PPC_MINIMAL_STACK_SIZE;
	*(unsigned long *)sp = MONO_CONTEXT_GET_SP(ctx);
	MONO_CONTEXT_SET_BP(ctx, sp);
	mono_arch_setup_resume_sighandler_ctx(ctx, (unsigned long) async_cb);
}
Ejemplo n.º 2
0
void
mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data)
{
    mgreg_t sp = (mgreg_t)MONO_CONTEXT_GET_SP (ctx);

    // FIXME:
    g_assert (!user_data);

    /* Allocate a stack frame */
    sp -= 32;
    MONO_CONTEXT_SET_SP (ctx, sp);

    mono_arch_setup_resume_sighandler_ctx (ctx, async_cb);
}