RISC-V: KVM: selftests: Move sbi_ecall to processor.c
authorAndrew Jones <ajones@ventanamicro.com>
Wed, 20 Dec 2023 16:00:23 +0000 (17:00 +0100)
committerAnup Patel <anup@brainfault.org>
Sat, 30 Dec 2023 05:56:41 +0000 (11:26 +0530)
sbi_ecall() isn't ucall specific and its prototype is already in
processor.h. Move its implementation to processor.c.

Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Anup Patel <anup@brainfault.org>
tools/testing/selftests/kvm/lib/riscv/processor.c
tools/testing/selftests/kvm/lib/riscv/ucall.c

index 6c25f7843ef44af17ac96339990c0eea56a72482..6905a4348380cd7f6567c94a79bfbc7a6dcf2b52 100644 (file)
@@ -367,3 +367,29 @@ void vcpu_args_set(struct kvm_vcpu *vcpu, unsigned int num, ...)
 void assert_on_unhandled_exception(struct kvm_vcpu *vcpu)
 {
 }
+
+struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0,
+                       unsigned long arg1, unsigned long arg2,
+                       unsigned long arg3, unsigned long arg4,
+                       unsigned long arg5)
+{
+       register uintptr_t a0 asm ("a0") = (uintptr_t)(arg0);
+       register uintptr_t a1 asm ("a1") = (uintptr_t)(arg1);
+       register uintptr_t a2 asm ("a2") = (uintptr_t)(arg2);
+       register uintptr_t a3 asm ("a3") = (uintptr_t)(arg3);
+       register uintptr_t a4 asm ("a4") = (uintptr_t)(arg4);
+       register uintptr_t a5 asm ("a5") = (uintptr_t)(arg5);
+       register uintptr_t a6 asm ("a6") = (uintptr_t)(fid);
+       register uintptr_t a7 asm ("a7") = (uintptr_t)(ext);
+       struct sbiret ret;
+
+       asm volatile (
+               "ecall"
+               : "+r" (a0), "+r" (a1)
+               : "r" (a2), "r" (a3), "r" (a4), "r" (a5), "r" (a6), "r" (a7)
+               : "memory");
+       ret.error = a0;
+       ret.value = a1;
+
+       return ret;
+}
index fe6d1004f018c08e12e91e2993408494bab04317..14ee17151a590b26721c91940e758192d34633c0 100644 (file)
 #include "kvm_util.h"
 #include "processor.h"
 
-struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0,
-                       unsigned long arg1, unsigned long arg2,
-                       unsigned long arg3, unsigned long arg4,
-                       unsigned long arg5)
-{
-       register uintptr_t a0 asm ("a0") = (uintptr_t)(arg0);
-       register uintptr_t a1 asm ("a1") = (uintptr_t)(arg1);
-       register uintptr_t a2 asm ("a2") = (uintptr_t)(arg2);
-       register uintptr_t a3 asm ("a3") = (uintptr_t)(arg3);
-       register uintptr_t a4 asm ("a4") = (uintptr_t)(arg4);
-       register uintptr_t a5 asm ("a5") = (uintptr_t)(arg5);
-       register uintptr_t a6 asm ("a6") = (uintptr_t)(fid);
-       register uintptr_t a7 asm ("a7") = (uintptr_t)(ext);
-       struct sbiret ret;
-
-       asm volatile (
-               "ecall"
-               : "+r" (a0), "+r" (a1)
-               : "r" (a2), "r" (a3), "r" (a4), "r" (a5), "r" (a6), "r" (a7)
-               : "memory");
-       ret.error = a0;
-       ret.value = a1;
-
-       return ret;
-}
-
 void *ucall_arch_get_ucall(struct kvm_vcpu *vcpu)
 {
        struct kvm_run *run = vcpu->run;