Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/amd/svm.c
Show First 20 Lines • Show All 2,416 Lines • ▼ Show 20 Lines | |||||
#ifdef BHYVE_SNAPSHOT | #ifdef BHYVE_SNAPSHOT | ||||
static int | static int | ||||
svm_snapshot(void *arg, struct vm_snapshot_meta *meta) | svm_snapshot(void *arg, struct vm_snapshot_meta *meta) | ||||
{ | { | ||||
/* struct svm_softc is AMD's representation for SVM softc */ | /* struct svm_softc is AMD's representation for SVM softc */ | ||||
struct svm_softc *sc; | struct svm_softc *sc; | ||||
struct svm_vcpu *vcpu; | struct svm_vcpu *vcpu; | ||||
int i; | |||||
int ret; | int ret; | ||||
uint16_t i, maxcpus; | |||||
sc = arg; | sc = arg; | ||||
KASSERT(sc != NULL, ("%s: arg was NULL", __func__)); | KASSERT(sc != NULL, ("%s: arg was NULL", __func__)); | ||||
for (i = 0; i < VM_MAXCPU; i++) { | maxcpus = vm_get_maxcpus(sc->vm); | ||||
for (i = 0; i < maxcpus; i++) { | |||||
vcpu = &sc->vcpu[i]; | vcpu = &sc->vcpu[i]; | ||||
/* Snapshot swctx for virtual cpu i */ | /* Snapshot swctx for virtual cpu i */ | ||||
SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rbp, meta, ret, done); | SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rbp, meta, ret, done); | ||||
SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rbx, meta, ret, done); | SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rbx, meta, ret, done); | ||||
SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rcx, meta, ret, done); | SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rcx, meta, ret, done); | ||||
SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rdx, meta, ret, done); | SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rdx, meta, ret, done); | ||||
SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rdi, meta, ret, done); | SNAPSHOT_VAR_OR_LEAVE(vcpu->swctx.sctx_rdi, meta, ret, done); | ||||
▲ Show 20 Lines • Show All 244 Lines • Show Last 20 Lines |