1/* 2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#include <config.h> 10#include <smp/ipi.h> 11 12#ifdef ENABLE_SMP_SUPPORT 13static inline void doRemoteStall(word_t cpu) 14{ 15 doRemoteOp0Arg(IpiRemoteCall_Stall, cpu); 16} 17 18#ifdef CONFIG_HAVE_FPU 19static inline void doRemoteswitchFpuOwner(user_fpu_state_t *new_owner, word_t cpu) 20{ 21 doRemoteOp1Arg(IpiRemoteCall_switchFpuOwner, (word_t)new_owner, cpu); 22} 23#endif /* CONFIG_HAVE_FPU */ 24 25static inline void doRemoteInvalidateTranslationSingle(vptr_t vptr, word_t mask) 26{ 27 doRemoteMaskOp1Arg(IpiRemoteCall_InvalidateTranslationSingle, vptr, mask); 28} 29 30static inline void doRemoteInvalidateTranslationASID(asid_t asid, word_t mask) 31{ 32 doRemoteMaskOp1Arg(IpiRemoteCall_InvalidateTranslationASID, asid, mask); 33} 34 35static inline void doRemoteInvalidateTranslationAll(word_t mask) 36{ 37 doRemoteMaskOp0Arg(IpiRemoteCall_InvalidateTranslationAll, mask); 38} 39 40static inline void doRemoteMaskPrivateInterrupt(word_t cpu, word_t disable, word_t irq) 41{ 42 doRemoteOp2Arg(IpiRemoteCall_MaskPrivateInterrupt, disable, irq, cpu); 43} 44#endif /* ENABLE_SMP_SUPPORT */ 45 46