From: Jan Kiszka <jan.kis...@siemens.com> Will be used for SDEI. Actually not on ARM, but we add the smc_arg2 to please the build and avoid surprises once it is used for real.
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- hypervisor/arch/arm/include/asm/smc.h | 14 +++++++++++ hypervisor/arch/arm64/include/asm/smc.h | 33 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/hypervisor/arch/arm/include/asm/smc.h b/hypervisor/arch/arm/include/asm/smc.h index b70af8be..b7348627 100644 --- a/hypervisor/arch/arm/include/asm/smc.h +++ b/hypervisor/arch/arm/include/asm/smc.h @@ -35,3 +35,17 @@ static inline int smc_arg1(unsigned long id, unsigned long par1) return __id; } + +static inline long smc_arg2(unsigned long id, unsigned long par1, + unsigned long par2) +{ + register unsigned long __id asm("r0") = id; + register unsigned long __par1 asm("r1") = par1; + register unsigned long __par2 asm("r2") = par2; + + asm volatile ("smc #0\n\t" + : "+r" (__id), "+r" (__par1), "+r" (__par2) + : : "memory", "r3"); + + return __id; +} diff --git a/hypervisor/arch/arm64/include/asm/smc.h b/hypervisor/arch/arm64/include/asm/smc.h index 27e5397b..ecd2cac6 100644 --- a/hypervisor/arch/arm64/include/asm/smc.h +++ b/hypervisor/arch/arm64/include/asm/smc.h @@ -32,3 +32,36 @@ static inline long smc_arg1(unsigned long id, unsigned long par1) return __id; } + +static inline long smc_arg2(unsigned long id, unsigned long par1, + unsigned long par2) +{ + register unsigned long __id asm("r0") = id; + register unsigned long __par1 asm("r1") = par1; + register unsigned long __par2 asm("r2") = par2; + + asm volatile ("smc #0\n\t" + : "+r" (__id), "+r" (__par1), "+r" (__par2) + : : "memory", "x3"); + + return __id; +} + +static inline long smc_arg5(unsigned long id, unsigned long par1, + unsigned long par2, unsigned long par3, + unsigned long par4, unsigned long par5) +{ + register unsigned long __id asm("r0") = id; + register unsigned long __par1 asm("r1") = par1; + register unsigned long __par2 asm("r2") = par2; + register unsigned long __par3 asm("r3") = par3; + register unsigned long __par4 asm("r4") = par4; + register unsigned long __par5 asm("r5") = par5; + + asm volatile ("smc #0\n\t" + : "+r" (__id), "+r" (__par1), "+r" (__par2), "+r" (__par3), + "+r"(__par4), "+r"(__par5) + : : "memory"); + + return __id; +} -- 2.26.2 -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to jailhouse-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/839f3ab97da1aa1bb98bf8e0afcd66ae6d33ff17.1616139045.git.jan.kiszka%40siemens.com.