Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/io/vatpic.c
Show All 36 Lines | |||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <x86/apicreg.h> | #include <x86/apicreg.h> | ||||
#include <dev/ic/i8259.h> | #include <dev/ic/i8259.h> | ||||
#include <machine/vmm.h> | #include <machine/vmm.h> | ||||
#include <machine/vmm_snapshot.h> | |||||
#include "vmm_ktr.h" | #include "vmm_ktr.h" | ||||
#include "vmm_lapic.h" | #include "vmm_lapic.h" | ||||
#include "vioapic.h" | #include "vioapic.h" | ||||
#include "vatpic.h" | #include "vatpic.h" | ||||
static MALLOC_DEFINE(M_VATPIC, "atpic", "bhyve virtual atpic (8259)"); | static MALLOC_DEFINE(M_VATPIC, "atpic", "bhyve virtual atpic (8259)"); | ||||
▲ Show 20 Lines • Show All 749 Lines • ▼ Show 20 Lines | vatpic_init(struct vm *vm) | ||||
return (vatpic); | return (vatpic); | ||||
} | } | ||||
void | void | ||||
vatpic_cleanup(struct vatpic *vatpic) | vatpic_cleanup(struct vatpic *vatpic) | ||||
{ | { | ||||
free(vatpic, M_VATPIC); | free(vatpic, M_VATPIC); | ||||
} | |||||
int | |||||
vatpic_snapshot(struct vatpic *vatpic, struct vm_snapshot_meta *meta) | |||||
{ | |||||
int ret; | |||||
int i; | |||||
struct atpic *atpic; | |||||
for (i = 0; i < nitems(vatpic->atpic); i++) { | |||||
atpic = &vatpic->atpic[i]; | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->ready, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->icw_num, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->rd_cmd_reg, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->aeoi, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->poll, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->rotate, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->sfn, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->irq_base, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->request, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->service, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->mask, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->smm, meta, ret, done); | |||||
SNAPSHOT_BUF_OR_LEAVE(atpic->acnt, sizeof(atpic->acnt), | |||||
meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->lowprio, meta, ret, done); | |||||
SNAPSHOT_VAR_OR_LEAVE(atpic->intr_raised, meta, ret, done); | |||||
} | |||||
SNAPSHOT_BUF_OR_LEAVE(vatpic->elc, sizeof(vatpic->elc), | |||||
meta, ret, done); | |||||
done: | |||||
return (ret); | |||||
} | } |