// SPDX-License-Identifier: GPL-2.0 /* * ucall support. A ucall is a "hypercall to userspace". * * Copyright (C) 2018, Red Hat, Inc.
*/ #include"kvm_util.h"
#define UCALL_PIO_PORT ((uint16_t)0x1000)
void ucall_arch_do_ucall(vm_vaddr_t uc)
{ /* * FIXME: Revert this hack (the entire commit that added it) once nVMX * preserves L2 GPRs across a nested VM-Exit. If a ucall from L2, e.g. * to do a GUEST_SYNC(), lands the vCPU in L1, any and all GPRs can be * clobbered by L1. Save and restore non-volatile GPRs (clobbering RBP * in particular is problematic) along with RDX and RDI (which are * inputs), and clobber volatile GPRs. *sigh*
*/ #define HORRIFIC_L2_UCALL_CLOBBER_HACK \ "rcx", "rsi", "r8", "r9", "r10", "r11"
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.