aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/bhyve/pci_fbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bhyve/pci_fbuf.c')
-rw-r--r--usr.sbin/bhyve/pci_fbuf.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/usr.sbin/bhyve/pci_fbuf.c b/usr.sbin/bhyve/pci_fbuf.c
index 8961875356da..0bd740a0908c 100644
--- a/usr.sbin/bhyve/pci_fbuf.c
+++ b/usr.sbin/bhyve/pci_fbuf.c
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mman.h>
#include <machine/vmm.h>
+#include <machine/vmm_snapshot.h>
#include <vmmapi.h>
#include <stdio.h>
@@ -440,10 +441,26 @@ done:
return (error);
}
+#ifdef BHYVE_SNAPSHOT
+static int
+pci_fbuf_snapshot(struct vm_snapshot_meta *meta)
+{
+ int ret;
+
+ SNAPSHOT_BUF_OR_LEAVE(fbuf_sc->fb_base, FB_SIZE, meta, ret, err);
+
+err:
+ return (ret);
+}
+#endif
+
struct pci_devemu pci_fbuf = {
.pe_emu = "fbuf",
.pe_init = pci_fbuf_init,
.pe_barwrite = pci_fbuf_write,
- .pe_barread = pci_fbuf_read
+ .pe_barread = pci_fbuf_read,
+#ifdef BHYVE_SNAPSHOT
+ .pe_snapshot = pci_fbuf_snapshot,
+#endif
};
PCI_EMUL_SET(pci_fbuf);