# Copyright 2015 syzkaller project authors. All rights reserved. # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. meta arches["386", "amd64", "arm64", "mips64le", "ppc64le", "s390x"] include include include include resource fd_kvm[fd] resource fd_kvmvm[fd] resource fd_kvmcpu[fd] resource fd_kvmdev[fd] resource fd_sgx_provision[fd] resource fd_kvm_guest_memfd[fd] resource vcpu_mmap_size[int64] openat$kvm(fd const[AT_FDCWD], file ptr[in, string["/dev/kvm"]], flags flags[open_flags], mode const[0]) fd_kvm openat$sgx_provision(fd const[AT_FDCWD], file ptr[in, string["/dev/sgx_provision"]], flags flags[open_flags], mode const[0]) fd_sgx_provision ioctl$KVM_CREATE_VM(fd fd_kvm, cmd const[KVM_CREATE_VM], type const[0]) fd_kvmvm ioctl$KVM_GET_MSR_INDEX_LIST(fd fd_kvm, cmd const[KVM_GET_MSR_INDEX_LIST], arg ptr[in, kvm_msr_list]) ioctl$KVM_CHECK_EXTENSION(fd fd_kvm, cmd const[KVM_CHECK_EXTENSION], arg intptr) ioctl$KVM_GET_VCPU_MMAP_SIZE(fd fd_kvm, cmd const[KVM_GET_VCPU_MMAP_SIZE]) vcpu_mmap_size ioctl$KVM_GET_SUPPORTED_CPUID(fd fd_kvm, cmd const[KVM_GET_SUPPORTED_CPUID], arg buffer[out]) ioctl$KVM_GET_EMULATED_CPUID(fd fd_kvmvm, cmd const[KVM_GET_EMULATED_CPUID], arg buffer[out]) ioctl$KVM_X86_GET_MCE_CAP_SUPPORTED(fd fd_kvmvm, cmd const[KVM_X86_GET_MCE_CAP_SUPPORTED], arg buffer[out]) ioctl$KVM_GET_API_VERSION(fd fd_kvm, cmd const[KVM_GET_API_VERSION], type const[0]) ioctl$KVM_CREATE_VCPU(fd fd_kvmvm, cmd const[KVM_CREATE_VCPU], id intptr[0:2]) fd_kvmcpu ioctl$KVM_CHECK_EXTENSION_VM(fd fd_kvmvm, cmd const[KVM_CHECK_EXTENSION], arg intptr) ioctl$KVM_GET_DIRTY_LOG(fd fd_kvmvm, cmd const[KVM_GET_DIRTY_LOG], arg ptr[in, kvm_dirty_log]) ioctl$KVM_CLEAR_DIRTY_LOG(fd fd_kvmvm, cmd const[KVM_CLEAR_DIRTY_LOG], arg ptr[in, kvm_clear_dirty_log]) ioctl$KVM_RESET_DIRTY_RINGS(fd fd_kvmvm, cmd const[KVM_RESET_DIRTY_RINGS]) ioctl$KVM_CREATE_IRQCHIP(fd fd_kvmvm, cmd const[KVM_CREATE_IRQCHIP]) ioctl$KVM_IRQ_LINE(fd fd_kvmvm, cmd const[KVM_IRQ_LINE], arg ptr[in, kvm_irq_level]) ioctl$KVM_IRQ_LINE_STATUS(fd fd_kvmvm, cmd const[KVM_IRQ_LINE_STATUS], arg ptr[inout, kvm_irq_level]) ioctl$KVM_GET_IRQCHIP(fd fd_kvmvm, cmd const[KVM_GET_IRQCHIP], arg ptr[out, kvm_irqchip]) ioctl$KVM_SET_IRQCHIP(fd fd_kvmvm, cmd const[KVM_SET_IRQCHIP], arg ptr[in, kvm_irqchip]) ioctl$KVM_XEN_HVM_CONFIG(fd fd_kvmvm, cmd const[KVM_XEN_HVM_CONFIG], arg ptr[in, kvm_xen_hvm_config]) ioctl$KVM_GET_CLOCK(fd fd_kvmvm, cmd const[KVM_GET_CLOCK], arg ptr[out, kvm_clock_data]) ioctl$KVM_SET_CLOCK(fd fd_kvmvm, cmd const[KVM_SET_CLOCK], arg ptr[in, kvm_clock_data]) ioctl$KVM_SET_USER_MEMORY_REGION(fd fd_kvmvm, cmd const[KVM_SET_USER_MEMORY_REGION], arg ptr[in, kvm_userspace_memory_region]) ioctl$KVM_SET_USER_MEMORY_REGION2(fd fd_kvmvm, cmd const[KVM_SET_USER_MEMORY_REGION2], arg ptr[in, kvm_userspace_memory_region2]) ioctl$KVM_SET_TSS_ADDR(fd fd_kvmvm, cmd const[KVM_SET_TSS_ADDR], arg flags[kvm_x86_tss_addr]) ioctl$KVM_SET_IDENTITY_MAP_ADDR(fd fd_kvmvm, cmd const[KVM_SET_IDENTITY_MAP_ADDR], arg ptr[in, flags[kvm_guest_addrs, int64]]) ioctl$KVM_SET_BOOT_CPU_ID(fd fd_kvmvm, cmd const[KVM_SET_BOOT_CPU_ID], arg ptr[in, intptr[0:2]]) ioctl$KVM_PPC_GET_PVINFO(fd fd_kvmvm, cmd const[KVM_PPC_GET_PVINFO], arg buffer[out]) ioctl$KVM_SET_GSI_ROUTING(fd fd_kvmvm, cmd const[KVM_SET_GSI_ROUTING], arg ptr[in, kvm_irq_routing]) ioctl$KVM_ASSIGN_SET_MSIX_NR(fd fd_kvmvm, cmd const[KVM_ASSIGN_SET_MSIX_NR], arg ptr[in, kvm_assigned_msix_nr]) ioctl$KVM_ASSIGN_SET_MSIX_ENTRY(fd fd_kvmvm, cmd const[KVM_ASSIGN_SET_MSIX_ENTRY], arg ptr[in, kvm_assigned_msix_entry]) ioctl$KVM_IOEVENTFD(fd fd_kvmvm, cmd const[KVM_IOEVENTFD], arg ptr[in, kvm_ioeventfd]) ioctl$KVM_SIGNAL_MSI(fd fd_kvmvm, cmd const[KVM_SIGNAL_MSI], arg ptr[in, kvm_msi]) ioctl$KVM_CREATE_PIT2(fd fd_kvmvm, cmd const[KVM_CREATE_PIT2], arg ptr[in, kvm_pit_config]) ioctl$KVM_GET_PIT(fd fd_kvmvm, cmd const[KVM_GET_PIT], arg ptr[out, kvm_pit_state2]) ioctl$KVM_SET_PIT(fd fd_kvmvm, cmd const[KVM_SET_PIT], arg ptr[in, kvm_pit_state2]) ioctl$KVM_GET_PIT2(fd fd_kvmvm, cmd const[KVM_GET_PIT2], arg ptr[out, kvm_pit_state2]) ioctl$KVM_SET_PIT2(fd fd_kvmvm, cmd const[KVM_SET_PIT2], arg ptr[in, kvm_pit_state2]) ioctl$KVM_PPC_GET_SMMU_INFO(fd fd_kvmvm, cmd const[KVM_PPC_GET_SMMU_INFO], arg buffer[out]) ioctl$KVM_IRQFD(fd fd_kvmvm, cmd const[KVM_IRQFD], arg ptr[in, kvm_irqfd]) ioctl$KVM_PPC_ALLOCATE_HTAB(fd fd_kvmvm, cmd const[KVM_PPC_ALLOCATE_HTAB], arg ptr[in, int32]) ioctl$KVM_CREATE_DEVICE(fd fd_kvmvm, cmd const[KVM_CREATE_DEVICE], arg ptr[inout, kvm_create_device]) ioctl$KVM_REGISTER_COALESCED_MMIO(fd fd_kvmvm, cmd const[KVM_REGISTER_COALESCED_MMIO], arg ptr[in, kvm_coalesced_mmio_zone]) ioctl$KVM_UNREGISTER_COALESCED_MMIO(fd fd_kvmvm, cmd const[KVM_UNREGISTER_COALESCED_MMIO], arg ptr[in, kvm_coalesced_mmio_zone]) ioctl$KVM_SET_NR_MMU_PAGES(fd fd_kvmvm, cmd const[KVM_SET_NR_MMU_PAGES], arg intptr) ioctl$KVM_GET_NR_MMU_PAGES(fd fd_kvmvm, cmd const[KVM_GET_NR_MMU_PAGES], arg intptr) ioctl$KVM_REINJECT_CONTROL(fd fd_kvmvm, cmd const[KVM_REINJECT_CONTROL], arg ptr[in, kvm_reinject_control]) ioctl$KVM_HYPERV_EVENTFD(fd fd_kvmvm, cmd const[KVM_HYPERV_EVENTFD], arg ptr[in, kvm_hyperv_eventfd]) ioctl$KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2, flags[kvm_dirty_log_protect, int64]]]) ioctl$KVM_CAP_HALT_POLL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HALT_POLL, int64]]) ioctl$KVM_CAP_DIRTY_LOG_RING(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DIRTY_LOG_RING, flags[kvm_dirty_log_sizes, int64]]]) ioctl$KVM_CAP_DIRTY_LOG_RING_ACQ_REL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DIRTY_LOG_RING_ACQ_REL, flags[kvm_dirty_log_sizes, int64]]]) # NEED: arch constraints for syscalls. These are amd64/386-specific, but consts are present on all arches, so they are not disabled on other arches. ioctl$KVM_CAP_DISABLE_QUIRKS(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DISABLE_QUIRKS, flags[kvm_x86_quirks, int64]]]) ioctl$KVM_CAP_DISABLE_QUIRKS2(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DISABLE_QUIRKS2, flags[kvm_x86_quirks, int64]]]) ioctl$KVM_CAP_SPLIT_IRQCHIP(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_SPLIT_IRQCHIP, int64[0:KVM_MAX_IRQ_ROUTES]]]) ioctl$KVM_CAP_X2APIC_API(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X2APIC_API, flags[kvm_x2apic_apis, int64]]]) ioctl$KVM_CAP_X86_DISABLE_EXITS(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_DISABLE_EXITS, flags[kvm_x86_exits, int64]]]) ioctl$KVM_CAP_MSR_PLATFORM_INFO(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_MSR_PLATFORM_INFO, bool64]]) ioctl$KVM_CAP_EXCEPTION_PAYLOAD(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_EXCEPTION_PAYLOAD, bool64]]) ioctl$KVM_CAP_X86_USER_SPACE_MSR(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_USER_SPACE_MSR, flags[kvm_msr_exit_reasons, int64]]]) ioctl$KVM_CAP_X86_BUS_LOCK_EXIT(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_BUS_LOCK_EXIT, flags[kvm_bus_lock_exits, int64]]]) ioctl$KVM_CAP_SGX_ATTRIBUTE(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_SGX_ATTRIBUTE, fd_sgx_provision]]) ioctl$KVM_CAP_VM_COPY_ENC_CONTEXT_FROM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_VM_COPY_ENC_CONTEXT_FROM, fd_kvmvm]]) ioctl$KVM_CAP_EXIT_HYPERCALL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_EXIT_HYPERCALL, flags[kvm_hypercall_exits, int64]]]) ioctl$KVM_CAP_EXIT_ON_EMULATION_FAILURE(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_EXIT_ON_EMULATION_FAILURE, bool64]]) ioctl$KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM, fd_kvmvm]]) ioctl$KVM_CAP_MEMORY_FAULT_INFO(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_MEMORY_FAULT_INFO, void]]) ioctl$KVM_CAP_X86_GUEST_MODE(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_GUEST_MODE, void]]) ioctl$KVM_CAP_HYPERV_VP_INDEX(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_VP_INDEX, void]]) ioctl$KVM_CAP_HYPERV_TLBFLUSH(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_TLBFLUSH, void]]) ioctl$KVM_CAP_HYPERV_SEND_IPI(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_SEND_IPI, void]]) ioctl$KVM_CAP_STEAL_TIME(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_STEAL_TIME, void]]) ioctl$KVM_CAP_XEN_HVM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_XEN_HVM, flags[kvm_xen_hvm_configs, int64]]]) ioctl$KVM_CAP_VM_DISABLE_NX_HUGE_PAGES(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_VM_DISABLE_NX_HUGE_PAGES, const[0, int64]]]) ioctl$KVM_CAP_VM_TYPES(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_VM_TYPES, flags[kvm_x86_vm_types, int64]]]) # TODO: need more precise handling for arguments below ioctl$KVM_CAP_MAX_VCPU_ID(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_MAX_VCPU_ID, int64]]) ioctl$KVM_CAP_X86_NOTIFY_VMEXIT(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_NOTIFY_VMEXIT, int64]]) ioctl$KVM_CAP_X86_APIC_BUS_CYCLES_NS(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_X86_APIC_BUS_CYCLES_NS, int64]]) ioctl$KVM_CAP_PMU_CAPABILITY(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_PMU_CAPABILITY, int64]]) ioctl$KVM_CAP_PTP_KVM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_PTP_KVM, void]]) ioctl$KVM_RUN(fd fd_kvmcpu, cmd const[KVM_RUN], arg const[0]) ioctl$KVM_GET_REGS(fd fd_kvmcpu, cmd const[KVM_GET_REGS], arg ptr[out, kvm_regs]) ioctl$KVM_SET_REGS(fd fd_kvmcpu, cmd const[KVM_SET_REGS], arg ptr[in, kvm_regs]) ioctl$KVM_GET_SREGS(fd fd_kvmcpu, cmd const[KVM_GET_SREGS], arg ptr[out, kvm_sregs]) ioctl$KVM_SET_SREGS(fd fd_kvmcpu, cmd const[KVM_SET_SREGS], arg ptr[in, kvm_sregs]) ioctl$KVM_TRANSLATE(fd fd_kvmcpu, cmd const[KVM_TRANSLATE], arg ptr[in, kvm_translation]) ioctl$KVM_INTERRUPT(fd fd_kvmcpu, cmd const[KVM_INTERRUPT], arg ptr[in, int32]) ioctl$KVM_GET_MSRS(fd fd_kvmcpu, cmd const[KVM_GET_MSRS], arg ptr[out, kvm_msrs]) ioctl$KVM_SET_MSRS(fd fd_kvmcpu, cmd const[KVM_SET_MSRS], arg ptr[in, kvm_msrs]) ioctl$KVM_SET_CPUID(fd fd_kvmcpu, cmd const[KVM_SET_CPUID], arg ptr[in, kvm_cpuid]) # NEED: we should be able to read kvm_cpuid2 with KVM_GET_CPUID2, alter few bits and then call KVM_SET_CPUID2 with that object. ioctl$KVM_GET_CPUID2(fd fd_kvmcpu, cmd const[KVM_GET_CPUID2], arg ptr[out, kvm_cpuid2]) ioctl$KVM_SET_CPUID2(fd fd_kvmcpu, cmd const[KVM_SET_CPUID2], arg ptr[in, kvm_cpuid2]) ioctl$KVM_SET_SIGNAL_MASK(fd fd_kvmcpu, cmd const[KVM_SET_SIGNAL_MASK], arg ptr[in, kvm_signal_mask]) ioctl$KVM_GET_FPU(fd fd_kvmcpu, cmd const[KVM_GET_FPU], arg ptr[out, kvm_fpu]) ioctl$KVM_SET_FPU(fd fd_kvmcpu, cmd const[KVM_SET_FPU], arg ptr[in, kvm_fpu]) ioctl$KVM_GET_VCPU_EVENTS(fd fd_kvmcpu, cmd const[KVM_GET_VCPU_EVENTS], arg ptr[out, kvm_vcpu_events]) ioctl$KVM_SET_VCPU_EVENTS(fd fd_kvmcpu, cmd const[KVM_SET_VCPU_EVENTS], arg ptr[in, kvm_vcpu_events]) ioctl$KVM_GET_DEBUGREGS(fd fd_kvmcpu, cmd const[KVM_GET_DEBUGREGS], arg ptr[out, kvm_debugregs]) ioctl$KVM_SET_DEBUGREGS(fd fd_kvmcpu, cmd const[KVM_SET_DEBUGREGS], arg ptr[in, kvm_debugregs]) ioctl$KVM_GET_MP_STATE(fd fd_kvmcpu, cmd const[KVM_GET_MP_STATE], arg ptr[out, int32]) ioctl$KVM_SET_MP_STATE(fd fd_kvmcpu, cmd const[KVM_SET_MP_STATE], arg ptr[in, flags[kvm_mp_state, int32]]) ioctl$KVM_GET_XSAVE(fd fd_kvmcpu, cmd const[KVM_GET_XSAVE], arg ptr[out, kvm_xsave]) ioctl$KVM_SET_XSAVE(fd fd_kvmcpu, cmd const[KVM_SET_XSAVE], arg ptr[in, kvm_xsave]) ioctl$KVM_GET_XCRS(fd fd_kvmcpu, cmd const[KVM_GET_XCRS], arg ptr[in, kvm_xcrs]) ioctl$KVM_SET_XCRS(fd fd_kvmcpu, cmd const[KVM_SET_XCRS], arg ptr[in, kvm_xcrs]) ioctl$KVM_SET_TSC_KHZ(fd fd_kvmcpu, cmd const[KVM_SET_TSC_KHZ], arg intptr) ioctl$KVM_GET_TSC_KHZ(fd fd_kvmcpu, cmd const[KVM_GET_TSC_KHZ]) ioctl$KVM_GET_LAPIC(fd fd_kvmcpu, cmd const[KVM_GET_LAPIC], arg ptr[in, kvm_lapic_state]) ioctl$KVM_SET_LAPIC(fd fd_kvmcpu, cmd const[KVM_SET_LAPIC], arg ptr[in, kvm_lapic_state]) ioctl$KVM_DIRTY_TLB(fd fd_kvmcpu, cmd const[KVM_DIRTY_TLB], arg ptr[in, kvm_dirty_tlb]) ioctl$KVM_NMI(fd fd_kvmcpu, cmd const[KVM_NMI]) # NEED: arch constraints for syscalls. These are s390-specific, but consts are present on all arches, so they are not disabled on other arches. ioctl$KVM_S390_UCAS_MAP(fd fd_kvmcpu, cmd const[KVM_S390_UCAS_MAP], arg ptr[in, kvm_s390_ucas_mapping]) ioctl$KVM_S390_UCAS_UNMAP(fd fd_kvmcpu, cmd const[KVM_S390_UCAS_UNMAP], arg ptr[in, kvm_s390_ucas_mapping]) ioctl$KVM_S390_VCPU_FAULT(fd fd_kvmcpu, cmd const[KVM_S390_VCPU_FAULT], arg ptr[in, int64]) ioctl$KVM_SET_ONE_REG(fd fd_kvmcpu, cmd const[KVM_SET_ONE_REG], arg ptr[in, kvm_one_reg]) ioctl$KVM_GET_ONE_REG(fd fd_kvmcpu, cmd const[KVM_GET_ONE_REG], arg ptr[in, kvm_one_reg]) ioctl$KVM_KVMCLOCK_CTRL(fd fd_kvmcpu, cmd const[KVM_KVMCLOCK_CTRL]) ioctl$KVM_S390_INTERRUPT_CPU(fd fd_kvmcpu, cmd const[KVM_S390_INTERRUPT], arg ptr[in, kvm_s390_interrupt]) ioctl$KVM_GET_REG_LIST(fd fd_kvmcpu, cmd const[KVM_GET_REG_LIST], arg ptr[in, kvm_reg_list]) ioctl$KVM_SET_GUEST_DEBUG(fd fd_kvmcpu, cmd const[KVM_SET_GUEST_DEBUG], arg ptr[in, kvm_guest_debug]) ioctl$KVM_SMI(fd fd_kvmcpu, cmd const[KVM_SMI]) ioctl$KVM_TPR_ACCESS_REPORTING(fd fd_kvmcpu, cmd const[KVM_TPR_ACCESS_REPORTING], arg ptr[in, kvm_tpr_access_ctl]) ioctl$KVM_SET_VAPIC_ADDR(fd fd_kvmcpu, cmd const[KVM_SET_VAPIC_ADDR], arg ptr[in, flags[kvm_guest_addrs, int64]]) ioctl$KVM_X86_SETUP_MCE(fd fd_kvmcpu, cmd const[KVM_X86_SETUP_MCE], arg ptr[in, kvm_mce_cap]) ioctl$KVM_X86_SET_MCE(fd fd_kvmcpu, cmd const[KVM_X86_SET_MCE], arg ptr[in, kvm_x86_mce]) ioctl$KVM_GET_NESTED_STATE(fd fd_kvmcpu, cmd const[KVM_GET_NESTED_STATE], arg ptr[out, kvm_nested_state_arg]) ioctl$KVM_SET_NESTED_STATE(fd fd_kvmcpu, cmd const[KVM_SET_NESTED_STATE], arg ptr[in, kvm_nested_state_arg]) # NEED: arch constraints for syscalls. These are amd64/386-specific, but consts are present on all arches, so they are not disabled on other arches. ioctl$KVM_CAP_HYPERV_SYNIC(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_SYNIC, void]]) ioctl$KVM_CAP_HYPERV_SYNIC2(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_SYNIC2, const[0, int64]]]) ioctl$KVM_CAP_HYPERV_ENLIGHTENED_VMCS(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_ENLIGHTENED_VMCS, ptr[out, int16]]]) ioctl$KVM_CAP_HYPERV_DIRECT_TLBFLUSH(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_DIRECT_TLBFLUSH, void]]) ioctl$KVM_CAP_HYPERV_ENFORCE_CPUID(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HYPERV_ENFORCE_CPUID, bool64]]) ioctl$KVM_CAP_ENFORCE_PV_FEATURE_CPUID(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_ENFORCE_PV_FEATURE_CPUID, bool64]]) ioctl$KVM_CAP_SYNC_REGS(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_SYNC_REGS, void]]) ioctl$KVM_SET_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) ioctl$KVM_GET_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) ioctl$KVM_HAS_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) # From https://docs.kernel.org/virt/kvm/devices/vcpu.html: # The virtual cpu “device” also accepts the ioctls KVM_SET_DEVICE_ATTR, KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. # The interface uses the same struct kvm_device_attr as other devices, but targets VCPU-wide settings and controls. ioctl$KVM_SET_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) ioctl$KVM_GET_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) ioctl$KVM_HAS_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) # From https://docs.kernel.org/virt/kvm/devices/vm.html: # The virtual machine “device” also accepts the ioctls KVM_SET_DEVICE_ATTR, KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. # The interface uses the same struct kvm_device_attr as other devices, but targets VM-wide settings and controls. ioctl$KVM_SET_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) ioctl$KVM_GET_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) ioctl$KVM_HAS_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) ioctl$KVM_SET_MEMORY_ATTRIBUTES(fd fd_kvmvm, cmd const[KVM_SET_MEMORY_ATTRIBUTES], arg ptr[in, kvm_memory_attributes]) ioctl$KVM_CREATE_GUEST_MEMFD(fd fd_kvmvm, cmd const[KVM_CREATE_GUEST_MEMFD], arg ptr[in, kvm_create_guest_memfd]) fd_kvm_guest_memfd ioctl$KVM_PRE_FAULT_MEMORY(fd fd_kvmcpu, cmd const[KVM_PRE_FAULT_MEMORY], arg ptr[inout, kvm_pre_fault_memory]) ioctl$KVM_GET_XSAVE2(fd fd_kvmcpu, cmd const[KVM_GET_XSAVE2], arg vma) kvm_mem_region_flags = KVM_MEM_LOG_DIRTY_PAGES, KVM_MEM_READONLY, KVM_MEM_GUEST_MEMFD kvm_mp_state = KVM_MP_STATE_RUNNABLE, KVM_MP_STATE_UNINITIALIZED, KVM_MP_STATE_INIT_RECEIVED, KVM_MP_STATE_HALTED, KVM_MP_STATE_SIPI_RECEIVED, KVM_MP_STATE_STOPPED, KVM_MP_STATE_CHECK_STOP, KVM_MP_STATE_OPERATING, KVM_MP_STATE_LOAD kvm_irq_routing_entry_type = KVM_IRQ_ROUTING_IRQCHIP, KVM_IRQ_ROUTING_MSI, KVM_IRQ_ROUTING_S390_ADAPTER, KVM_IRQ_ROUTING_HV_SINT, KVM_IRQ_ROUTING_XEN_EVTCHN kvm_ioeventfd_flags = KVM_IOEVENTFD_FLAG_DATAMATCH, KVM_IOEVENTFD_FLAG_PIO, KVM_IOEVENTFD_FLAG_DEASSIGN, KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY kvm_ioeventfd_len = 0, 1, 2, 4, 8 kvm_device_type = KVM_DEV_TYPE_FSL_MPIC_20, KVM_DEV_TYPE_FSL_MPIC_42, KVM_DEV_TYPE_XICS, KVM_DEV_TYPE_VFIO, KVM_DEV_TYPE_ARM_VGIC_V2, KVM_DEV_TYPE_FLIC, KVM_DEV_TYPE_ARM_VGIC_V3, KVM_DEV_TYPE_ARM_VGIC_ITS, KVM_DEV_TYPE_XIVE, KVM_DEV_TYPE_ARM_PV_TIME, KVM_DEV_TYPE_RISCV_AIA kvm_device_flags = 0, KVM_CREATE_DEVICE_TEST kvm_guest_debug_flags = KVM_GUESTDBG_ENABLE, KVM_GUESTDBG_SINGLESTEP, KVM_GUESTDBG_USE_SW_BP, KVM_GUESTDBG_USE_HW_BP, KVM_GUESTDBG_INJECT_DB, KVM_GUESTDBG_INJECT_BP, KVM_GUESTDBG_EXIT_PENDING, KVM_GUESTDBG_BLOCKIRQ kvm_chip_id = KVM_IRQCHIP_PIC_MASTER, KVM_IRQCHIP_PIC_SLAVE, KVM_IRQCHIP_IOAPIC kvm_cpu_function = 0, 1, 2, 4, 6, 7, 10, 11, 13, KVM_CPUID_SIGNATURE, KVM_CPUID_FEATURES, 0x80000000, 0x80000001, 0x80000007, 0x80000008, 0x80000019, 0xc0000000, 0xc0000001 kvm_guest_selector = 0, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16 kvm_mce_flags = 1, 2, 4 kvm_mcg_status = MCG_STATUS_RIPV, MCG_STATUS_EIPV, MCG_STATUS_MCIP, MCG_STATUS_LMCES kvm_mce_status = MCI_STATUS_VAL, MCI_STATUS_OVER, MCI_STATUS_UC, MCI_STATUS_EN, MCI_STATUS_MISCV, MCI_STATUS_ADDRV, MCI_STATUS_PCC, MCI_STATUS_S, MCI_STATUS_AR kvm_cpuid_flags = KVM_CPUID_FLAG_SIGNIFCANT_INDEX, KVM_CPUID_FLAG_STATEFUL_FUNC, KVM_CPUID_FLAG_STATE_READ_NEXT kvm_dirty_log_protect = KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE, KVM_DIRTY_LOG_INITIALLY_SET kvm_dirty_log_sizes = 4096, 8192, 16384, 32768, 65536 kvm_x86_quirks = KVM_X86_QUIRK_LINT0_REENABLED, KVM_X86_QUIRK_CD_NW_CLEARED, KVM_X86_QUIRK_LAPIC_MMIO_HOLE, KVM_X86_QUIRK_OUT_7E_INC_RIP, KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT, KVM_X86_QUIRK_FIX_HYPERCALL_INSN, KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS kvm_x2apic_apis = KVM_X2APIC_API_USE_32BIT_IDS, KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK kvm_x86_exits = KVM_X86_DISABLE_EXITS_MWAIT, KVM_X86_DISABLE_EXITS_HLT, KVM_X86_DISABLE_EXITS_PAUSE, KVM_X86_DISABLE_EXITS_CSTATE kvm_msr_exit_reasons = KVM_MSR_EXIT_REASON_INVAL, KVM_MSR_EXIT_REASON_UNKNOWN, KVM_MSR_EXIT_REASON_FILTER kvm_bus_lock_exits = KVM_BUS_LOCK_DETECTION_OFF, KVM_BUS_LOCK_DETECTION_EXIT kvm_hypercall_exits = KVM_HC_MAP_GPA_RANGE kvm_xen_hvm_configs = KVM_XEN_HVM_CONFIG_HYPERCALL_MSR, KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL, KVM_XEN_HVM_CONFIG_SHARED_INFO, KVM_XEN_HVM_CONFIG_RUNSTATE, KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL, KVM_XEN_HVM_CONFIG_EVTCHN_SEND, KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG, KVM_XEN_HVM_CONFIG_PVCLOCK_TSC_UNSTABLE define KVM_X86_DEFAULT_VM_BIT (1 << KVM_X86_DEFAULT_VM) define KVM_X86_SW_PROTECTED_VM_BIT (1 << KVM_X86_SW_PROTECTED_VM) define KVM_X86_SEV_VM_BIT (1 << KVM_X86_SEV_VM) define KVM_X86_SEV_ES_VM_BIT (1 << KVM_X86_SEV_ES_VM) kvm_x86_vm_types = KVM_X86_DEFAULT_VM_BIT, KVM_X86_SW_PROTECTED_VM_BIT, KVM_X86_SEV_VM_BIT, KVM_X86_SEV_ES_VM_BIT kvm_mem_slots = 0, 1, 2, 3, 4, 5, 509, 510, 511, 10000, 65536, 65537, 65538, 65539, 65540, 66047, 66048, 66049 kvm_guest_addr_size = 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x100000 kvm_x86_tss_addr = 0xd000 kvm_x86_cr0 = 1, 2, 4, 8, 16, 32, 65536, 262144, 536870912, 1073741824, 2147483648 kvm_x86_cr4 = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 8192, 16384, 65536, 131072, 262144, 1048576, 2097152, 4194304 kvm_x86_efer = 1, 256, 1024, 2048, 4096, 8192, 16384, 32768 kvm_x86_dr7 = 1, 2, 4, 8, 16, 32, 64, 128 kvm_x86_rflags = 1, 2, 4, 16, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152 # Pseudo call that setups VCPU into a reasonable interesting state for execution. # The interface is designed for extensibility so that addition of new options does not invalidate all existing programs. syz_kvm_setup_cpu$x86(fd fd_kvmvm, cpufd fd_kvmcpu, usermem vma[24], text ptr[in, array[kvm_text_x86, 1]], ntext len[text], flags flags[kvm_setup_flags], opts ptr[in, array[kvm_setup_opt_x86, 0:2]], nopt len[opts]) syz_kvm_setup_cpu$ppc64(fd fd_kvmvm, cpufd fd_kvmcpu, usermem vma[24], text ptr[in, array[kvm_text_ppc64, 1]], ntext len[text], flags flags[kvm_setup_flags_ppc64], opts ptr[in, array[kvm_setup_opt_ppc64, 1]], nopt len[opts]) resource kvm_run_ptr[int64] define KVM_RUN_SIZE sizeof(struct kvm_run) mmap$KVM_VCPU(addr vma, len vcpu_mmap_size, prot flags[mmap_prot], flags flags[mmap_flags], cpufd fd_kvmcpu, offset const[0]) kvm_run_ptr _ = __NR_mmap2 define KVM_EXIT_MMIO_OFFSET offsetof(struct kvm_run, mmio) define KVM_EXIT_MMIO_SIZE sizeof_field(struct kvm_run, mmio) syz_memcpy_off$KVM_EXIT_MMIO(dst kvm_run_ptr, off const[KVM_EXIT_MMIO_OFFSET], src ptr[in, array[int8, KVM_EXIT_MMIO_SIZE]], src_off const[0], nbytes len[src]) define KVM_EXIT_HYPERCALL_OFFSET offsetof(struct kvm_run, hypercall) define KVM_EXIT_HYPERCALL_SIZE sizeof_field(struct kvm_run, hypercall) syz_memcpy_off$KVM_EXIT_HYPERCALL(dst kvm_run_ptr, off const[KVM_EXIT_HYPERCALL_OFFSET], src ptr[in, array[int8, KVM_EXIT_HYPERCALL_SIZE]], src_off const[0], nbytes len[src]) kvm_text_x86 [ textreal kvm_text_x86_real text16 kvm_text_x86_16 text32 kvm_text_x86_32 text64 kvm_text_x86_64 ] kvm_text_x86_real { typ const[8, intptr] text ptr[in, text[x86_real]] size len[text, intptr] } kvm_text_x86_16 { typ const[16, intptr] text ptr[in, text[x86_16]] size len[text, intptr] } kvm_text_x86_32 { typ const[32, intptr] text ptr[in, text[x86_32]] size len[text, intptr] } kvm_text_x86_64 { typ const[64, intptr] text ptr[in, text[x86_64]] size len[text, intptr] } kvm_text_ppc64 { typ const[0, intptr] text ptr[in, text[ppc64]] size len[text, intptr] } kvm_setup_opt_x86 [ cr0 kvm_setup_opt_cr0 cr4 kvm_setup_opt_cr4 efer kvm_setup_opt_efer flags kvm_setup_opt_flags cstype0 kvm_setup_opt_cstype0 cstype3 kvm_setup_opt_cstype3 dstype0 kvm_setup_opt_dstype0 dstype3 kvm_setup_opt_dstype3 vmwrite kvm_setup_opt_vmwrite ] kvm_setup_opt_cr0 { typ const[0, int64] val flags[kvm_x86_cr0, int64] } kvm_setup_opt_cr4 { typ const[1, int64] val flags[kvm_x86_cr4, int64] } kvm_setup_opt_efer { typ const[2, int64] val flags[kvm_x86_efer, int64] } kvm_setup_opt_flags { typ const[3, int64] val flags[kvm_x86_rflags, int64] } kvm_setup_opt_cstype0 { typ const[4, int64] val int64[0:15] } kvm_setup_opt_cstype3 { typ const[5, int64] val int64[0:15] } kvm_setup_opt_dstype0 { typ const[6, int64] val int64[0:15] } kvm_setup_opt_dstype3 { typ const[7, int64] val int64[0:15] } kvm_setup_opt_vmwrite { typ const[8, int64] # Low 16 bits are field index, high 48 bits are value. sz const[0, int64:1] fld int64:5 pad0 const[0, int64:4] ftyp int64:2 pad1 const[0, int64:1] fsz int64:2 pad2 const[0, int64:1] val int64:48 } kvm_setup_opt_ppc64 [ # unions need at least 2 fields, but we have only 1 now, but we want to have it as union for future extention featur1 kvm_setup_opt_ppc64_feature featur2 kvm_setup_opt_ppc64_feature ] kvm_setup_opt_ppc64_feature { typ const[1, int64] val int64 } kvm_setup_flags = KVM_SETUP_PAGING, KVM_SETUP_PAE, KVM_SETUP_PROTECTED, KVM_SETUP_CPL3, KVM_SETUP_VIRT86, KVM_SETUP_SMM, KVM_SETUP_VM define KVM_SETUP_PAGING (1<<0) define KVM_SETUP_PAE (1<<1) define KVM_SETUP_PROTECTED (1<<2) define KVM_SETUP_CPL3 (1<<3) define KVM_SETUP_VIRT86 (1<<4) define KVM_SETUP_SMM (1<<5) define KVM_SETUP_VM (1<<6) kvm_setup_flags_ppc64 = KVM_SETUP_PPC64_LE, KVM_SETUP_PPC64_IR, KVM_SETUP_PPC64_DR, KVM_SETUP_PPC64_PR, KVM_SETUP_PPC64_PID1 # Little endian define KVM_SETUP_PPC64_LE (1<<0) # Paging for instructions define KVM_SETUP_PPC64_IR (1<<1) # Paging for data define KVM_SETUP_PPC64_DR (1<<2) # Run with MSR_PR (==usermode) define KVM_SETUP_PPC64_PR (1<<3) # Set PID=1 i.e. not kernel's PID define KVM_SETUP_PPC64_PID1 (1<<4) kvm_guest_debug { ctrl flags[kvm_guest_debug_flags, int32] pad const[0, int32] reg array[int64, 8] } kvm_reg_list { n len[reg, int64] reg array[int64] } kvm_device_attr [ attr_arm64 kvm_device_attr_arm64 attr_other kvm_device_attr_generic ] kvm_device_attr_generic { flags const[0, int32] group int32 attr int64 addr ptr64[inout, int64] } kvm_device_attr_arm64 { flags const[0, int32] group flags[kvm_device_attr_arm64_groups, int32] attr flags[kvm_device_attr_arm64_attrs, int64] addr ptr64[inout, int64] } # Assorted device attributes from # - https://docs.kernel.org/virt/kvm/devices/arm-vgic-its.html, # - https://docs.kernel.org/virt/kvm/devices/arm-vgic.html, # - https://docs.kernel.org/virt/kvm/devices/arm-vgic-v3.html kvm_device_attr_arm64_groups = KVM_DEV_ARM_VGIC_GRP_ADDR, KVM_DEV_ARM_VGIC_GRP_DIST_REGS, KVM_DEV_ARM_VGIC_GRP_CPU_REGS, KVM_DEV_ARM_VGIC_GRP_NR_IRQS, KVM_DEV_ARM_VGIC_GRP_CTRL, KVM_DEV_ARM_VGIC_GRP_REDIST_REGS, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS, KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO, KVM_DEV_ARM_VGIC_GRP_ITS_REGS kvm_device_attr_arm64_attrs = 0, KVM_VGIC_ITS_ADDR_TYPE, KVM_VGIC_V2_ADDR_TYPE_DIST, KVM_VGIC_V2_ADDR_TYPE_CPU, KVM_VGIC_V3_ADDR_TYPE_DIST, KVM_VGIC_V3_ADDR_TYPE_REDIST, KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, KVM_DEV_ARM_VGIC_CTRL_INIT, KVM_DEV_ARM_ITS_CTRL_RESET, KVM_DEV_ARM_ITS_SAVE_TABLES, KVM_DEV_ARM_ITS_RESTORE_TABLES, KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES kvm_device_attr_vm [ attr_arm64 kvm_device_attr_vm_arm64 attr_other kvm_device_attr_generic ] kvm_device_attr_vcpu [ attr_pmu_irq kvm_vcpu_attr_pmu_irq attr_pmu_init kvm_vcpu_attr_pmu_init attr_pmu_filter kvm_vcpu_attr_pmu_filter attr_set_pmu kvm_vcpu_attr_set_pmu attr_irq_timer kvm_vcpu_attr_irq_timer attr_pvtime_ipa kvm_vcpu_attr_pvtime_ipa attr_other kvm_device_attr_generic ] kvm_vm_attr_group_arm64 = KVM_ARM_VM_SMCCC_CTRL kvm_vm_attr_attr_arm64 = KVM_ARM_VM_SMCCC_FILTER # TODO(glider): as of now the only supported argument is kvm_smccc_filter. # Need to make addr point to a union when this changes. kvm_device_attr_vm_arm64 { flags const[0, int32] group flags[kvm_vm_attr_group_arm64, int32] attr flags[kvm_vm_attr_attr_arm64, int64] addr ptr64[in, kvm_smccc_filter] } kvm_vcpu_attr_pmu_irq { flags const[0, int32] group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] attr const[KVM_ARM_VCPU_PMU_V3_IRQ, int64] addr ptr64[in, int32] } kvm_vcpu_attr_pmu_init { flags const[0, int32] group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] attr const[KVM_ARM_VCPU_PMU_V3_INIT, int64] addr const[0, int64] } kvm_vcpu_attr_pmu_filter { flags const[0, int32] group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] attr const[KVM_ARM_VCPU_PMU_V3_FILTER, int64] addr ptr64[in, kvm_pmu_event_filter] } kvm_vcpu_attr_set_pmu { flags const[0, int32] group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] attr const[KVM_ARM_VCPU_PMU_V3_SET_PMU, int64] addr ptr64[in, int32] } kvm_vcpu_timer_attributes = KVM_ARM_VCPU_TIMER_IRQ_VTIMER, KVM_ARM_VCPU_TIMER_IRQ_PTIMER kvm_vcpu_attr_irq_timer { flags const[0, int32] group const[KVM_ARM_VCPU_TIMER_CTRL, int32] attr flags[kvm_vcpu_timer_attributes, int64] addr ptr64[in, int32[16:31]] } kvm_vcpu_attr_pvtime_ipa { flags const[0, int32] group const[KVM_ARM_VCPU_PVTIME_CTRL, int32] attr const[KVM_ARM_VCPU_PVTIME_IPA, int64] addr int64 } kvm_pmu_event_filter = KVM_PMU_EVENT_ALLOW, KVM_PMU_EVENT_DENY kvm_pmu_event_filter { base_event int16 nevents int16 action flags[kvm_pmu_event_filter, int8] pad array[const[0, int8], 3] } kvm_smccc_filter_action = KVM_SMCCC_FILTER_HANDLE, KVM_SMCCC_FILTER_DENY, KVM_SMCCC_FILTER_FWD_TO_USER kvm_smccc_filter { base int32 nr_functions int32 action flags[kvm_smccc_filter_action, int8] pad array[const[0, int8], 15] } kvm_memory_attribute_flags = KVM_MEMORY_ATTRIBUTE_PRIVATE kvm_memory_attributes { address flags[kvm_guest_addrs, int64] size flags[kvm_guest_addr_size, int64] attributes flags[kvm_memory_attribute_flags, int64] flags const[0, int64] } kvm_create_guest_memfd { size int64 flags int64 reserved array[const[0, int64], 6] } kvm_pre_fault_memory { gpa flags[kvm_guest_addrs, int64] size flags[kvm_guest_addr_size, int64] flags const[0, int64] pad array[const[0, int64], 5] } kvm_create_device { type flags[kvm_device_type, int32] (in) fd fd_kvmdev (out) flags flags[kvm_device_flags, int32] (in) } kvm_s390_interrupt { type int32 parm int32 parm64 int64 } kvm_irqfd_flags = KVM_IRQFD_FLAG_DEASSIGN, KVM_IRQFD_FLAG_RESAMPLE kvm_irqfd { fd fd_event gsi int32 flags flags[kvm_irqfd_flags, int32] rfd fd_event pad array[const[0, int8], 16] } kvm_pit_state2 { chans array[kvm_pit_channel_state, 3] flags int32 pad array[const[0, int32], 9] } kvm_pit_channel_state { count int32 lcount int16 latched int8 lstatus int8 status int8 rstate int8 wstate int8 wlatch int8 rw int8 mode int8 bcd int8 gate int8 ltime int64 } kvm_pit_config { flags int32 pad array[const[0, int32], 15] } kvm_msi_flags = 0, KVM_MSI_VALID_DEVID kvm_msi { addrlo flags[kvm_guest_addrs, int32] addrhi flags[kvm_guest_addrs, int32] data int32 flags flags[kvm_msi_flags, int32] devid int32 pad array[const[0, int8], 12] } kvm_one_reg [ arm64_core kvm_one_reg_arm64[kvm_regs_arm64_core] arm64_fp kvm_one_reg_arm64[kvm_regs_arm64_fp] arm64_ccsidr kvm_one_reg_arm64[kvm_regs_arm64_ccsidr] arm64_sys kvm_one_reg_arm64[kvm_regs_arm64_sys] arm64_extra kvm_one_reg_arm64[kvm_regs_arm64_extra] other kvm_one_reg_other ] type kvm_one_reg_arm64[FTYPE] { id flags[FTYPE, int64] addr ptr64[inout, int64] } kvm_one_reg_other { id int64 addr ptr64[inout, int64] } kvm_s390_ucas_mapping { uaddr int64 vaddr int64 len int64 } kvm_dirty_tlb { bitmap int64 n int32 } kvm_ioeventfd { datam int64 addr flags[kvm_guest_addrs, int64] len flags[kvm_ioeventfd_len, int32] fd fd_event flags flags[kvm_ioeventfd_flags, int32] pad array[const[0, int8], 36] } kvm_lapic_state { regs array[int8, 1024] } kvm_assigned_msix_entry { devid int32 gsi int32 entry int16 padding array[const[0, int16], 3] } kvm_assigned_msix_nr { devid int32 entnr int16 } kvm_irq_routing { nr len[entries, int32] flags const[0, int32] entries array[kvm_irq_routing_entry] } kvm_irq_routing_entry { gsi int32 type flags[kvm_irq_routing_entry_type, int32] flags flags[kvm_msi_flags, int32] pad const[0, int32] u kvm_irq_routing_entry_u } kvm_irq_routing_entry_u [ irqchip kvm_irq_routing_irqchip msi kvm_irq_routing_msi adapter kvm_irq_routing_s390_adapter sint kvm_irq_routing_hv_sint ] kvm_irq_routing_irqchip { irqchip int32 pin int32 } kvm_irq_routing_msi { address_lo int32 address_hi int32 data int32 devid int32 } kvm_irq_routing_s390_adapter { indaddr int64 saddr int64 indoff int64 soff int32 aid int32 } kvm_irq_routing_hv_sint { vcpu int32 sint int32 } kvm_xcr { xcr int32 reserv const[0, int32] val int64 } kvm_xcrs { nr len[xcrs, int32] flags int32 xcrs array[kvm_xcr] } kvm_xsave { region array[int32, 1024] } type kvm_enable_cap[CAP, ARGS] { cap const[CAP, int32] flags const[0, int32] args ARGS } [align[8], size[KVM_ENABLE_CAP_SIZE]] define KVM_ENABLE_CAP_SIZE sizeof(struct kvm_enable_cap) kvm_userspace_memory_region { slot flags[kvm_mem_slots, int32] flags flags[kvm_mem_region_flags, int32] paddr flags[kvm_guest_addrs, int64] size len[addr, int64] addr vma64[1:2] } kvm_userspace_memory_region2 { slot flags[kvm_mem_slots, int32] flags flags[kvm_mem_region_flags, int32] paddr flags[kvm_guest_addrs, int64] size len[addr, int64] addr vma64[1:2] guest_memfd_offset int64 guest_memfd fd_kvm_guest_memfd pad1 const[0, int32] pad2 array[const[0, int64], 14] } # https://docs.kernel.org/virt/kvm/api.html#kvm-get-vcpu-events kvm_vcpu_events_x86 { exinjec int8 exnr int8 exhec int8 pad1 const[0, int8] exec int32 ininjec int8 innr int8 insoft int8 inshad int8 nmiinj int8 nmipend int8 nmimask int8 pad2 const[0, int8] sipi_vector int32 flags int32 smismm int8 smipend int8 smiinsi int8 smilatc int8 reserved array[const[0, int8], 27] exception_has_payload int8 exception_payload int64 } kvm_vcpu_events_arm64 { serror_pending int8 serror_has_esr int8 ext_dabt_pending int8 pad array[const[0, int8], 5] serror_esr int64 reserved array[const[0, int32], 12] } kvm_vcpu_events [ x86 kvm_vcpu_events_x86 arm64 kvm_vcpu_events_arm64 ] kvm_clock_flags = KVM_CLOCK_TSC_STABLE, KVM_CLOCK_REALTIME, KVM_CLOCK_HOST_TSC kvm_clock_data { clock int64 flags flags[kvm_clock_flags, int32] pad0 int32 realtime int64 host_tsc int64 pad array[const[0, int32], 4] } kvm_xen_hvm_config { flags int32 msr flags[msr_index, int32] addr32 ptr64[in, array[int8]] addr64 ptr64[in, array[int8]] size32 len[addr32, int8] size64 len[addr64, int8] pad array[const[0, int8], 30] } kvm_irq_level { irq int32 level int32 } kvm_signal_mask { len len[sigset, int32] sigset array[int8] } kvm_cpuid_entry { func flags[kvm_cpu_function, int32] eax int32 ebx int32 ecx int32 edx int32 pad const[0, int32] } kvm_cpuid { n len[entries, int32] pad const[0, int32] entries array[kvm_cpuid_entry] } kvm_cpuid_entry2 { func flags[kvm_cpu_function, int32] index int32 flags flags[kvm_cpuid_flags, int32] eax int32 ebx int32 ecx int32 edx int32 pad array[const[0, int32], 3] } kvm_cpuid2 { n len[entries, int32] pad const[0, int32] entries array[kvm_cpuid_entry2] } kvm_translation { laddr flags[kvm_guest_addrs, int64] paddr flags[kvm_guest_addrs, int64] valid int8 writeable int8 usermode int8 pad array[const[0, int8], 5] } kvm_dirty_log { slot flags[kvm_mem_slots, int32] pad const[0, int32] bitmap vma64 } # num_pages and first_page must be multiples of 64, # see https://docs.kernel.org/virt/kvm/api.html#kvm-clear-dirty-log-vm-ioctl kvm_clear_dirty_log { slot flags[kvm_mem_slots, int32] num_pages int32[0:1024, 64] first_page int32[0:1024, 64] # Allocate 1024 bits regardless of num_pages. bitmap ptr[in, array[int64, 128]] } kvm_msr_list { n len[indices, int32] indices array[const[0, int32]] } kvm_regs { gp array[int64, 16] rip flags[kvm_guest_addrs, int64] rflags flags[kvm_x86_rflags, int64] } kvm_sregs { cs kvm_segment ds kvm_segment es kvm_segment fs kvm_segment gs kvm_segment ss kvm_segment tr kvm_segment ldt kvm_segment gdt kvm_dtable idt kvm_dtable cr0 flags[kvm_x86_cr0, int64] cr2 const[0, int64] # TODO: this should point to page table cr3 flags[kvm_guest_addrs, int64] cr4 flags[kvm_x86_cr4, int64] cr8 int64[0:15] efer flags[kvm_x86_efer, int64] apic flags[kvm_guest_addrs, int64] intr array[int64, 4] } kvm_segment { base flags[kvm_guest_addrs, int64] limit flags[kvm_guest_addrs, int32] select flags[kvm_guest_selector, int16] type int8 present int8 dpl int8 db int8 s int8 l int8 g int8 avl int8 unusabl int8 padding const[0, int8] } kvm_dtable { base flags[kvm_guest_addrs, int64] limit int16 pad array[const[0, int16], 3] } kvm_fpu { fpr array[const[0, int64], 16] fcw int16 fsw int16 ftws int8 pad1 const[0, int8] last_opcode int16 last_ip flags[kvm_guest_addrs, int64] last_dp flags[kvm_guest_addrs, int64] xmm array[const[0, int64], 32] mxcsr int32 pad2 const[0, int32] } kvm_debugregs { db array[flags[kvm_guest_addrs, int64], 4] dr6 int64 dr7 flags[kvm_x86_dr7, int64] flags int64 reserv array[const[0, int64], 9] } kvm_msrs { nmsrs len[entries, int32] pad const[0, int32] entries array[kvm_msr_entry] } [packed] kvm_msr_entry { index flags[msr_index, int32] reserv const[0, int32] data int64 } kvm_irqchip { chipid flags[kvm_chip_id, int32] pad const[0, int32] chip kvm_irq_chip } kvm_irq_chip [ pic kvm_pic_state ioapic kvm_ioapic_state ] [size[512]] kvm_pic_state { lastirr int8 irr int8 imr int8 isr int8 padd int8 irqbase int8 readreg int8 poll int8 special int8 initst int8 autoeoi int8 rotate int8 nestedm int8 init4 int8 elcr int8 elcrmas int8 } kvm_ioapic_state { base flags[kvm_guest_addrs, int64] ioregs int32 id int32 irr int32 pad const[0, int32] redir array[kvm_ioapic_redir, 24] } kvm_ioapic_redir { vector int8 f0 int8 f1 int8 reserv array[const[0, int8], 4] destid int8 } kvm_tpr_access_ctl { enabled int32 flags int32 reserv array[const[0, int32], 8] } kvm_mce_cap { banks int8[0:32] flags flags[kvm_mce_flags, int8] count int8 pad const[0, int8] } kvm_x86_mce { status flags[kvm_mce_status, int64] addr flags[kvm_guest_addrs, int64] misc int64 mcg flags[kvm_mcg_status, int64] bank int8[0:32] pad1 array[const[0, int8], 7] pad2 array[const[0, int64], 3] } kvm_reinject_control { reinjec int8 reserv array[const[0, int8], 31] } kvm_coalesced_mmio_zone { addr flags[kvm_guest_addrs, int64] size flags[kvm_guest_addr_size, int32] pio_or_pad int32[0:1] } kvm_hyperv_eventfd { conn_id int32[0:4] fd fd_event flags bool32 padding array[const[0, int32], 3] } kvm_nested_state { flags flags[kvm_nested_state_flags, int16] format const[0, int16] size bytesize[parent, int32] hdr kvm_vmx_nested_state data void } kvm_nested_state_arg { state kvm_nested_state current_vmcs array[int8, VMCS12_SIZE] shadow_vmcs array[int8, VMCS12_SIZE] } kvm_vmx_nested_state { vmxon_pa flags[kvm_guest_addrs, int64] vmcs_pa flags[kvm_guest_addrs, int64] smm_flags flags[kvm_nested_smm_flags, int16] } [size[120]] kvm_nested_state_flags = KVM_STATE_NESTED_GUEST_MODE, KVM_STATE_NESTED_RUN_PENDING kvm_nested_smm_flags = KVM_STATE_NESTED_SMM_GUEST_MODE, KVM_STATE_NESTED_SMM_VMXON # pkg/ifuzz/pseudo.go also knows this list msr_index = 0x0, 0x1, 0x10, 0x11, 0x12, 0x13, 0x17, 0x1b, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2c, 0x33, 0x34, 0x3a, 0x3b, 0x40, 0x60, 0x79, 0x88, 0x89, 0x8a, 0x8b, 0x9b, 0x9e, 0xc1, 0xc2, 0xcd, 0xce, 0xe2, 0xe7, 0xe8, 0xfe, 0x116, 0x118, 0x119, 0x11a, 0x11b, 0x11e, 0x174, 0x175, 0x176, 0x179, 0x17a, 0x17b, 0x180, 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189, 0x18a, 0x198, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, 0x1a0, 0x1a2, 0x1a6, 0x1a7, 0x1aa, 0x1ad, 0x1ae, 0x1af, 0x1b0, 0x1b1, 0x1b2, 0x1c8, 0x1c9, 0x1d9, 0x1db, 0x1dc, 0x1dd, 0x1de, 0x1e0, 0x1fc, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20a, 0x20b, 0x20c, 0x20d, 0x20e, 0x20f, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21a, 0x21b, 0x21c, 0x21d, 0x21e, 0x21f, 0x220, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22a, 0x22b, 0x22c, 0x22d, 0x22e, 0x22f, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, 0x239, 0x23a, 0x23b, 0x23c, 0x23d, 0x23e, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x249, 0x24a, 0x24b, 0x24c, 0x24d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 0x25b, 0x25c, 0x25d, 0x25e, 0x25f, 0x260, 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, 0x268, 0x269, 0x26a, 0x26b, 0x26c, 0x26d, 0x26e, 0x26f, 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, 0x276, 0x277, 0x278, 0x279, 0x27a, 0x27b, 0x27c, 0x27d, 0x27e, 0x27f, 0x280, 0x281, 0x282, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28a, 0x28b, 0x28c, 0x28d, 0x28e, 0x28f, 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, 0x299, 0x29a, 0x29b, 0x29c, 0x29d, 0x29e, 0x29f, 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4, 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9, 0x2aa, 0x2ab, 0x2ac, 0x2ad, 0x2ae, 0x2af, 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9, 0x2ba, 0x2bb, 0x2bc, 0x2bd, 0x2be, 0x2bf, 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7, 0x2c8, 0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf, 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x2de, 0x2df, 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, 0x2ef, 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, 0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317, 0x318, 0x319, 0x31a, 0x31b, 0x31c, 0x31d, 0x31e, 0x31f, 0x320, 0x321, 0x322, 0x323, 0x324, 0x325, 0x326, 0x327, 0x328, 0x329, 0x32a, 0x32b, 0x32c, 0x32d, 0x32e, 0x32f, 0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, 0x33a, 0x33b, 0x33c, 0x33d, 0x33e, 0x33f, 0x340, 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347, 0x348, 0x349, 0x34a, 0x34b, 0x34c, 0x34d, 0x34e, 0x34f, 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357, 0x358, 0x359, 0x35a, 0x35b, 0x35c, 0x35d, 0x35e, 0x35f, 0x360, 0x361, 0x362, 0x363, 0x364, 0x365, 0x366, 0x367, 0x368, 0x369, 0x36a, 0x36b, 0x36c, 0x36d, 0x36e, 0x36f, 0x370, 0x371, 0x372, 0x373, 0x374, 0x375, 0x376, 0x377, 0x378, 0x379, 0x37a, 0x37b, 0x37c, 0x37d, 0x37e, 0x37f, 0x380, 0x381, 0x382, 0x383, 0x384, 0x385, 0x386, 0x387, 0x388, 0x389, 0x38a, 0x38b, 0x38c, 0x38d, 0x38e, 0x38f, 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f, 0x3a0, 0x3a1, 0x3a2, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x3ac, 0x3ad, 0x3ae, 0x3af, 0x3b0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, 0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf, 0x3c2, 0x3c3, 0x3c4, 0x3c5, 0x3f1, 0x3f2, 0x3f6, 0x3f7, 0x3f8, 0x3f9, 0x3fa, 0x3fc, 0x3fd, 0x3fe, 0x3ff, 0x400, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, 0x408, 0x409, 0x40a, 0x40b, 0x40c, 0x40d, 0x40e, 0x40f, 0x410, 0x411, 0x412, 0x413, 0x480, 0x481, 0x482, 0x483, 0x484, 0x485, 0x486, 0x487, 0x488, 0x489, 0x48a, 0x48b, 0x48c, 0x48d, 0x48e, 0x48f, 0x490, 0x491, 0x4c1, 0x4d0, 0x560, 0x561, 0x570, 0x571, 0x572, 0x580, 0x581, 0x582, 0x583, 0x584, 0x585, 0x586, 0x587, 0x600, 0x606, 0x60a, 0x60b, 0x60c, 0x60d, 0x610, 0x611, 0x613, 0x614, 0x618, 0x619, 0x61b, 0x61c, 0x630, 0x631, 0x632, 0x633, 0x634, 0x635, 0x638, 0x639, 0x63a, 0x63b, 0x640, 0x641, 0x642, 0x648, 0x649, 0x64a, 0x64b, 0x64c, 0x64d, 0x64e, 0x64f, 0x658, 0x659, 0x65a, 0x65b, 0x660, 0x668, 0x669, 0x680, 0x690, 0x6b0, 0x6b1, 0x6c0, 0x6e0, 0x770, 0x771, 0x772, 0x773, 0x774, 0x777, 0x800, 0x801, 0x802, 0x803, 0x804, 0x805, 0x806, 0x807, 0x808, 0x809, 0x80a, 0x80b, 0x80c, 0x80d, 0x80e, 0x80f, 0x810, 0x811, 0x812, 0x813, 0x814, 0x815, 0x816, 0x817, 0x818, 0x819, 0x81a, 0x81b, 0x81c, 0x81d, 0x81e, 0x81f, 0x820, 0x821, 0x822, 0x823, 0x824, 0x825, 0x826, 0x827, 0x828, 0x829, 0x82a, 0x82b, 0x82c, 0x82d, 0x82e, 0x82f, 0x830, 0x831, 0x832, 0x833, 0x834, 0x835, 0x836, 0x837, 0x838, 0x839, 0x83a, 0x83b, 0x83c, 0x83d, 0x83e, 0x83f, 0x840, 0x841, 0x842, 0x843, 0x844, 0x845, 0x846, 0x847, 0x848, 0x849, 0x84a, 0x84b, 0x84c, 0x84d, 0x84e, 0x84f, 0x850, 0x851, 0x852, 0x853, 0x854, 0x855, 0x856, 0x857, 0x858, 0x859, 0x85a, 0x85b, 0x85c, 0x85d, 0x85e, 0x85f, 0x860, 0x861, 0x862, 0x863, 0x864, 0x865, 0x866, 0x867, 0x868, 0x869, 0x86a, 0x86b, 0x86c, 0x86d, 0x86e, 0x86f, 0x870, 0x871, 0x872, 0x873, 0x874, 0x875, 0x876, 0x877, 0x878, 0x879, 0x87a, 0x87b, 0x87c, 0x87d, 0x87e, 0x87f, 0x880, 0x881, 0x882, 0x883, 0x884, 0x885, 0x886, 0x887, 0x888, 0x889, 0x88a, 0x88b, 0x88c, 0x88d, 0x88e, 0x88f, 0x890, 0x891, 0x892, 0x893, 0x894, 0x895, 0x896, 0x897, 0x898, 0x899, 0x89a, 0x89b, 0x89c, 0x89d, 0x89e, 0x89f, 0x8a0, 0x8a1, 0x8a2, 0x8a3, 0x8a4, 0x8a5, 0x8a6, 0x8a7, 0x8a8, 0x8a9, 0x8aa, 0x8ab, 0x8ac, 0x8ad, 0x8ae, 0x8af, 0x8b0, 0x8b1, 0x8b2, 0x8b3, 0x8b4, 0x8b5, 0x8b6, 0x8b7, 0x8b8, 0x8b9, 0x8ba, 0x8bb, 0x8bc, 0x8bd, 0x8be, 0x8bf, 0x8c0, 0x8c1, 0x8c2, 0x8c3, 0x8c4, 0x8c5, 0x8c6, 0x8c7, 0x8c8, 0x8c9, 0x8ca, 0x8cb, 0x8cc, 0x8cd, 0x8ce, 0x8cf, 0x8d0, 0x8d1, 0x8d2, 0x8d3, 0x8d4, 0x8d5, 0x8d6, 0x8d7, 0x8d8, 0x8d9, 0x8da, 0x8db, 0x8dc, 0x8dd, 0x8de, 0x8df, 0x8e0, 0x8e1, 0x8e2, 0x8e3, 0x8e4, 0x8e5, 0x8e6, 0x8e7, 0x8e8, 0x8e9, 0x8ea, 0x8eb, 0x8ec, 0x8ed, 0x8ee, 0x8ef, 0x8f0, 0x8f1, 0x8f2, 0x8f3, 0x8f4, 0x8f5, 0x8f6, 0x8f7, 0x8f8, 0x8f9, 0x8fa, 0x8fb, 0x8fc, 0x8fd, 0x8fe, 0x8ff, 0x900, 0x901, 0x902, 0x903, 0x904, 0x905, 0x906, 0x907, 0x908, 0x909, 0x90a, 0x90b, 0x90c, 0x90d, 0x90e, 0x90f, 0x910, 0x911, 0x912, 0x913, 0x914, 0x915, 0x916, 0x917, 0x918, 0x919, 0x91a, 0x91b, 0x91c, 0x91d, 0x91e, 0x91f, 0x920, 0x921, 0x922, 0x923, 0x924, 0x925, 0x926, 0x927, 0x928, 0x929, 0x92a, 0x92b, 0x92c, 0x92d, 0x92e, 0x92f, 0x930, 0x931, 0x932, 0x933, 0x934, 0x935, 0x936, 0x937, 0x938, 0x939, 0x93a, 0x93b, 0x93c, 0x93d, 0x93e, 0x93f, 0x940, 0x941, 0x942, 0x943, 0x944, 0x945, 0x946, 0x947, 0x948, 0x949, 0x94a, 0x94b, 0x94c, 0x94d, 0x94e, 0x94f, 0x950, 0x951, 0x952, 0x953, 0x954, 0x955, 0x956, 0x957, 0x958, 0x959, 0x95a, 0x95b, 0x95c, 0x95d, 0x95e, 0x95f, 0x960, 0x961, 0x962, 0x963, 0x964, 0x965, 0x966, 0x967, 0x968, 0x969, 0x96a, 0x96b, 0x96c, 0x96d, 0x96e, 0x96f, 0x970, 0x971, 0x972, 0x973, 0x974, 0x975, 0x976, 0x977, 0x978, 0x979, 0x97a, 0x97b, 0x97c, 0x97d, 0x97e, 0x97f, 0x980, 0x981, 0x982, 0x983, 0x984, 0x985, 0x986, 0x987, 0x988, 0x989, 0x98a, 0x98b, 0x98c, 0x98d, 0x98e, 0x98f, 0x990, 0x991, 0x992, 0x993, 0x994, 0x995, 0x996, 0x997, 0x998, 0x999, 0x99a, 0x99b, 0x99c, 0x99d, 0x99e, 0x99f, 0x9a0, 0x9a1, 0x9a2, 0x9a3, 0x9a4, 0x9a5, 0x9a6, 0x9a7, 0x9a8, 0x9a9, 0x9aa, 0x9ab, 0x9ac, 0x9ad, 0x9ae, 0x9af, 0x9b0, 0x9b1, 0x9b2, 0x9b3, 0x9b4, 0x9b5, 0x9b6, 0x9b7, 0x9b8, 0x9b9, 0x9ba, 0x9bb, 0x9bc, 0x9bd, 0x9be, 0x9bf, 0x9c0, 0x9c1, 0x9c2, 0x9c3, 0x9c4, 0x9c5, 0x9c6, 0x9c7, 0x9c8, 0x9c9, 0x9ca, 0x9cb, 0x9cc, 0x9cd, 0x9ce, 0x9cf, 0x9d0, 0x9d1, 0x9d2, 0x9d3, 0x9d4, 0x9d5, 0x9d6, 0x9d7, 0x9d8, 0x9d9, 0x9da, 0x9db, 0x9dc, 0x9dd, 0x9de, 0x9df, 0x9e0, 0x9e1, 0x9e2, 0x9e3, 0x9e4, 0x9e5, 0x9e6, 0x9e7, 0x9e8, 0x9e9, 0x9ea, 0x9eb, 0x9ec, 0x9ed, 0x9ee, 0x9ef, 0x9f0, 0x9f1, 0x9f2, 0x9f3, 0x9f4, 0x9f5, 0x9f6, 0x9f7, 0x9f8, 0x9f9, 0x9fa, 0x9fb, 0x9fc, 0x9fd, 0x9fe, 0x9ff, 0xa00, 0xa01, 0xa02, 0xa03, 0xa04, 0xa05, 0xa06, 0xa07, 0xa08, 0xa09, 0xa0a, 0xa0b, 0xa0c, 0xa0d, 0xa0e, 0xa0f, 0xa10, 0xa11, 0xa12, 0xa13, 0xa14, 0xa15, 0xa16, 0xa17, 0xa18, 0xa19, 0xa1a, 0xa1b, 0xa1c, 0xa1d, 0xa1e, 0xa1f, 0xa20, 0xa21, 0xa22, 0xa23, 0xa24, 0xa25, 0xa26, 0xa27, 0xa28, 0xa29, 0xa2a, 0xa2b, 0xa2c, 0xa2d, 0xa2e, 0xa2f, 0xa30, 0xa31, 0xa32, 0xa33, 0xa34, 0xa35, 0xa36, 0xa37, 0xa38, 0xa39, 0xa3a, 0xa3b, 0xa3c, 0xa3d, 0xa3e, 0xa3f, 0xa40, 0xa41, 0xa42, 0xa43, 0xa44, 0xa45, 0xa46, 0xa47, 0xa48, 0xa49, 0xa4a, 0xa4b, 0xa4c, 0xa4d, 0xa4e, 0xa4f, 0xa50, 0xa51, 0xa52, 0xa53, 0xa54, 0xa55, 0xa56, 0xa57, 0xa58, 0xa59, 0xa5a, 0xa5b, 0xa5c, 0xa5d, 0xa5e, 0xa5f, 0xa60, 0xa61, 0xa62, 0xa63, 0xa64, 0xa65, 0xa66, 0xa67, 0xa68, 0xa69, 0xa6a, 0xa6b, 0xa6c, 0xa6d, 0xa6e, 0xa6f, 0xa70, 0xa71, 0xa72, 0xa73, 0xa74, 0xa75, 0xa76, 0xa77, 0xa78, 0xa79, 0xa7a, 0xa7b, 0xa7c, 0xa7d, 0xa7e, 0xa7f, 0xa80, 0xa81, 0xa82, 0xa83, 0xa84, 0xa85, 0xa86, 0xa87, 0xa88, 0xa89, 0xa8a, 0xa8b, 0xa8c, 0xa8d, 0xa8e, 0xa8f, 0xa90, 0xa91, 0xa92, 0xa93, 0xa94, 0xa95, 0xa96, 0xa97, 0xa98, 0xa99, 0xa9a, 0xa9b, 0xa9c, 0xa9d, 0xa9e, 0xa9f, 0xaa0, 0xaa1, 0xaa2, 0xaa3, 0xaa4, 0xaa5, 0xaa6, 0xaa7, 0xaa8, 0xaa9, 0xaaa, 0xaab, 0xaac, 0xaad, 0xaae, 0xaaf, 0xab0, 0xab1, 0xab2, 0xab3, 0xab4, 0xab5, 0xab6, 0xab7, 0xab8, 0xab9, 0xaba, 0xabb, 0xabc, 0xabd, 0xabe, 0xabf, 0xac0, 0xac1, 0xac2, 0xac3, 0xac4, 0xac5, 0xac6, 0xac7, 0xac8, 0xac9, 0xaca, 0xacb, 0xacc, 0xacd, 0xace, 0xacf, 0xad0, 0xad1, 0xad2, 0xad3, 0xad4, 0xad5, 0xad6, 0xad7, 0xad8, 0xad9, 0xada, 0xadb, 0xadc, 0xadd, 0xade, 0xadf, 0xae0, 0xae1, 0xae2, 0xae3, 0xae4, 0xae5, 0xae6, 0xae7, 0xae8, 0xae9, 0xaea, 0xaeb, 0xaec, 0xaed, 0xaee, 0xaef, 0xaf0, 0xaf1, 0xaf2, 0xaf3, 0xaf4, 0xaf5, 0xaf6, 0xaf7, 0xaf8, 0xaf9, 0xafa, 0xafb, 0xafc, 0xafd, 0xafe, 0xaff, 0xb00, 0xb01, 0xb02, 0xb03, 0xb04, 0xb05, 0xb06, 0xb07, 0xb08, 0xb09, 0xb0a, 0xb0b, 0xb0c, 0xb0d, 0xb0e, 0xb0f, 0xb10, 0xb11, 0xb12, 0xb13, 0xb14, 0xb15, 0xb16, 0xb17, 0xb18, 0xb19, 0xb1a, 0xb1b, 0xb1c, 0xb1d, 0xb1e, 0xb1f, 0xb20, 0xb21, 0xb22, 0xb23, 0xb24, 0xb25, 0xb26, 0xb27, 0xb28, 0xb29, 0xb2a, 0xb2b, 0xb2c, 0xb2d, 0xb2e, 0xb2f, 0xb30, 0xb31, 0xb32, 0xb33, 0xb34, 0xb35, 0xb36, 0xb37, 0xb38, 0xb39, 0xb3a, 0xb3b, 0xb3c, 0xb3d, 0xb3e, 0xb3f, 0xb40, 0xb41, 0xb42, 0xb43, 0xb44, 0xb45, 0xb46, 0xb47, 0xb48, 0xb49, 0xb4a, 0xb4b, 0xb4c, 0xb4d, 0xb4e, 0xb4f, 0xb50, 0xb51, 0xb52, 0xb53, 0xb54, 0xb55, 0xb56, 0xb57, 0xb58, 0xb59, 0xb5a, 0xb5b, 0xb5c, 0xb5d, 0xb5e, 0xb5f, 0xb60, 0xb61, 0xb62, 0xb63, 0xb64, 0xb65, 0xb66, 0xb67, 0xb68, 0xb69, 0xb6a, 0xb6b, 0xb6c, 0xb6d, 0xb6e, 0xb6f, 0xb70, 0xb71, 0xb72, 0xb73, 0xb74, 0xb75, 0xb76, 0xb77, 0xb78, 0xb79, 0xb7a, 0xb7b, 0xb7c, 0xb7d, 0xb7e, 0xb7f, 0xb80, 0xb81, 0xb82, 0xb83, 0xb84, 0xb85, 0xb86, 0xb87, 0xb88, 0xb89, 0xb8a, 0xb8b, 0xb8c, 0xb8d, 0xb8e, 0xb8f, 0xb90, 0xb91, 0xb92, 0xb93, 0xb94, 0xb95, 0xb96, 0xb97, 0xb98, 0xb99, 0xb9a, 0xb9b, 0xb9c, 0xb9d, 0xb9e, 0xb9f, 0xba0, 0xba1, 0xba2, 0xba3, 0xba4, 0xba5, 0xba6, 0xba7, 0xba8, 0xba9, 0xbaa, 0xbab, 0xbac, 0xbad, 0xbae, 0xbaf, 0xbb0, 0xbb1, 0xbb2, 0xbb3, 0xbb4, 0xbb5, 0xbb6, 0xbb7, 0xbb8, 0xbb9, 0xbba, 0xbbb, 0xbbc, 0xbbd, 0xbbe, 0xbbf, 0xbc0, 0xbc1, 0xbc2, 0xbc3, 0xbc4, 0xbc5, 0xbc6, 0xbc7, 0xbc8, 0xbc9, 0xbca, 0xbcb, 0xbcc, 0xbcd, 0xbce, 0xbcf, 0xbd0, 0xbd1, 0xbd2, 0xbd3, 0xbd4, 0xbd5, 0xbd6, 0xbd7, 0xbd8, 0xbd9, 0xbda, 0xbdb, 0xbdc, 0xbdd, 0xbde, 0xbdf, 0xbe0, 0xbe1, 0xbe2, 0xbe3, 0xbe4, 0xbe5, 0xbe6, 0xbe7, 0xbe8, 0xbe9, 0xbea, 0xbeb, 0xbec, 0xbed, 0xbee, 0xbef, 0xbf0, 0xbf1, 0xbf2, 0xbf3, 0xbf4, 0xbf5, 0xbf6, 0xbf7, 0xbf8, 0xbf9, 0xbfa, 0xbfb, 0xbfc, 0xbfd, 0xbfe, 0xbff, 0xd90, 0xda0, 0xdc0, 0xdc1, 0xdc2, 0xdc3, 0xdc4, 0xdc5, 0xdc6, 0xdc7, 0x40000000, 0x40000001, 0x40000002, 0x40000003, 0x40000010, 0x40000020, 0x40000022, 0x40000023, 0x40000070, 0x40000071, 0x40000072, 0x40000073, 0x40000080, 0x40000081, 0x40000082, 0x40000083, 0x40000084, 0x40000090, 0x40000091, 0x40000092, 0x40000093, 0x40000094, 0x40000095, 0x40000096, 0x40000097, 0x40000098, 0x40000099, 0x4000009a, 0x4000009b, 0x4000009c, 0x4000009d, 0x4000009e, 0x4000009f, 0x400000b0, 0x400000b1, 0x400000b2, 0x400000b3, 0x400000b4, 0x400000b5, 0x400000b6, 0x400000b7, 0x40000100, 0x40000101, 0x40000102, 0x40000103, 0x40000104, 0x40000105, 0x4b564d00, 0x4b564d01, 0x4b564d02, 0x4b564d03, 0x4b564d04, 0xc0000080, 0xc0000081, 0xc0000082, 0xc0000083, 0xc0000084, 0xc0000100, 0xc0000101, 0xc0000102, 0xc0000103, 0xc0000104, 0xc001001f, 0xc0010020, 0xc0010044, 0xc0010062, 0xc0010063, 0xc0010064, 0xc0010114, 0xc0010115, 0xc0010117, 0xc0010140, 0xc0010141, 0xc0011020, 0xc0011022, 0xc001102a, 0xc0011030, 0xc0011031, 0xc0011032, 0xc0011033, 0xc0011034, 0xc0011035, 0xc0011036, 0xc0011037, 0xc0011038, 0xc0011039, 0xc001103a, 0xc001103b, 0xc001103d define VMCS12_SIZE 0x1000 # Deprecated consts. # These were removed in a5d3df8ae13. define KVM_ASSIGN_DEV_IRQ 0x4040AE70 define KVM_ASSIGN_PCI_DEVICE 0x8040AE69 define KVM_ASSIGN_SET_INTX_MASK 0x4040AEA4 define KVM_ASSIGN_SET_MSIX_ENTRY 0x4010AE74 define KVM_ASSIGN_SET_MSIX_NR 0x4008AE73 define KVM_DEASSIGN_DEV_IRQ 0x4040AE75 define KVM_DEASSIGN_PCI_DEVICE 0x4040AE72 # Register descriptions generated by tools/arm64/registers.go kvm_regs_arm64_core = 0x6030000000100000, 0x6030000000100002, 0x6030000000100004, 0x6030000000100006, 0x6030000000100008, 0x603000000010000a, 0x603000000010000c, 0x603000000010000e, 0x6030000000100010, 0x6030000000100012, 0x6030000000100014, 0x6030000000100016, 0x6030000000100018, 0x603000000010001a, 0x603000000010001c, 0x603000000010001e, 0x6030000000100020, 0x6030000000100022, 0x6030000000100024, 0x6030000000100026, 0x6030000000100028, 0x603000000010002a, 0x603000000010002c, 0x603000000010002e, 0x6030000000100030, 0x6030000000100032, 0x6030000000100034, 0x6030000000100036, 0x6030000000100038, 0x603000000010003a, 0x603000000010003c, 0x603000000010003e, 0x6030000000100040, 0x6030000000100042, 0x6030000000100044, 0x6030000000100046, 0x6030000000100048, 0x603000000010004a, 0x603000000010004c, 0x603000000010004e, 0x6030000000100050 kvm_regs_arm64_fp = 0x60200000001000d4, 0x60200000001000d5, 0x6040000000100054, 0x6040000000100058, 0x604000000010005c, 0x6040000000100060, 0x6040000000100064, 0x6040000000100068, 0x604000000010006c, 0x6040000000100070, 0x6040000000100074, 0x6040000000100078, 0x604000000010007c, 0x6040000000100080, 0x6040000000100084, 0x6040000000100088, 0x604000000010008c, 0x6040000000100090, 0x6040000000100094, 0x6040000000100098, 0x604000000010009c, 0x60400000001000a0, 0x60400000001000a4, 0x60400000001000a8, 0x60400000001000ac, 0x60400000001000b0, 0x60400000001000b4, 0x60400000001000b8, 0x60400000001000bc, 0x60400000001000c0, 0x60400000001000c4, 0x60400000001000c8, 0x60400000001000cc, 0x60400000001000d0 kvm_regs_arm64_ccsidr = 0x6020000000110000, 0x6020000000110001, 0x6020000000110002, 0x6020000000110003, 0x6020000000110004, 0x6020000000110005, 0x6020000000110006, 0x6020000000110007, 0x6020000000110008, 0x6020000000110009, 0x602000000011000a, 0x602000000011000b, 0x602000000011000c, 0x602000000011000d # Extra registers that KVM_GET_REG_LIST prints on QEMU kvm_regs_arm64_extra = 0x603000000013c01b, 0x603000000013c01f, 0x603000000013c022, 0x603000000013c023, 0x603000000013c025, 0x603000000013c026, 0x603000000013c027, 0x603000000013c02a, 0x603000000013c02b, 0x603000000013c02e, 0x603000000013c02f, 0x603000000013c033, 0x603000000013c034, 0x603000000013c035, 0x603000000013c036, 0x603000000013c037, 0x603000000013c03b, 0x603000000013c03c, 0x603000000013c03d, 0x603000000013c03e, 0x603000000013c03f, 0x603000000013c103, 0x603000000013c512, 0x603000000013c513, 0x6030000000140000, 0x6030000000140001, 0x6030000000140002, 0x6030000000140003, 0x6030000000160000, 0x6030000000160001, 0x6030000000160002 kvm_regs_arm64_sys = 0x6030000000138002, 0x6030000000138010, 0x6030000000138012, 0x603000000013801a, 0x6030000000138032, 0x6030000000138004, 0x603000000013800c, 0x6030000000138014, 0x603000000013801c, 0x6030000000138024, 0x603000000013802c, 0x6030000000138034, 0x603000000013803c, 0x6030000000138044, 0x603000000013804c, 0x6030000000138054, 0x603000000013805c, 0x6030000000138064, 0x603000000013806c, 0x6030000000138074, 0x603000000013807c, 0x6030000000138005, 0x603000000013800d, 0x6030000000138015, 0x603000000013801d, 0x6030000000138025, 0x603000000013802d, 0x6030000000138035, 0x603000000013803d, 0x6030000000138045, 0x603000000013804d, 0x6030000000138055, 0x603000000013805d, 0x6030000000138065, 0x603000000013806d, 0x6030000000138075, 0x603000000013807d, 0x6030000000138006, 0x603000000013800e, 0x6030000000138016, 0x603000000013801e, 0x6030000000138026, 0x603000000013802e, 0x6030000000138036, 0x603000000013803e, 0x6030000000138046, 0x603000000013804e, 0x6030000000138056, 0x603000000013805e, 0x6030000000138066, 0x603000000013806e, 0x6030000000138076, 0x603000000013807e, 0x6030000000138007, 0x603000000013800f, 0x6030000000138017, 0x603000000013801f, 0x6030000000138027, 0x603000000013802f, 0x6030000000138037, 0x603000000013803f, 0x6030000000138047, 0x603000000013804f, 0x6030000000138057, 0x603000000013805f, 0x6030000000138067, 0x603000000013806f, 0x6030000000138077, 0x603000000013807f, 0x6030000000138080, 0x6030000000138084, 0x603000000013808c, 0x603000000013809c, 0x60300000001380a4, 0x60300000001383c6, 0x60300000001383ce, 0x60300000001383f6, 0x6030000000139808, 0x6030000000139820, 0x6030000000139828, 0x6030000000139828, 0x603000000013a038, 0x603000000013c000, 0x603000000013c005, 0x603000000013c006, 0x603000000013c008, 0x603000000013c009, 0x603000000013c00a, 0x603000000013c00b, 0x603000000013c00c, 0x603000000013c00d, 0x603000000013c00e, 0x603000000013c00f, 0x603000000013c010, 0x603000000013c011, 0x603000000013c012, 0x603000000013c013, 0x603000000013c014, 0x603000000013c015, 0x603000000013c016, 0x603000000013c017, 0x603000000013c018, 0x603000000013c019, 0x603000000013c01a, 0x603000000013c01c, 0x603000000013c01d, 0x603000000013c01e, 0x603000000013c020, 0x603000000013c021, 0x603000000013c024, 0x603000000013c028, 0x603000000013c029, 0x603000000013c02c, 0x603000000013c02d, 0x603000000013c030, 0x603000000013c031, 0x603000000013c032, 0x603000000013c038, 0x603000000013c039, 0x603000000013c03a, 0x603000000013c080, 0x603000000013c081, 0x603000000013c082, 0x603000000013c085, 0x603000000013c086, 0x603000000013c090, 0x603000000013c091, 0x603000000013c100, 0x603000000013c101, 0x603000000013c102, 0x603000000013c108, 0x603000000013c109, 0x603000000013c10a, 0x603000000013c10b, 0x603000000013c110, 0x603000000013c111, 0x603000000013c112, 0x603000000013c113, 0x603000000013c118, 0x603000000013c119, 0x603000000013c200, 0x603000000013c201, 0x603000000013c208, 0x603000000013c210, 0x6030000000130205, 0x603000000013c212, 0x603000000013c213, 0x6030000000130204, 0x603000000013c214, 0x6030000000130203, 0x603000000013c230, 0x603000000013c288, 0x603000000013c289, 0x603000000013c290, 0x603000000013c298, 0x603000000013c299, 0x603000000013c2a0, 0x603000000013c2a1, 0x603000000013c2a2, 0x603000000013c2a3, 0x603000000013c2a4, 0x603000000013c2a5, 0x603000000013c2a6, 0x603000000013c2a8, 0x603000000013c2a9, 0x603000000013c2aa, 0x603000000013c2ab, 0x603000000013c2b0, 0x603000000013c2b1, 0x603000000013c300, 0x603000000013c3a0, 0x603000000013c4c8, 0x603000000013c4c9, 0x603000000013c4ca, 0x603000000013c4cb, 0x603000000013c4cc, 0x603000000013c4cd, 0x603000000013c4ce, 0x603000000013c4cf, 0x603000000013c4d0, 0x603000000013c4d1, 0x603000000013c4d3, 0x603000000013c4d7, 0x603000000013c4f1, 0x603000000013c4f2, 0x603000000013c4f6, 0x603000000013c510, 0x603000000013c518, 0x603000000013c520, 0x603000000013c521, 0x603000000013c522, 0x603000000013c523, 0x603000000013c524, 0x603000000013c527, 0x603000000013c528, 0x603000000013c529, 0x603000000013c600, 0x603000000013c601, 0x603000000013c602, 0x603000000013c608, 0x603000000013c609, 0x603000000013c640, 0x603000000013c641, 0x603000000013c642, 0x603000000013c643, 0x603000000013c644, 0x603000000013c645, 0x603000000013c646, 0x603000000013c647, 0x603000000013c648, 0x603000000013c649, 0x603000000013c64a, 0x603000000013c64b, 0x603000000013c659, 0x603000000013c65b, 0x603000000013c65d, 0x603000000013c65e, 0x603000000013c65f, 0x603000000013c660, 0x603000000013c661, 0x603000000013c662, 0x603000000013c663, 0x603000000013c664, 0x603000000013c665, 0x603000000013c666, 0x603000000013c667, 0x603000000013c681, 0x603000000013c684, 0x603000000013c685, 0x603000000013c687, 0x603000000013c708, 0x603000000013c800, 0x603000000013c801, 0x603000000013c802, 0x603000000013c804, 0x603000000013c807, 0x603000000013d000, 0x603000000013d801, 0x603000000013d807, 0x603000000013d920, 0x603000000013d921, 0x603000000013da10, 0x603000000013da11, 0x603000000013da15, 0x6030000000131a02, 0x603000000013da16, 0x6030000000131a01, 0x603000000013da17, 0x6030000000131a04, 0x603000000013da20, 0x603000000013da21, 0x603000000013da28, 0x603000000013da29, 0x603000000013dce0, 0x603000000013dce1, 0x603000000013dce2, 0x603000000013dce3, 0x603000000013dce4, 0x603000000013dce5, 0x603000000013dce6, 0x603000000013dce7, 0x603000000013dce8, 0x603000000013dce9, 0x603000000013dcea, 0x603000000013dcf0, 0x603000000013dcf3, 0x603000000013de82, 0x603000000013de83, 0x603000000013de87, 0x603000000013de90, 0x603000000013de91, 0x603000000013de92, 0x603000000013de93, 0x603000000013de94, 0x603000000013de95, 0x603000000013de96, 0x603000000013de98, 0x603000000013de99, 0x603000000013dea0, 0x603000000013dea1, 0x603000000013dea2, 0x603000000013dea3, 0x603000000013dea4, 0x603000000013dea5, 0x603000000013dea6, 0x603000000013dea7, 0x603000000013dea8, 0x603000000013dea9, 0x603000000013deaa, 0x603000000013deab, 0x603000000013deac, 0x603000000013dead, 0x603000000013deae, 0x603000000013deaf, 0x603000000013deb0, 0x603000000013deb1, 0x603000000013deb2, 0x603000000013deb3, 0x603000000013deb4, 0x603000000013deb5, 0x603000000013deb6, 0x603000000013deb7, 0x603000000013deb8, 0x603000000013deb9, 0x603000000013deba, 0x603000000013debb, 0x603000000013debc, 0x603000000013debd, 0x603000000013debe, 0x603000000013debf, 0x603000000013dee0, 0x603000000013dee1, 0x603000000013dee2, 0x603000000013dee3, 0x603000000013dee4, 0x603000000013dee5, 0x603000000013dee6, 0x603000000013dee7, 0x603000000013dee8, 0x603000000013dee9, 0x603000000013deea, 0x603000000013deeb, 0x603000000013deec, 0x603000000013deed, 0x603000000013deee, 0x603000000013deef, 0x603000000013def0, 0x603000000013def1, 0x603000000013def2, 0x603000000013def3, 0x603000000013def4, 0x603000000013def5, 0x603000000013def6, 0x603000000013def7, 0x603000000013def8, 0x603000000013def9, 0x603000000013defa, 0x603000000013defb, 0x603000000013defc, 0x603000000013defd, 0x603000000013defe, 0x603000000013deff, 0x603000000013df00, 0x603000000013df01, 0x603000000013df02, 0x603000000013df05, 0x603000000013df06, 0x603000000013df10, 0x603000000013df11, 0x603000000013df12, 0x603000000013df18, 0x603000000013df19, 0x603000000013df1a, 0x603000000013df40, 0x603000000013df41, 0x603000000013df42, 0x603000000013df43, 0x603000000013df44, 0x603000000013df45, 0x603000000013df46, 0x603000000013df47, 0x603000000013df48, 0x603000000013df49, 0x603000000013df4a, 0x603000000013df4b, 0x603000000013df4c, 0x603000000013df4d, 0x603000000013df4e, 0x603000000013df4f, 0x603000000013df50, 0x603000000013df51, 0x603000000013df52, 0x603000000013df53, 0x603000000013df54, 0x603000000013df55, 0x603000000013df56, 0x603000000013df57, 0x603000000013df58, 0x603000000013df59, 0x603000000013df5a, 0x603000000013df5b, 0x603000000013df5c, 0x603000000013df5d, 0x603000000013df5e, 0x603000000013df5f, 0x603000000013df7f, 0x603000000013df60, 0x603000000013df61, 0x603000000013df62, 0x603000000013df63, 0x603000000013df64, 0x603000000013df65, 0x603000000013df66, 0x603000000013df67, 0x603000000013df68, 0x603000000013df69, 0x603000000013df6a, 0x603000000013df6b, 0x603000000013df6c, 0x603000000013df6d, 0x603000000013df6e, 0x603000000013df6f, 0x603000000013df70, 0x603000000013df71, 0x603000000013df72, 0x603000000013df73, 0x603000000013df74, 0x603000000013df75, 0x603000000013df76, 0x603000000013df77, 0x603000000013df78, 0x603000000013df79, 0x603000000013df7a, 0x603000000013df7b, 0x603000000013df7c, 0x603000000013df7d, 0x603000000013df7e, 0x603000000013df7f, 0x603000000013e000, 0x603000000013e005, 0x603000000013e080, 0x603000000013e081, 0x603000000013e088, 0x603000000013e089, 0x603000000013e08a, 0x603000000013e08b, 0x603000000013e08c, 0x603000000013e08d, 0x603000000013e08e, 0x603000000013e08f, 0x603000000013e090, 0x603000000013e091, 0x603000000013e092, 0x603000000013e099, 0x603000000013e100, 0x603000000013e101, 0x603000000013e102, 0x603000000013e108, 0x603000000013e10a, 0x603000000013e110, 0x603000000013e130, 0x603000000013e132, 0x603000000013e180, 0x603000000013e18c, 0x603000000013e18d, 0x603000000013e18e, 0x603000000013e200, 0x603000000013e201, 0x603000000013e208, 0x603000000013e218, 0x603000000013e219, 0x603000000013e21a, 0x603000000013e21b, 0x603000000013e281, 0x603000000013e288, 0x603000000013e289, 0x603000000013e290, 0x603000000013e293, 0x603000000013e298, 0x603000000013e2b0, 0x603000000013e300, 0x603000000013e304, 0x603000000013e4c8, 0x603000000013e510, 0x603000000013e518, 0x603000000013e520, 0x603000000013e521, 0x603000000013e528, 0x603000000013e530, 0x603000000013e531, 0x603000000013e532, 0x603000000013e533, 0x603000000013e534, 0x603000000013e535, 0x603000000013e536, 0x603000000013e537, 0x603000000013e600, 0x603000000013e601, 0x603000000013e602, 0x603000000013e609, 0x603000000013e640, 0x603000000013e641, 0x603000000013e642, 0x603000000013e643, 0x603000000013e648, 0x603000000013e649, 0x603000000013e64a, 0x603000000013e64b, 0x603000000013e64d, 0x603000000013e658, 0x603000000013e659, 0x603000000013e65a, 0x603000000013e65b, 0x603000000013e65d, 0x603000000013e65f, 0x603000000013e660, 0x603000000013e661, 0x603000000013e662, 0x603000000013e663, 0x603000000013e664, 0x603000000013e665, 0x603000000013e666, 0x603000000013e667, 0x603000000013e668, 0x603000000013e669, 0x603000000013e66a, 0x603000000013e66b, 0x603000000013e66c, 0x603000000013e66d, 0x603000000013e66e, 0x603000000013e66f, 0x603000000013e681, 0x603000000013e682, 0x603000000013e687, 0x603000000013e6c0, 0x603000000013e6c1, 0x603000000013e6c2, 0x603000000013e6c3, 0x603000000013e6c4, 0x603000000013e6c5, 0x603000000013e6c6, 0x603000000013e6c7, 0x603000000013e6c8, 0x603000000013e6c9, 0x603000000013e6ca, 0x603000000013e6cb, 0x603000000013e6cc, 0x603000000013e6cd, 0x603000000013e6ce, 0x603000000013e6cf, 0x603000000013e6d0, 0x603000000013e6d1, 0x603000000013e6d2, 0x603000000013e6d3, 0x603000000013e6d4, 0x603000000013e6d5, 0x603000000013e6d6, 0x603000000013e6d7, 0x603000000013e6d8, 0x603000000013e6d9, 0x603000000013e6da, 0x603000000013e6db, 0x603000000013e6dc, 0x603000000013e6dd, 0x603000000013e6de, 0x603000000013e6df, 0x603000000013e703, 0x603000000013e706, 0x603000000013e708, 0x603000000013e710, 0x603000000013e711, 0x603000000013e712, 0x603000000013e718, 0x603000000013e719, 0x603000000013e71a, 0x603000000013e720, 0x603000000013e721, 0x603000000013e722, 0x603000000013e728, 0x603000000013e729, 0x603000000013e72a, 0x603000000013f080, 0x603000000013f081, 0x603000000013f088, 0x603000000013f089, 0x603000000013f08a, 0x603000000013f090, 0x603000000013f099, 0x603000000013f100, 0x603000000013f102, 0x603000000013f200, 0x603000000013f201, 0x603000000013f208, 0x603000000013f288, 0x603000000013f289, 0x603000000013f290, 0x603000000013f2b0, 0x603000000013f300, 0x603000000013f510, 0x603000000013f518, 0x603000000013f528, 0x603000000013f600, 0x603000000013f601, 0x603000000013f602, 0x603000000013f664, 0x603000000013f665, 0x603000000013f667, 0x603000000013f682, 0x603000000013f687, 0x603000000013ff10, 0x603000000013ff11, 0x603000000013ff12 # End of register descriptions generated by tools/arm64/registers.go