Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/vmm_dev.c
Show First 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
#include "vmm_stat.h" | #include "vmm_stat.h" | ||||
#include "vmm_mem.h" | #include "vmm_mem.h" | ||||
#include "io/ppt.h" | #include "io/ppt.h" | ||||
#include "io/vatpic.h" | #include "io/vatpic.h" | ||||
#include "io/vioapic.h" | #include "io/vioapic.h" | ||||
#include "io/vhpet.h" | #include "io/vhpet.h" | ||||
#include "io/vrtc.h" | #include "io/vrtc.h" | ||||
#ifdef COMPAT_FREEBSD13 | |||||
struct vm_stats_old { | |||||
int cpuid; /* in */ | |||||
int num_entries; /* out */ | |||||
struct timeval tv; | |||||
uint64_t statbuf[MAX_VM_STATS]; | |||||
}; | |||||
#define VM_STATS_OLD \ | |||||
_IOWR('v', IOCNUM_VM_STATS, struct vm_stats_old) | |||||
#endif | |||||
struct devmem_softc { | struct devmem_softc { | ||||
int segid; | int segid; | ||||
char *name; | char *name; | ||||
struct cdev *cdev; | struct cdev *cdev; | ||||
struct vmmdev_softc *sc; | struct vmmdev_softc *sc; | ||||
SLIST_ENTRY(devmem_softc) link; | SLIST_ENTRY(devmem_softc) link; | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 291 Lines • ▼ Show 20 Lines | vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t data, int fflag, | ||||
struct vm_isa_irq *isa_irq; | struct vm_isa_irq *isa_irq; | ||||
struct vm_isa_irq_trigger *isa_irq_trigger; | struct vm_isa_irq_trigger *isa_irq_trigger; | ||||
struct vm_capability *vmcap; | struct vm_capability *vmcap; | ||||
struct vm_pptdev *pptdev; | struct vm_pptdev *pptdev; | ||||
struct vm_pptdev_mmio *pptmmio; | struct vm_pptdev_mmio *pptmmio; | ||||
struct vm_pptdev_msi *pptmsi; | struct vm_pptdev_msi *pptmsi; | ||||
struct vm_pptdev_msix *pptmsix; | struct vm_pptdev_msix *pptmsix; | ||||
struct vm_nmi *vmnmi; | struct vm_nmi *vmnmi; | ||||
#ifdef COMPAT_FREEBSD13 | |||||
struct vm_stats_old *vmstats_old; | |||||
#endif | |||||
struct vm_stats *vmstats; | struct vm_stats *vmstats; | ||||
struct vm_stat_desc *statdesc; | struct vm_stat_desc *statdesc; | ||||
struct vm_x2apic *x2apic; | struct vm_x2apic *x2apic; | ||||
struct vm_gpa_pte *gpapte; | struct vm_gpa_pte *gpapte; | ||||
struct vm_suspend *vmsuspend; | struct vm_suspend *vmsuspend; | ||||
struct vm_gla2gpa *gg; | struct vm_gla2gpa *gg; | ||||
struct vm_activate_cpu *vac; | struct vm_activate_cpu *vac; | ||||
struct vm_cpuset *vm_cpuset; | struct vm_cpuset *vm_cpuset; | ||||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | case VM_REINIT: | ||||
error = vm_reinit(sc->vm); | error = vm_reinit(sc->vm); | ||||
break; | break; | ||||
case VM_STAT_DESC: { | case VM_STAT_DESC: { | ||||
statdesc = (struct vm_stat_desc *)data; | statdesc = (struct vm_stat_desc *)data; | ||||
error = vmm_stat_desc_copy(statdesc->index, | error = vmm_stat_desc_copy(statdesc->index, | ||||
statdesc->desc, sizeof(statdesc->desc)); | statdesc->desc, sizeof(statdesc->desc)); | ||||
break; | break; | ||||
} | } | ||||
#ifdef COMPAT_FREEBSD13 | |||||
case VM_STATS_OLD: | |||||
vmstats_old = (struct vm_stats_old *)data; | |||||
getmicrotime(&vmstats_old->tv); | |||||
error = vmm_stat_copy(sc->vm, vmstats_old->cpuid, 0, | |||||
nitems(vmstats_old->statbuf), | |||||
&vmstats_old->num_entries, | |||||
vmstats_old->statbuf); | |||||
break; | |||||
#endif | |||||
case VM_STATS: { | case VM_STATS: { | ||||
CTASSERT(MAX_VM_STATS >= MAX_VMM_STAT_ELEMS); | |||||
vmstats = (struct vm_stats *)data; | vmstats = (struct vm_stats *)data; | ||||
getmicrotime(&vmstats->tv); | getmicrotime(&vmstats->tv); | ||||
error = vmm_stat_copy(sc->vm, vmstats->cpuid, | error = vmm_stat_copy(sc->vm, vmstats->cpuid, vmstats->index, | ||||
nitems(vmstats->statbuf), | |||||
&vmstats->num_entries, vmstats->statbuf); | &vmstats->num_entries, vmstats->statbuf); | ||||
break; | break; | ||||
} | } | ||||
case VM_PPTDEV_MSI: | case VM_PPTDEV_MSI: | ||||
pptmsi = (struct vm_pptdev_msi *)data; | pptmsi = (struct vm_pptdev_msi *)data; | ||||
error = ppt_setup_msi(sc->vm, pptmsi->vcpu, | error = ppt_setup_msi(sc->vm, pptmsi->vcpu, | ||||
pptmsi->bus, pptmsi->slot, pptmsi->func, | pptmsi->bus, pptmsi->slot, pptmsi->func, | ||||
pptmsi->addr, pptmsi->msg, | pptmsi->addr, pptmsi->msg, | ||||
▲ Show 20 Lines • Show All 750 Lines • Show Last 20 Lines |