unsigned long rdx = regs->rdx;
unsigned long r10 = regs->r10;
unsigned long r8 = regs->r8;
- unsigned long r9 = regs->r9;
- HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx, %lx)",
- eax, rdi, rsi, rdx, r10, r8, r9);
+ HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx)",
+ eax, rdi, rsi, rdx, r10, r8);
#ifndef NDEBUG
/* Deliberately corrupt parameter regs not used by this hypercall. */
case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
- case 4: r8 = 0xdeadbeefdeadf00dUL; fallthrough;
- case 5: r9 = 0xdeadbeefdeadf00dUL;
+ case 4: r8 = 0xdeadbeefdeadf00dUL;
}
#endif
- regs->rax = hvm_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8,
- r9);
+ regs->rax = hvm_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
#ifndef NDEBUG
if ( !curr->hcall_preempted )
/* Deliberately corrupt parameter regs used by this hypercall. */
switch ( hypercall_args_table[eax].native )
{
- case 6: regs->r9 = 0xdeadbeefdeadf00dUL; fallthrough;
case 5: regs->r8 = 0xdeadbeefdeadf00dUL; fallthrough;
case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
unsigned int edx = regs->edx;
unsigned int esi = regs->esi;
unsigned int edi = regs->edi;
- unsigned int ebp = regs->ebp;
- HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x, %x)", eax,
- ebx, ecx, edx, esi, edi, ebp);
+ HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
+ ebx, ecx, edx, esi, edi);
#ifndef NDEBUG
/* Deliberately corrupt parameter regs not used by this hypercall. */
case 1: ecx = 0xdeadf00d; fallthrough;
case 2: edx = 0xdeadf00d; fallthrough;
case 3: esi = 0xdeadf00d; fallthrough;
- case 4: edi = 0xdeadf00d; fallthrough;
- case 5: ebp = 0xdeadf00d;
+ case 4: edi = 0xdeadf00d;
}
#endif
curr->hcall_compat = true;
- regs->rax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi,
- ebp);
+ regs->rax = hvm_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
curr->hcall_compat = false;
#ifndef NDEBUG
/* Deliberately corrupt parameter regs used by this hypercall. */
switch ( hypercall_args_table[eax].compat )
{
- case 6: regs->rbp = 0xdeadf00d; fallthrough;
case 5: regs->rdi = 0xdeadf00d; fallthrough;
case 4: regs->rsi = 0xdeadf00d; fallthrough;
case 3: regs->rdx = 0xdeadf00d; fallthrough;
func = array_access_nospec(hvm_hypercall_table, call->op).native;
if ( func )
call->result = func(call->args[0], call->args[1], call->args[2],
- call->args[3], call->args[4], call->args[5]);
+ call->args[3], call->args[4]);
else
call->result = -ENOSYS;
}
func = array_access_nospec(hvm_hypercall_table, call->op).compat;
if ( func )
call->result = func(call->args[0], call->args[1], call->args[2],
- call->args[3], call->args[4], call->args[5]);
+ call->args[3], call->args[4]);
else
call->result = -ENOSYS;
}
unsigned long rdx = regs->rdx;
unsigned long r10 = regs->r10;
unsigned long r8 = regs->r8;
- unsigned long r9 = regs->r9;
#ifndef NDEBUG
/* Deliberately corrupt parameter regs not used by this hypercall. */
case 1: rsi = 0xdeadbeefdeadf00dUL; fallthrough;
case 2: rdx = 0xdeadbeefdeadf00dUL; fallthrough;
case 3: r10 = 0xdeadbeefdeadf00dUL; fallthrough;
- case 4: r8 = 0xdeadbeefdeadf00dUL; fallthrough;
- case 5: r9 = 0xdeadbeefdeadf00dUL;
+ case 4: r8 = 0xdeadbeefdeadf00dUL;
}
#endif
if ( unlikely(tb_init_done) )
{
- unsigned long args[6] = { rdi, rsi, rdx, r10, r8, r9 };
+ unsigned long args[5] = { rdi, rsi, rdx, r10, r8 };
__trace_hypercall(TRC_PV_HYPERCALL_V2, eax, args);
}
- regs->rax = pv_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8, r9);
+ regs->rax = pv_hypercall_table[eax].native(rdi, rsi, rdx, r10, r8);
#ifndef NDEBUG
if ( !curr->hcall_preempted )
/* Deliberately corrupt parameter regs used by this hypercall. */
switch ( hypercall_args_table[eax].native )
{
- case 6: regs->r9 = 0xdeadbeefdeadf00dUL; fallthrough;
case 5: regs->r8 = 0xdeadbeefdeadf00dUL; fallthrough;
case 4: regs->r10 = 0xdeadbeefdeadf00dUL; fallthrough;
case 3: regs->rdx = 0xdeadbeefdeadf00dUL; fallthrough;
unsigned int edx = regs->edx;
unsigned int esi = regs->esi;
unsigned int edi = regs->edi;
- unsigned int ebp = regs->ebp;
#ifndef NDEBUG
/* Deliberately corrupt parameter regs not used by this hypercall. */
case 1: ecx = 0xdeadf00d; fallthrough;
case 2: edx = 0xdeadf00d; fallthrough;
case 3: esi = 0xdeadf00d; fallthrough;
- case 4: edi = 0xdeadf00d; fallthrough;
- case 5: ebp = 0xdeadf00d;
+ case 4: edi = 0xdeadf00d;
}
#endif
if ( unlikely(tb_init_done) )
{
- unsigned long args[6] = { ebx, ecx, edx, esi, edi, ebp };
+ unsigned long args[5] = { ebx, ecx, edx, esi, edi };
__trace_hypercall(TRC_PV_HYPERCALL_V2, eax, args);
}
curr->hcall_compat = true;
- regs->eax = pv_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi, ebp);
+ regs->eax = pv_hypercall_table[eax].compat(ebx, ecx, edx, esi, edi);
curr->hcall_compat = false;
#ifndef NDEBUG
/* Deliberately corrupt parameter regs used by this hypercall. */
switch ( hypercall_args_table[eax].compat )
{
- case 6: regs->ebp = 0xdeadf00d; fallthrough;
case 5: regs->edi = 0xdeadf00d; fallthrough;
case 4: regs->esi = 0xdeadf00d; fallthrough;
case 3: regs->edx = 0xdeadf00d; fallthrough;
pv_hypercall_table[op].compat )
call->result = pv_hypercall_table[op].compat(
call->args[0], call->args[1], call->args[2],
- call->args[3], call->args[4], call->args[5]);
+ call->args[3], call->args[4]);
else
call->result = -ENOSYS;
}
pv_hypercall_table[op].native )
call->result = pv_hypercall_table[op].native(
call->args[0], call->args[1], call->args[2],
- call->args[3], call->args[4], call->args[5]);
+ call->args[3], call->args[4]);
else
call->result = -ENOSYS;
}