/* * Additions to this struct must only occur at the end, and should be * accompanied by a KVM_MAGIC_FEAT flag to advertise that they are present * (albeit not necessarily relevant to the current target hardware platform). * * Struct fields are always 32 or 64 bit aligned, depending on them being 32 * or 64 bit wide respectively. * * See Documentation/virt/kvm/ppc-pv.rst
*/ struct kvm_vcpu_arch_shared {
__u64 scratch1;
__u64 scratch2;
__u64 scratch3;
__u64 critical; /* Guest may not get interrupts if == r1 */
__u64 sprg0;
__u64 sprg1;
__u64 sprg2;
__u64 sprg3;
__u64 srr0;
__u64 srr1;
__u64 dar; /* dear on BookE */
__u64 msr;
__u32 dsisr;
__u32 int_pending; /* Tells the guest if we have an interrupt */
__u32 sr[16];
__u32 mas0;
__u32 mas1;
__u64 mas7_3;
__u64 mas2;
__u32 mas4;
__u32 mas6;
__u32 esr;
__u32 pir;
/* * SPRG4-7 are user-readable, so we can only keep these consistent * between the shared area and the real registers when there's an * intervening exit to KVM. This also applies to SPRG3 on some * chips. * * This suffices for access by guest userspace, since in PR-mode * KVM, an exit must occur when changing the guest's MSR[PR]. * If the guest kernel writes to SPRG3-7 via the shared area, it * must also use the shared area for reading while in kernel space.
*/
__u64 sprg4;
__u64 sprg5;
__u64 sprg6;
__u64 sprg7;
};
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.