2 Copyright © 2015, The AROS Development Team. All rights reserved.
7 #include <aros/kernel.h>
8 #include <aros/libcall.h>
10 #include <aros/types/spinlock_s.h>
11 #include <aros/arm/cpucontext.h>
13 #include "kernel_base.h"
17 #include "kernel_cpu.h"
18 #include "kernel_intern.h"
19 #include "kernel_debug.h"
20 #include "kernel_scheduler.h"
22 #if defined(__AROSEXEC_SMP__)
26 #include "kernel_ipi.h"
28 void handle_ipi(uint32_t ipi
, uint32_t ipi_data
)
30 int cpu
= GetCPUNumber();
31 uint32_t ipi_src
= (ipi
>> 28) & 0xF;
32 uint32_t ipi_msg
= ipi
& ~(0xF << 28);
34 D(bug("[Kernel:IPI] %s: Core #%02d IPI Msg %08x:%08x from Core #%02d\n",
35 __PRETTY_FUNCTION__
, cpu
, ipi_msg
, ipi_data
, ipi_src
));
40 D(bug("[Kernel:IPI] IPI_CAUSE:\n"));
45 D(bug("[Kernel:IPI] IPI_DISPATCH:\n"));
50 D(bug("[Kernel:IPI] IPI_SWITCH:\n"));
55 D(bug("[Kernel:IPI] IPI_SCHEDULE:\n"));
60 D(bug("[Kernel:IPI] IPI_CLI:\n"));
65 D(bug("[Kernel:IPI] IPI_STI:\n"));
70 D(bug("[Kernel:IPI] IPI_REBOOT:\n"));
75 D(bug("[Kernel:IPI] IPI_ADDTASK:\n"));
80 D(bug("[Kernel:IPI] IPI_REMTASK:\n"));