#include <sys/types.h>
#include <sys/sysmacros.h>
#include "codes.h"
#if defined(__x86)
typedef uint64_t vm_paddr_t;
typedef int64_t vm_ooffset_t;
#include <sys/vmm_dev.h>
const struct ioc vmmctl_ioc[] = {
{ (uint_t)VMM_CREATE_VM, "VMM_CREATE_VM", NULL },
{ (uint_t)VMM_DESTROY_VM, "VMM_DESTROY_VM", NULL },
{ (uint_t)VMM_VM_SUPPORTED, "VMM_VM_SUPPORTED", NULL },
{ (uint_t)VMM_RESV_QUERY, "VMM_RESV_QUERY", NULL },
{ (uint_t)VMM_RESV_SET_TARGET, "VMM_RESV_SET_TARGET", NULL }
};
const struct ioc vmm_cpu_ioc[] = {
{ (uint_t)VM_RUN, "VM_RUN", NULL },
{ (uint_t)VM_SET_REGISTER, "VM_SET_REGISTER", NULL },
{ (uint_t)VM_GET_REGISTER, "VM_GET_REGISTER", NULL },
{ (uint_t)VM_SET_SEGMENT_DESCRIPTOR, "VM_SET_SEGMENT_DESCRIPTOR",
NULL },
{ (uint_t)VM_GET_SEGMENT_DESCRIPTOR, "VM_GET_SEGMENT_DESCRIPTOR",
NULL },
{ (uint_t)VM_SET_REGISTER_SET, "VM_SET_REGISTER_SET", NULL },
{ (uint_t)VM_GET_REGISTER_SET, "VM_GET_REGISTER_SET", NULL },
{ (uint_t)VM_INJECT_EXCEPTION, "VM_INJECT_EXCEPTION", NULL },
{ (uint_t)VM_SET_CAPABILITY, "VM_SET_CAPABILITY", NULL },
{ (uint_t)VM_GET_CAPABILITY, "VM_GET_CAPABILITY", NULL },
{ (uint_t)VM_PPTDEV_MSI, "VM_PPTDEV_MSI", NULL },
{ (uint_t)VM_PPTDEV_MSIX, "VM_PPTDEV_MSIX", NULL },
{ (uint_t)VM_SET_X2APIC_STATE, "VM_SET_X2APIC_STATE", NULL },
{ (uint_t)VM_GLA2GPA, "VM_GLA2GPA", NULL },
{ (uint_t)VM_GLA2GPA_NOFAULT, "VM_GLA2GPA_NOFAULT", NULL },
{ (uint_t)VM_ACTIVATE_CPU, "VM_ACTIVATE_CPU", NULL },
{ (uint_t)VM_SET_INTINFO, "VM_SET_INTINFO", NULL },
{ (uint_t)VM_GET_INTINFO, "VM_GET_INTINFO", NULL },
{ (uint_t)VM_RESTART_INSTRUCTION, "VM_RESTART_INSTRUCTION",
NULL },
{ (uint_t)VM_SET_KERNEMU_DEV, "VM_SET_KERNEMU_DEV", NULL },
{ (uint_t)VM_GET_KERNEMU_DEV, "VM_GET_KERNEMU_DEV", NULL },
{ (uint_t)VM_RESET_CPU, "VM_RESET_CPU", NULL },
{ (uint_t)VM_GET_RUN_STATE, "VM_GET_RUN_STATE", NULL },
{ (uint_t)VM_SET_RUN_STATE, "VM_SET_RUN_STATE", NULL },
{ (uint_t)VM_GET_FPU, "VM_GET_FPU", NULL },
{ (uint_t)VM_SET_FPU, "VM_SET_FPU", NULL },
{ (uint_t)VM_GET_CPUID, "VM_GET_CPUID", NULL },
{ (uint_t)VM_SET_CPUID, "VM_SET_CPUID", NULL },
{ (uint_t)VM_LEGACY_CPUID, "VM_LEGACY_CPUID", NULL }
};
const struct ioc vmm_lock_ioc[] = {
{ (uint_t)VM_REINIT, "VM_REINIT", NULL },
{ (uint_t)VM_BIND_PPTDEV, "VM_BIND_PPTDEV", NULL },
{ (uint_t)VM_UNBIND_PPTDEV, "VM_UNBIND_PPTDEV", NULL },
{ (uint_t)VM_MAP_PPTDEV_MMIO, "VM_MAP_PPTDEV_MMIO", NULL },
{ (uint_t)VM_ALLOC_MEMSEG, "VM_ALLOC_MEMSEG", NULL },
{ (uint_t)VM_MMAP_MEMSEG, "VM_MMAP_MEMSEG", NULL },
{ (uint_t)VM_PMTMR_LOCATE, "VM_PMTMR_LOCATE", NULL },
{ (uint_t)VM_MUNMAP_MEMSEG, "VM_MUNMAP_MEMSEG", NULL },
{ (uint_t)VM_UNMAP_PPTDEV_MMIO, "VM_UNMAP_PPTDEV_MMIO", NULL },
{ (uint_t)VM_PAUSE, "VM_PAUSE", NULL },
{ (uint_t)VM_RESUME, "VM_RESUME", NULL },
{ (uint_t)VM_WRLOCK_CYCLE, "VM_WRLOCK_CYCLE", NULL }
};
const struct ioc vmm_ioc[] = {
{ (uint_t)VM_GET_GPA_PMAP, "VM_GET_GPA_PMAP", NULL },
{ (uint_t)VM_GET_MEMSEG, "VM_GET_MEMSEG", NULL },
{ (uint_t)VM_MMAP_GETNEXT, "VM_MMAP_GETNEXT", NULL },
{ (uint_t)VM_LAPIC_IRQ, "VM_LAPIC_IRQ", NULL },
{ (uint_t)VM_LAPIC_LOCAL_IRQ, "VM_LAPIC_LOCAL_IRQ", NULL },
{ (uint_t)VM_LAPIC_MSI, "VM_LAPIC_MSI", NULL },
{ (uint_t)VM_IOAPIC_ASSERT_IRQ, "VM_IOAPIC_ASSERT_IRQ", NULL },
{ (uint_t)VM_IOAPIC_DEASSERT_IRQ, "VM_IOAPIC_DEASSERT_IRQ",
NULL },
{ (uint_t)VM_IOAPIC_PULSE_IRQ, "VM_IOAPIC_PULSE_IRQ", NULL },
{ (uint_t)VM_ISA_ASSERT_IRQ, "VM_ISA_ASSERT_IRQ", NULL },
{ (uint_t)VM_ISA_DEASSERT_IRQ, "VM_ISA_DEASSERT_IRQ", NULL },
{ (uint_t)VM_ISA_PULSE_IRQ, "VM_ISA_PULSE_IRQ", NULL },
{ (uint_t)VM_ISA_SET_IRQ_TRIGGER, "VM_ISA_SET_IRQ_TRIGGER",
NULL },
{ (uint_t)VM_RTC_WRITE, "VM_RTC_WRITE", NULL },
{ (uint_t)VM_RTC_READ, "VM_RTC_READ", NULL },
{ (uint_t)VM_RTC_SETTIME, "VM_RTC_SETTIME", NULL },
{ (uint_t)VM_RTC_GETTIME, "VM_RTC_GETTIME", NULL },
{ (uint_t)VM_SUSPEND, "VM_SUSPEND", NULL },
{ (uint_t)VM_IOAPIC_PINCOUNT, "VM_IOAPIC_PINCOUNT", NULL },
{ (uint_t)VM_GET_PPTDEV_LIMITS, "VM_GET_PPTDEV_LIMITS", NULL },
{ (uint_t)VM_GET_HPET_CAPABILITIES, "VM_GET_HPET_CAPABILITIES",
NULL },
{ (uint_t)VM_STATS_IOC, "VM_STATS_IOC", NULL },
{ (uint_t)VM_STAT_DESC, "VM_STAT_DESC", NULL },
{ (uint_t)VM_INJECT_NMI, "VM_INJECT_NMI", NULL },
{ (uint_t)VM_GET_X2APIC_STATE, "VM_GET_X2APIC_STATE", NULL },
{ (uint_t)VM_SET_TOPOLOGY, "VM_SET_TOPOLOGY", NULL },
{ (uint_t)VM_GET_TOPOLOGY, "VM_GET_TOPOLOGY", NULL },
{ (uint_t)VM_GET_CPUS, "VM_GET_CPUS", NULL },
{ (uint_t)VM_SUSPEND_CPU, "VM_SUSPEND_CPU", NULL },
{ (uint_t)VM_RESUME_CPU, "VM_RESUME_CPU", NULL },
{ (uint_t)VM_PPTDEV_DISABLE_MSIX, "VM_PPTDEV_DISABLE_MSIX",
NULL },
{ (uint_t)VM_TRACK_DIRTY_PAGES, "VM_TRACK_DIRTY_PAGES", NULL },
{ (uint_t)VM_DESC_FPU_AREA, "VM_DESC_FPU_AREA", NULL },
{ (uint_t)VM_DATA_READ, "VM_DATA_READ", NULL },
{ (uint_t)VM_DATA_WRITE, "VM_DATA_WRITE", NULL },
{ (uint_t)VM_SET_AUTODESTRUCT, "VM_SET_AUTODESTRUCT", NULL },
{ (uint_t)VM_DESTROY_SELF, "VM_DESTROY_SELF", NULL },
{ (uint_t)VM_DESTROY_PENDING, "VM_DESTROY_PENDING", NULL },
{ (uint_t)VM_VCPU_BARRIER, "VM_VCPU_BARRIER", NULL },
{ (uint_t)VM_DEVMEM_GETOFFSET, "VM_DEVMEM_GETOFFSET", NULL }
};
const struct iocs vmm_iocs[] = {
{ .nitems = ARRAY_SIZE(vmmctl_ioc), .data = vmmctl_ioc },
{ .nitems = ARRAY_SIZE(vmm_cpu_ioc), .data = vmm_cpu_ioc },
{ .nitems = ARRAY_SIZE(vmm_lock_ioc), .data = vmm_lock_ioc },
{ .nitems = ARRAY_SIZE(vmm_ioc), .data = vmm_ioc },
{ .nitems = 0, .data = NULL }
};
#else
const struct iocs vmm_iocs[] = {
{ .nitems = 0, .data = NULL }
};
#endif