don't check when its clang masquerading as gcc
[AROS.git] / arch / arm-native / kernel / kernel_ipi.c
blobf20fdfc09d75958750c1a779ee763014ac61e3d4
1 /*
2 Copyright © 2015, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <inttypes.h>
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"
15 #include "etask.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__)
24 #define D(x) x
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));
36 switch (ipi_msg)
38 case IPI_CAUSE:
40 D(bug("[Kernel:IPI] IPI_CAUSE:\n"));
41 break;
43 case IPI_DISPATCH:
45 D(bug("[Kernel:IPI] IPI_DISPATCH:\n"));
46 break;
48 case IPI_SWITCH:
50 D(bug("[Kernel:IPI] IPI_SWITCH:\n"));
51 break;
53 case IPI_SCHEDULE:
55 D(bug("[Kernel:IPI] IPI_SCHEDULE:\n"));
56 break;
58 case IPI_CLI:
60 D(bug("[Kernel:IPI] IPI_CLI:\n"));
61 break;
63 case IPI_STI:
65 D(bug("[Kernel:IPI] IPI_STI:\n"));
66 break;
68 case IPI_REBOOT:
70 D(bug("[Kernel:IPI] IPI_REBOOT:\n"));
71 break;
73 case IPI_ADDTASK:
75 D(bug("[Kernel:IPI] IPI_ADDTASK:\n"));
76 break;
78 case IPI_REMTASK:
80 D(bug("[Kernel:IPI] IPI_REMTASK:\n"));
81 break;
85 #endif