Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/amd/svm_softc.h
| Show First 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | struct svm_vcpu { | ||||
| uint64_t vmcb_pa; /* VMCB physical address */ | uint64_t vmcb_pa; /* VMCB physical address */ | ||||
| uint64_t nextrip; /* next instruction to be executed by guest */ | uint64_t nextrip; /* next instruction to be executed by guest */ | ||||
| int lastcpu; /* host cpu that the vcpu last ran on */ | int lastcpu; /* host cpu that the vcpu last ran on */ | ||||
| uint32_t dirty; /* state cache bits that must be cleared */ | uint32_t dirty; /* state cache bits that must be cleared */ | ||||
| long eptgen; /* pmap->pm_eptgen when the vcpu last ran */ | long eptgen; /* pmap->pm_eptgen when the vcpu last ran */ | ||||
| struct asid asid; | struct asid asid; | ||||
| } __aligned(PAGE_SIZE); | } __aligned(PAGE_SIZE); | ||||
| struct apic_page { | |||||
| uint8_t byte[PAGE_SIZE]; | |||||
| } __aligned(PAGE_SIZE); | |||||
| /* | /* | ||||
| * SVM softc, one per virtual machine. | * SVM softc, one per virtual machine. | ||||
| */ | */ | ||||
| struct svm_softc { | struct svm_softc { | ||||
| uint8_t apic_page[VM_MAXCPU][PAGE_SIZE]; | struct apic_page apic_page[VM_MAXCPU]; | ||||
| struct svm_vcpu vcpu[VM_MAXCPU]; | struct svm_vcpu vcpu[VM_MAXCPU]; | ||||
| vm_offset_t nptp; /* nested page table */ | vm_offset_t nptp; /* nested page table */ | ||||
| uint8_t *iopm_bitmap; /* shared by all vcpus */ | uint8_t *iopm_bitmap; /* shared by all vcpus */ | ||||
| uint8_t *msr_bitmap; /* shared by all vcpus */ | uint8_t *msr_bitmap; /* shared by all vcpus */ | ||||
| struct vm *vm; | struct vm *vm; | ||||
| }; | }; | ||||
| CTASSERT((offsetof(struct svm_softc, nptp) & PAGE_MASK) == 0); | CTASSERT((offsetof(struct svm_softc, nptp) & PAGE_MASK) == 0); | ||||
| ▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines | |||||