arch/all-unix: Fix implementation of KrnCause() for SMP
[aros:aros.git] / AROS / arch / all-unix / kernel / cause.c
1 #include <aros/libcall.h>
2
3 #include <signal.h>
4
5 #include "kernel_base.h"
6 #include "kernel_intern.h"
7
8 AROS_LH0(void, KrnCause,
9           struct KernelBase *, KernelBase, 3, Kernel)
10 {
11     AROS_LIBFUNC_INIT
12
13     struct PlatformData *pd = KernelBase->kb_PlatformData;
14
15 #if AROS_SMP
16     pd->iface->pthread_kill(pd->thread[0].tid, SIGUSR2);
17     AROS_HOST_BARRIER
18 #else
19     pd->iface->raise(SIGUSR2);
20     AROS_HOST_BARRIER
21 #endif
22
23     AROS_LIBFUNC_EXIT
24 }