1 /*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7 #include <config.h>
8 #include <mode/smp/ipi.h>
9 #include <mode/kernel/tlb.h>
10
11 #ifdef ENABLE_SMP_SUPPORT
12
Mode_handleRemoteCall(IpiModeRemoteCall_t call,word_t arg0,word_t arg1,word_t arg2)13 void Mode_handleRemoteCall(IpiModeRemoteCall_t call, word_t arg0, word_t arg1, word_t arg2)
14 {
15 switch (call) {
16 case IpiRemoteCall_InvalidatePCID:
17 invalidateLocalPCID(arg0, (void *)arg1, arg2);
18 break;
19
20 case IpiRemoteCall_InvalidateASID:
21 invalidateLocalASID((vspace_root_t *)arg0, arg1);
22 break;
23
24 default:
25 fail("Invalid remote call");
26 }
27 }
28
29 #endif /* ENABLE_SMP_SUPPORT */
30