github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/sys/linux/dev_kvm.txt (about) 1 # Copyright 2015 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 meta arches["386", "amd64", "arm64", "mips64le", "ppc64le", "s390x"] 5 6 include <linux/kvm.h> 7 include <linux/kvm_host.h> 8 include <uapi/linux/fcntl.h> 9 include <asm/mce.h> 10 11 resource fd_kvm[fd] 12 resource fd_kvmvm[fd] 13 resource fd_kvmcpu[fd] 14 resource fd_kvmdev[fd] 15 resource fd_kvm_guest_memfd[fd] 16 resource vcpu_mmap_size[int64] 17 18 openat$kvm(fd const[AT_FDCWD], file ptr[in, string["/dev/kvm"]], flags flags[open_flags], mode const[0]) fd_kvm 19 20 # On x86, KVM_CREATE_VM accepts types 0 to 3. 21 # On ARM64 it is either 0 (default size of 40 bits) or the guest address space size in bits, from 32 to the platform limit. 22 ioctl$KVM_CREATE_VM(fd fd_kvm, cmd const[KVM_CREATE_VM], type intptr[0:64]) fd_kvmvm 23 ioctl$KVM_CHECK_EXTENSION(fd fd_kvm, cmd const[KVM_CHECK_EXTENSION], arg intptr) 24 ioctl$KVM_CHECK_EXTENSION_VM(fd fd_kvmvm, cmd const[KVM_CHECK_EXTENSION], arg intptr) 25 ioctl$KVM_GET_VCPU_MMAP_SIZE(fd fd_kvm, cmd const[KVM_GET_VCPU_MMAP_SIZE]) vcpu_mmap_size 26 27 ioctl$KVM_GET_API_VERSION(fd fd_kvm, cmd const[KVM_GET_API_VERSION], type const[0]) 28 ioctl$KVM_CREATE_VCPU(fd fd_kvmvm, cmd const[KVM_CREATE_VCPU], id intptr[0:2]) fd_kvmcpu 29 ioctl$KVM_GET_DIRTY_LOG(fd fd_kvmvm, cmd const[KVM_GET_DIRTY_LOG], arg ptr[inout, kvm_dirty_log]) 30 ioctl$KVM_CLEAR_DIRTY_LOG(fd fd_kvmvm, cmd const[KVM_CLEAR_DIRTY_LOG], arg ptr[in, kvm_clear_dirty_log]) 31 ioctl$KVM_RESET_DIRTY_RINGS(fd fd_kvmvm, cmd const[KVM_RESET_DIRTY_RINGS]) 32 ioctl$KVM_CREATE_IRQCHIP(fd fd_kvmvm, cmd const[KVM_CREATE_IRQCHIP]) 33 ioctl$KVM_IRQ_LINE(fd fd_kvmvm, cmd const[KVM_IRQ_LINE], arg ptr[in, kvm_irq_level]) 34 ioctl$KVM_IRQ_LINE_STATUS(fd fd_kvmvm, cmd const[KVM_IRQ_LINE_STATUS], arg ptr[inout, kvm_irq_level]) 35 ioctl$KVM_SET_USER_MEMORY_REGION(fd fd_kvmvm, cmd const[KVM_SET_USER_MEMORY_REGION], arg ptr[in, kvm_userspace_memory_region]) 36 ioctl$KVM_SET_USER_MEMORY_REGION2(fd fd_kvmvm, cmd const[KVM_SET_USER_MEMORY_REGION2], arg ptr[in, kvm_userspace_memory_region2]) 37 ioctl$KVM_PPC_GET_PVINFO(fd fd_kvmvm, cmd const[KVM_PPC_GET_PVINFO], arg buffer[out]) 38 ioctl$KVM_SET_GSI_ROUTING(fd fd_kvmvm, cmd const[KVM_SET_GSI_ROUTING], arg ptr[in, kvm_irq_routing]) (no_squash) 39 ioctl$KVM_ASSIGN_SET_MSIX_NR(fd fd_kvmvm, cmd const[KVM_ASSIGN_SET_MSIX_NR], arg ptr[in, kvm_assigned_msix_nr]) 40 ioctl$KVM_ASSIGN_SET_MSIX_ENTRY(fd fd_kvmvm, cmd const[KVM_ASSIGN_SET_MSIX_ENTRY], arg ptr[in, kvm_assigned_msix_entry]) 41 ioctl$KVM_IOEVENTFD(fd fd_kvmvm, cmd const[KVM_IOEVENTFD], arg ptr[in, kvm_ioeventfd]) 42 ioctl$KVM_SIGNAL_MSI(fd fd_kvmvm, cmd const[KVM_SIGNAL_MSI], arg ptr[in, kvm_msi]) 43 ioctl$KVM_PPC_GET_SMMU_INFO(fd fd_kvmvm, cmd const[KVM_PPC_GET_SMMU_INFO], arg buffer[out]) 44 ioctl$KVM_IRQFD(fd fd_kvmvm, cmd const[KVM_IRQFD], arg ptr[in, kvm_irqfd]) 45 ioctl$KVM_PPC_ALLOCATE_HTAB(fd fd_kvmvm, cmd const[KVM_PPC_ALLOCATE_HTAB], arg ptr[in, int32]) 46 ioctl$KVM_CREATE_DEVICE(fd fd_kvmvm, cmd const[KVM_CREATE_DEVICE], arg ptr[inout, kvm_create_device]) 47 ioctl$KVM_REGISTER_COALESCED_MMIO(fd fd_kvmvm, cmd const[KVM_REGISTER_COALESCED_MMIO], arg ptr[in, kvm_coalesced_mmio_zone]) 48 ioctl$KVM_UNREGISTER_COALESCED_MMIO(fd fd_kvmvm, cmd const[KVM_UNREGISTER_COALESCED_MMIO], arg ptr[in, kvm_coalesced_mmio_zone]) 49 ioctl$KVM_GET_STATS_FD_vm(fd fd_kvmvm, cmd const[KVM_GET_STATS_FD]) fd 50 ioctl$KVM_GET_STATS_FD_cpu(fd fd_kvmcpu, cmd const[KVM_GET_STATS_FD]) fd 51 52 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]]]) 53 ioctl$KVM_CAP_HALT_POLL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_HALT_POLL, int64]]) 54 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]]]) 55 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]]]) 56 57 # TODO: need more precise handling for arguments below 58 ioctl$KVM_CAP_PTP_KVM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_PTP_KVM, void]]) 59 60 ioctl$KVM_RUN(fd fd_kvmcpu, cmd const[KVM_RUN], arg const[0]) 61 ioctl$KVM_GET_REGS(fd fd_kvmcpu, cmd const[KVM_GET_REGS], arg ptr[out, kvm_regs]) 62 ioctl$KVM_SET_REGS(fd fd_kvmcpu, cmd const[KVM_SET_REGS], arg ptr[in, kvm_regs]) 63 ioctl$KVM_GET_SREGS(fd fd_kvmcpu, cmd const[KVM_GET_SREGS], arg ptr[out, kvm_sregs]) 64 ioctl$KVM_SET_SREGS(fd fd_kvmcpu, cmd const[KVM_SET_SREGS], arg ptr[in, kvm_sregs]) 65 ioctl$KVM_INTERRUPT(fd fd_kvmcpu, cmd const[KVM_INTERRUPT], arg ptr[in, int32]) 66 ioctl$KVM_SET_SIGNAL_MASK(fd fd_kvmcpu, cmd const[KVM_SET_SIGNAL_MASK], arg ptr[in, kvm_signal_mask]) (no_squash) 67 ioctl$KVM_GET_VCPU_EVENTS(fd fd_kvmcpu, cmd const[KVM_GET_VCPU_EVENTS], arg ptr[out, kvm_vcpu_events]) 68 ioctl$KVM_SET_VCPU_EVENTS(fd fd_kvmcpu, cmd const[KVM_SET_VCPU_EVENTS], arg ptr[in, kvm_vcpu_events]) 69 ioctl$KVM_GET_MP_STATE(fd fd_kvmcpu, cmd const[KVM_GET_MP_STATE], arg ptr[out, int32]) 70 ioctl$KVM_SET_MP_STATE(fd fd_kvmcpu, cmd const[KVM_SET_MP_STATE], arg ptr[in, flags[kvm_mp_state, int32]]) 71 ioctl$KVM_DIRTY_TLB(fd fd_kvmcpu, cmd const[KVM_DIRTY_TLB], arg ptr[in, kvm_dirty_tlb]) 72 # NEED: arch constraints for syscalls. These are s390-specific, but consts are present on all arches, so they are not disabled on other arches. 73 ioctl$KVM_S390_UCAS_MAP(fd fd_kvmcpu, cmd const[KVM_S390_UCAS_MAP], arg ptr[in, kvm_s390_ucas_mapping]) 74 ioctl$KVM_S390_UCAS_UNMAP(fd fd_kvmcpu, cmd const[KVM_S390_UCAS_UNMAP], arg ptr[in, kvm_s390_ucas_mapping]) 75 ioctl$KVM_S390_VCPU_FAULT(fd fd_kvmcpu, cmd const[KVM_S390_VCPU_FAULT], arg ptr[in, int64]) 76 ioctl$KVM_SET_ONE_REG(fd fd_kvmcpu, cmd const[KVM_SET_ONE_REG], arg ptr[in, kvm_one_reg]) 77 ioctl$KVM_GET_ONE_REG(fd fd_kvmcpu, cmd const[KVM_GET_ONE_REG], arg ptr[in, kvm_one_reg]) 78 ioctl$KVM_KVMCLOCK_CTRL(fd fd_kvmcpu, cmd const[KVM_KVMCLOCK_CTRL]) 79 ioctl$KVM_S390_INTERRUPT_CPU(fd fd_kvmcpu, cmd const[KVM_S390_INTERRUPT], arg ptr[in, kvm_s390_interrupt]) 80 ioctl$KVM_GET_REG_LIST(fd fd_kvmcpu, cmd const[KVM_GET_REG_LIST], arg ptr[inout, kvm_reg_list]) 81 ioctl$KVM_SET_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) 82 ioctl$KVM_GET_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) 83 ioctl$KVM_HAS_DEVICE_ATTR(fd fd_kvmdev, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr]) 84 85 # From https://docs.kernel.org/virt/kvm/devices/vcpu.html: 86 # The virtual cpu “device” also accepts the ioctls KVM_SET_DEVICE_ATTR, KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. 87 # The interface uses the same struct kvm_device_attr as other devices, but targets VCPU-wide settings and controls. 88 ioctl$KVM_SET_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) 89 ioctl$KVM_GET_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) 90 ioctl$KVM_HAS_DEVICE_ATTR_vcpu(fd fd_kvmcpu, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vcpu]) 91 92 # From https://docs.kernel.org/virt/kvm/devices/vm.html: 93 # The virtual machine “device” also accepts the ioctls KVM_SET_DEVICE_ATTR, KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. 94 # The interface uses the same struct kvm_device_attr as other devices, but targets VM-wide settings and controls. 95 ioctl$KVM_SET_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) 96 ioctl$KVM_GET_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) 97 ioctl$KVM_HAS_DEVICE_ATTR_vm(fd fd_kvmvm, cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr_vm]) 98 99 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 100 ioctl$KVM_PRE_FAULT_MEMORY(fd fd_kvmcpu, cmd const[KVM_PRE_FAULT_MEMORY], arg ptr[inout, kvm_pre_fault_memory]) 101 102 kvm_mem_region_flags = KVM_MEM_LOG_DIRTY_PAGES, KVM_MEM_READONLY, KVM_MEM_GUEST_MEMFD 103 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 104 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 105 kvm_ioeventfd_flags = KVM_IOEVENTFD_FLAG_DATAMATCH, KVM_IOEVENTFD_FLAG_PIO, KVM_IOEVENTFD_FLAG_DEASSIGN, KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY 106 kvm_ioeventfd_len = 0, 1, 2, 4, 8 107 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 108 kvm_device_flags = 0, KVM_CREATE_DEVICE_TEST 109 kvm_guest_debug_flags = KVM_GUESTDBG_ENABLE, KVM_GUESTDBG_SINGLESTEP, KVM_GUESTDBG_USE_SW_BP, KVM_GUESTDBG_USE_HW_BP, KVM_GUESTDBG_USE_HW, KVM_GUESTDBG_INJECT_DB, KVM_GUESTDBG_INJECT_BP, KVM_GUESTDBG_EXIT_PENDING, KVM_GUESTDBG_BLOCKIRQ 110 kvm_guest_selector = 0, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16 111 kvm_dirty_log_protect = KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE, KVM_DIRTY_LOG_INITIALLY_SET 112 kvm_dirty_log_sizes = 4096, 8192, 16384, 32768, 65536 113 kvm_mem_slots = 0, 1, 2, 3, 4, 5, 509, 510, 511, 10000, 65536, 65537, 65538, 65539, 65540, 66047, 66048, 66049 114 kvm_guest_addr_size = 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x100000 115 kvm_x86_cr0 = 1, 2, 4, 8, 16, 32, 65536, 262144, 536870912, 1073741824, 2147483648 116 kvm_x86_cr4 = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 8192, 16384, 65536, 131072, 262144, 1048576, 2097152, 4194304 117 kvm_x86_efer = 1, 256, 1024, 2048, 4096, 8192, 16384, 32768 118 kvm_x86_rflags = 1, 2, 4, 16, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152 119 120 # Pseudo call that setups VCPU into a reasonable interesting state for execution. 121 # The interface is designed for extensibility so that addition of new options does not invalidate all existing programs. 122 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]) 123 124 resource kvm_run_ptr[int64] 125 define KVM_RUN_SIZE sizeof(struct kvm_run) 126 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 127 _ = __NR_mmap2 128 129 define KVM_EXIT_MMIO_OFFSET offsetof(struct kvm_run, mmio) 130 define KVM_EXIT_MMIO_SIZE sizeof_field(struct kvm_run, mmio) 131 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]) 132 133 define KVM_EXIT_HYPERCALL_OFFSET offsetof(struct kvm_run, hypercall) 134 define KVM_EXIT_HYPERCALL_SIZE sizeof_field(struct kvm_run, hypercall) 135 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]) 136 137 kvm_text_ppc64 { 138 typ const[0, intptr] 139 text ptr[in, text[ppc64]] 140 size len[text, intptr] 141 } 142 143 kvm_setup_opt_ppc64 [ 144 # unions need at least 2 fields, but we have only 1 now, but we want to have it as union for future extention 145 featur1 kvm_setup_opt_ppc64_feature 146 featur2 kvm_setup_opt_ppc64_feature 147 ] 148 149 kvm_setup_opt_ppc64_feature { 150 typ const[1, int64] 151 val int64 152 } 153 154 kvm_setup_flags_ppc64 = KVM_SETUP_PPC64_LE, KVM_SETUP_PPC64_IR, KVM_SETUP_PPC64_DR, KVM_SETUP_PPC64_PR, KVM_SETUP_PPC64_PID1 155 156 # Little endian 157 define KVM_SETUP_PPC64_LE (1<<0) 158 # Paging for instructions 159 define KVM_SETUP_PPC64_IR (1<<1) 160 # Paging for data 161 define KVM_SETUP_PPC64_DR (1<<2) 162 # Run with MSR_PR (==usermode) 163 define KVM_SETUP_PPC64_PR (1<<3) 164 # Set PID=1 i.e. not kernel's PID 165 define KVM_SETUP_PPC64_PID1 (1<<4) 166 167 type kvm_guest_debug[ARCH] { 168 ctrl flags[kvm_guest_debug_flags, int32] 169 pad const[0, int32] 170 arch ARCH 171 } 172 173 kvm_reg_list { 174 n len[reg, int64] 175 reg array[int64] 176 } 177 178 kvm_device_attr [ 179 attr_arm64 kvm_device_attr_arm64 180 attr_other kvm_device_attr_generic 181 ] 182 183 kvm_device_attr_generic { 184 flags const[0, int32] 185 group int32 186 attr int64 187 addr ptr64[inout, int64] 188 } 189 190 kvm_device_attr_arm64 { 191 flags const[0, int32] 192 group flags[kvm_device_attr_arm64_groups, int32] 193 attr flags[kvm_device_attr_arm64_attrs, int64] 194 addr ptr64[inout, int64] 195 } 196 197 # Assorted device attributes from 198 # - https://docs.kernel.org/virt/kvm/devices/arm-vgic-its.html, 199 # - https://docs.kernel.org/virt/kvm/devices/arm-vgic.html, 200 # - https://docs.kernel.org/virt/kvm/devices/arm-vgic-v3.html 201 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 202 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 203 204 kvm_device_attr_vm [ 205 attr_arm64 kvm_device_attr_vm_arm64 206 attr_other kvm_device_attr_generic 207 ] 208 209 kvm_device_attr_vcpu [ 210 attr_pmu_irq kvm_vcpu_attr_pmu_irq 211 attr_pmu_init kvm_vcpu_attr_pmu_init 212 attr_pmu_filter kvm_vcpu_attr_pmu_filter 213 attr_set_pmu kvm_vcpu_attr_set_pmu 214 attr_irq_timer kvm_vcpu_attr_irq_timer 215 attr_pvtime_ipa kvm_vcpu_attr_pvtime_ipa 216 attr_other kvm_device_attr_generic 217 ] 218 219 kvm_vm_attr_group_arm64 = KVM_ARM_VM_SMCCC_CTRL 220 kvm_vm_attr_attr_arm64 = KVM_ARM_VM_SMCCC_FILTER 221 222 # TODO(glider): as of now the only supported argument is kvm_smccc_filter. 223 # Need to make addr point to a union when this changes. 224 kvm_device_attr_vm_arm64 { 225 flags const[0, int32] 226 group flags[kvm_vm_attr_group_arm64, int32] 227 attr flags[kvm_vm_attr_attr_arm64, int64] 228 addr ptr64[in, kvm_smccc_filter] 229 } 230 231 kvm_vcpu_attr_pmu_irq { 232 flags const[0, int32] 233 group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] 234 attr const[KVM_ARM_VCPU_PMU_V3_IRQ, int64] 235 addr ptr64[in, int32] 236 } 237 238 kvm_vcpu_attr_pmu_init { 239 flags const[0, int32] 240 group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] 241 attr const[KVM_ARM_VCPU_PMU_V3_INIT, int64] 242 addr const[0, int64] 243 } 244 245 kvm_vcpu_attr_pmu_filter { 246 flags const[0, int32] 247 group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] 248 attr const[KVM_ARM_VCPU_PMU_V3_FILTER, int64] 249 addr ptr64[in, kvm_pmu_event_filter] 250 } 251 252 kvm_vcpu_attr_set_pmu { 253 flags const[0, int32] 254 group const[KVM_ARM_VCPU_PMU_V3_CTRL, int32] 255 attr const[KVM_ARM_VCPU_PMU_V3_SET_PMU, int64] 256 addr ptr64[in, int32] 257 } 258 259 kvm_vcpu_timer_attributes = KVM_ARM_VCPU_TIMER_IRQ_VTIMER, KVM_ARM_VCPU_TIMER_IRQ_PTIMER 260 261 kvm_vcpu_attr_irq_timer { 262 flags const[0, int32] 263 group const[KVM_ARM_VCPU_TIMER_CTRL, int32] 264 attr flags[kvm_vcpu_timer_attributes, int64] 265 addr ptr64[in, int32[16:31]] 266 } 267 268 kvm_vcpu_attr_pvtime_ipa { 269 flags const[0, int32] 270 group const[KVM_ARM_VCPU_PVTIME_CTRL, int32] 271 attr const[KVM_ARM_VCPU_PVTIME_IPA, int64] 272 addr int64 273 } 274 275 kvm_pmu_event_filter = KVM_PMU_EVENT_ALLOW, KVM_PMU_EVENT_DENY 276 277 kvm_pmu_event_filter { 278 base_event int16 279 nevents int16 280 action flags[kvm_pmu_event_filter, int8] 281 pad array[const[0, int8], 3] 282 } 283 284 kvm_smccc_filter_action = KVM_SMCCC_FILTER_HANDLE, KVM_SMCCC_FILTER_DENY, KVM_SMCCC_FILTER_FWD_TO_USER 285 286 kvm_smccc_filter { 287 base int32 288 nr_functions int32 289 action flags[kvm_smccc_filter_action, int8] 290 pad array[const[0, int8], 15] 291 } 292 293 kvm_create_guest_memfd { 294 size int64 295 flags int64 296 reserved array[const[0, int64], 6] 297 } 298 299 kvm_pre_fault_memory { 300 gpa flags[kvm_guest_addrs, int64] 301 size flags[kvm_guest_addr_size, int64] 302 flags const[0, int64] 303 pad array[const[0, int64], 5] 304 } 305 306 kvm_create_device { 307 type flags[kvm_device_type, int32] (in) 308 fd fd_kvmdev (out) 309 flags flags[kvm_device_flags, int32] (in) 310 } 311 312 kvm_s390_interrupt { 313 type int32 314 parm int32 315 parm64 int64 316 } 317 318 kvm_irqfd_flags = KVM_IRQFD_FLAG_DEASSIGN, KVM_IRQFD_FLAG_RESAMPLE 319 320 kvm_irqfd { 321 fd fd_event 322 gsi int32 323 flags flags[kvm_irqfd_flags, int32] 324 rfd fd_event 325 pad array[const[0, int8], 16] 326 } 327 328 kvm_msi_flags = 0, KVM_MSI_VALID_DEVID 329 330 kvm_msi { 331 addrlo flags[kvm_guest_addrs, int32] 332 addrhi flags[kvm_guest_addrs, int32] 333 data int32 334 flags flags[kvm_msi_flags, int32] 335 devid int32 336 pad array[const[0, int8], 12] 337 } 338 339 kvm_one_reg [ 340 # Constants from https://docs.kernel.org/virt/kvm/api.html 341 arm64_core kvm_one_reg_arm64_srange[0x6030000000100000:0x6030000000100050, 2] 342 arm64_fp kvm_one_reg_arm64_range[0x6040000000100054:0x60400000001000d0] 343 arm64_fp_extra kvm_one_reg_arm64_range[0x60200000001000d4:0x60200000001000d5] 344 # Got 0x602000000011000d from KVM_GET_REG_LIST on QEMU 345 arm64_ccsidr kvm_one_reg_arm64_range[0x6020000000110000:0x602000000011000d] 346 arm64_sys kvm_one_reg_arm64[kvm_regs_arm64_sys] 347 arm64_extra kvm_one_reg_arm64[kvm_regs_arm64_extra] 348 arm64_bitmap kvm_one_reg_arm64_range[0x6030000000160000:0x6030000000160002] 349 arm64_fw kvm_one_reg_arm64_range[0x6030000000140000:0x6030000000140003] 350 arm64_sve kvm_one_reg_arm64_range[0x6080000000150000:0x6080000000150620] 351 arm64_sve_vls kvm_one_reg_arm64_range[0x606000000015ffff] 352 other kvm_one_reg_other 353 ] 354 355 type kvm_one_reg_arm64[FTYPE] { 356 id flags[FTYPE, int64] 357 addr ptr64[inout, int64] 358 } 359 360 type kvm_one_reg_arm64_range[RANGE] { 361 id int64[RANGE] 362 addr ptr64[inout, int64] 363 } 364 365 type kvm_one_reg_arm64_srange[RANGE, STEP] { 366 id int64[RANGE, STEP] 367 addr ptr64[inout, int64] 368 } 369 370 kvm_one_reg_other { 371 id int64 372 addr ptr64[inout, int64] 373 } 374 375 kvm_s390_ucas_mapping { 376 uaddr int64 377 vaddr int64 378 len int64 379 } 380 381 kvm_dirty_tlb { 382 bitmap int64 383 n int32 384 } 385 386 kvm_ioeventfd { 387 datam int64 388 addr flags[kvm_guest_addrs, int64] 389 len flags[kvm_ioeventfd_len, int32] 390 fd fd_event 391 flags flags[kvm_ioeventfd_flags, int32] 392 pad array[const[0, int8], 36] 393 } 394 395 kvm_assigned_msix_entry { 396 devid int32 397 gsi int32 398 entry int16 399 padding array[const[0, int16], 3] 400 } 401 402 kvm_assigned_msix_nr { 403 devid int32 404 entnr int16 405 } 406 407 kvm_irq_routing { 408 nr len[entries, int32] 409 flags const[0, int32] 410 entries array[kvm_irq_routing_entry] 411 } 412 413 kvm_irq_routing_entry { 414 gsi int32 415 type flags[kvm_irq_routing_entry_type, int32] 416 flags flags[kvm_msi_flags, int32] 417 pad const[0, int32] 418 u kvm_irq_routing_entry_u 419 } 420 421 kvm_irq_routing_entry_u [ 422 irqchip kvm_irq_routing_irqchip 423 msi kvm_irq_routing_msi 424 adapter kvm_irq_routing_s390_adapter 425 sint kvm_irq_routing_hv_sint 426 ] 427 428 kvm_irq_routing_irqchip { 429 irqchip int32 430 pin int32 431 } 432 433 kvm_irq_routing_msi { 434 address_lo int32 435 address_hi int32 436 data int32 437 devid int32 438 } 439 440 kvm_irq_routing_s390_adapter { 441 indaddr int64 442 saddr int64 443 indoff int64 444 soff int32 445 aid int32 446 } 447 448 kvm_irq_routing_hv_sint { 449 vcpu int32 450 sint int32 451 } 452 453 type kvm_enable_cap[CAP, ARGS] { 454 cap const[CAP, int32] 455 flags const[0, int32] 456 args ARGS 457 } [align[8], size[KVM_ENABLE_CAP_SIZE]] 458 459 define KVM_ENABLE_CAP_SIZE sizeof(struct kvm_enable_cap) 460 461 kvm_userspace_memory_region { 462 slot flags[kvm_mem_slots, int32] 463 flags flags[kvm_mem_region_flags, int32] 464 paddr flags[kvm_guest_addrs, int64] 465 size len[addr, int64] 466 addr vma64[1:2] 467 } 468 469 kvm_userspace_memory_region2 { 470 slot flags[kvm_mem_slots, int32] 471 flags flags[kvm_mem_region_flags, int32] 472 paddr flags[kvm_guest_addrs, int64] 473 size len[addr, int64] 474 addr vma64[1:2] 475 guest_memfd_offset int64 476 guest_memfd fd_kvm_guest_memfd 477 pad1 const[0, int32] 478 pad2 array[const[0, int64], 14] 479 } 480 481 # https://docs.kernel.org/virt/kvm/api.html#kvm-get-vcpu-events 482 kvm_vcpu_events_x86 { 483 exinjec int8 484 exnr int8 485 exhec int8 486 pad1 const[0, int8] 487 exec int32 488 489 ininjec int8 490 innr int8 491 insoft int8 492 inshad int8 493 494 nmiinj int8 495 nmipend int8 496 nmimask int8 497 pad2 const[0, int8] 498 499 sipi_vector int32 500 flags int32 501 502 smismm int8 503 smipend int8 504 smiinsi int8 505 smilatc int8 506 507 reserved array[const[0, int8], 27] 508 exception_has_payload int8 509 exception_payload int64 510 } 511 512 kvm_vcpu_events_arm64 { 513 serror_pending int8 514 serror_has_esr int8 515 ext_dabt_pending int8 516 pad array[const[0, int8], 5] 517 serror_esr int64 518 reserved array[const[0, int32], 12] 519 } 520 521 kvm_vcpu_events [ 522 x86 kvm_vcpu_events_x86 523 arm64 kvm_vcpu_events_arm64 524 ] 525 526 kvm_irq_level { 527 irq int32 528 level int32 529 } 530 531 kvm_signal_mask { 532 len len[sigset, int32] 533 sigset array[int8] 534 } 535 536 kvm_dirty_log { 537 slot flags[kvm_mem_slots, int32] 538 pad const[0, int32] 539 bitmap vma64 540 } 541 542 # num_pages and first_page must be multiples of 64, 543 # see https://docs.kernel.org/virt/kvm/api.html#kvm-clear-dirty-log-vm-ioctl 544 kvm_clear_dirty_log { 545 slot flags[kvm_mem_slots, int32] 546 num_pages int32[0:1024, 64] 547 first_page int32[0:1024, 64] 548 # Allocate 1024 bits regardless of num_pages. 549 bitmap ptr[in, array[int64, 128]] 550 } 551 552 kvm_regs { 553 gp array[int64, 16] 554 rip flags[kvm_guest_addrs, int64] 555 rflags flags[kvm_x86_rflags, int64] 556 } 557 558 kvm_sregs { 559 cs kvm_segment 560 ds kvm_segment 561 es kvm_segment 562 fs kvm_segment 563 gs kvm_segment 564 ss kvm_segment 565 tr kvm_segment 566 ldt kvm_segment 567 gdt kvm_dtable 568 idt kvm_dtable 569 cr0 flags[kvm_x86_cr0, int64] 570 cr2 const[0, int64] 571 # TODO: this should point to page table 572 cr3 flags[kvm_guest_addrs, int64] 573 cr4 flags[kvm_x86_cr4, int64] 574 cr8 int64[0:15] 575 efer flags[kvm_x86_efer, int64] 576 apic flags[kvm_guest_addrs, int64] 577 intr array[int64, 4] 578 } 579 580 kvm_segment { 581 base flags[kvm_guest_addrs, int64] 582 limit flags[kvm_guest_addrs, int32] 583 select flags[kvm_guest_selector, int16] 584 type int8 585 present int8 586 dpl int8 587 db int8 588 s int8 589 l int8 590 g int8 591 avl int8 592 unusabl int8 593 padding const[0, int8] 594 } 595 596 kvm_dtable { 597 base flags[kvm_guest_addrs, int64] 598 limit int16 599 pad array[const[0, int16], 3] 600 } 601 602 kvm_coalesced_mmio_zone { 603 addr flags[kvm_guest_addrs, int64] 604 size flags[kvm_guest_addr_size, int32] 605 pio_or_pad int32[0:1] 606 } 607 608 # pkg/ifuzz/pseudo.go also knows this list 609 define VMCS12_SIZE 0x1000 610 611 # Deprecated consts. 612 # These were removed in a5d3df8ae13. 613 614 define KVM_ASSIGN_DEV_IRQ 0x4040AE70 615 define KVM_ASSIGN_PCI_DEVICE 0x8040AE69 616 define KVM_ASSIGN_SET_INTX_MASK 0x4040AEA4 617 define KVM_ASSIGN_SET_MSIX_ENTRY 0x4010AE74 618 define KVM_ASSIGN_SET_MSIX_NR 0x4008AE73 619 define KVM_DEASSIGN_DEV_IRQ 0x4040AE75 620 define KVM_DEASSIGN_PCI_DEVICE 0x4040AE72 621 # Register descriptions generated by tools/arm64/registers.go 622 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 623 # Extra registers that KVM_GET_REG_LIST prints on QEMU 624 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 625 # End of register descriptions generated by tools/arm64/registers.go