The function only works against the current CPU, thus should avoid to
take the misleading parameter. The necessary reference can be obtained
from the per-cpu data structure now.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
void vcpu_vendor_set_guest_pat(unsigned long val);
-void vcpu_handle_hypercall(union registers *guest_regs);
+void vcpu_handle_hypercall(void);
bool vcpu_handle_io_access(union registers *guest_regs);
bool vcpu_handle_mmio_access(union registers *guest_regs);
/* FIXME: We are not intercepting CPUID now */
return;
case VMEXIT_VMMCALL:
- vcpu_handle_hypercall(guest_regs);
+ vcpu_handle_hypercall();
return;
case VMEXIT_CR0_SEL_WRITE:
cpu_data->stats[JAILHOUSE_CPU_STAT_VMEXITS_CR]++;
vcpu_vendor_cell_exit(cell);
}
-void vcpu_handle_hypercall(union registers *guest_regs)
+void vcpu_handle_hypercall(void)
{
+ union registers *guest_regs = &this_cpu_data()->guest_regs;
unsigned long code = guest_regs->rax;
struct vcpu_execution_state x_state;
unsigned long arg_mask;
(u32 *)&guest_regs->rcx, (u32 *)&guest_regs->rdx);
return;
case EXIT_REASON_VMCALL:
- vcpu_handle_hypercall(guest_regs);
+ vcpu_handle_hypercall();
return;
case EXIT_REASON_CR_ACCESS:
cpu_data->stats[JAILHOUSE_CPU_STAT_VMEXITS_CR]++;