fix signal handler, ringbuffer for native FreeBSD

dev/timer
Ludwig Ortmann 10 years ago
parent 4f0e4dec90
commit 49228c8353

@ -294,6 +294,9 @@ void native_isr_entry(int sig, siginfo_t *info, void *context)
#ifdef __MACH__
_native_saved_eip = ((ucontext_t*)context)->uc_mcontext->__ss.__eip;
((ucontext_t*)context)->uc_mcontext->__ss.__eip = (unsigned int)&_native_sig_leave_tramp;
#elif BSD
_native_saved_eip = ((struct sigcontext*)context)->sc_eip;
((struct sigcontext*)context)->sc_eip = (unsigned int)&_native_sig_leave_tramp;
#else
_native_saved_eip = ((ucontext_t*)context)->uc_mcontext.gregs[REG_EIP];
((ucontext_t*)context)->uc_mcontext.gregs[REG_EIP] = (unsigned int)&_native_sig_leave_tramp;

@ -2,7 +2,7 @@
#include <stdint.h>
#include <string.h>
#ifdef __MACH__
#if (defined(__MACH__) || defined(__FreeBSD__))
#include <stdlib.h>
#else
#include "malloc.h"

Loading…
Cancel
Save