Lines Matching +full:spi +full:- +full:hv
1 The Definitive KVM (Kernel-based Virtual Machine) API Documentation
5 ----------------------
10 - System ioctls: These query and set global attributes which affect the
14 - VM ioctls: These query and set attributes that affect an entire virtual
21 - vcpu ioctls: These query and set attributes that control the operation
27 - device ioctls: These query and set attributes that control the operation
34 -------------------
55 -------------
59 facility that allows backward-compatible extensions to the API to be
69 ------------------
82 the ioctl returns -ENOTTY.
138 Returns: 0 on success; -1 on error
204 Returns: 0 on success, -1 on error
215 Returns: vcpu fd on success, -1 on error
221 the KVM_CHECK_EXTENSION ioctl() at run-time.
223 KVM_CAP_MAX_VCPUS of the KVM_CHECK_EXTENSION ioctl() at run-time.
231 KVM_CAP_MAX_VCPU_ID of the KVM_CHECK_EXTENSION ioctl() at run-time.
246 single-threaded guest vcpus, it should make all vcpu ids be a multiple
261 Returns: 0 on success, -1 on error
278 If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
290 Returns: 0 (success), -1 (error)
301 Returns: 0 on success, -1 on error
318 Returns: 0 on success, -1 on error
348 Returns: 0 on success, -1 on error
361 Returns: 0 on success, -1 on error
376 /* ppc -- see arch/powerpc/include/uapi/asm/kvm.h */
389 Returns: 0 on success, -1 on error
401 Returns: 0 on success, -1 on error
438 -EEXIST if an interrupt is already enqueued
439 -EINVAL the the irq number is invalid
440 -ENXIO if the PIC is in the kernel
441 -EFAULT if the pointer is invalid
444 ioctl is useful if the in-kernel PIC is not used.
485 Returns: -1 on error
497 -1 on error
500 Reads the values of MSR-based features that are available for the VM. This
502 The list of msr-based features can be obtained using KVM_GET_MSR_FEATURE_INDEX_LIST
506 Reads model-specific registers from the vcpu. Supported msr indices can
533 Returns: 0 on success, -1 on error
535 Writes model-specific registers to the vcpu. See KVM_GET_MSRS for the
549 Returns: 0 on success, -1 on error
578 Returns: 0 on success, -1 on error
583 their traditional behaviour) will cause KVM_RUN to return with -EINTR.
601 Returns: 0 on success, -1 on error
627 Returns: 0 on success, -1 on error
653 Returns: 0 on success, -1 on error
657 future vcpus to have a local APIC. IRQ routing for GSIs 0-15 is set to both
658 PIC and IOAPIC; GSI 16-23 only go to the IOAPIC.
674 Returns: 0 on success, -1 on error
678 been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered
681 On real hardware, interrupt pins can be active-low or active-high. This
686 (active-low/active-high) for level-triggered interrupts, and KVM used
688 active-low interrupts, the above convention is now valid on x86 too.
690 should not present interrupts to the guest as active-low unless this
691 capability is present (or unless it is not using the in-kernel irqchip,
696 in-kernel irqchip (GIC), and for in-kernel irqchip can tell the GIC to
704 - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ
705 - irq_type[1]: in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.)
707 - irq_type[2]: in-kernel GIC: PPI, irq_id between 16 and 31 (incl.)
728 Returns: 0 on success, -1 on error
750 Returns: 0 on success, -1 on error
772 Returns: 0 on success, -1 on error
777 page of a blob (32- or 64-bit, depending on the vcpu mode) to guest
797 Returns: 0 on success, -1 on error
827 Returns: 0 on success, -1 on error
847 Returns: 0 on success, -1 on error
886 - KVM_VCPUEVENT_VALID_SHADOW may be set in the flags field to signal that
889 - KVM_VCPUEVENT_VALID_SMM may be set in the flags field to signal that
906 guest-visible registers. It is not possible to 'cancel' an SError that has been
909 A device being emulated in user-space may also wish to generate an SError. To do
910 this the events structure can be populated by user-space. The current state
919 always have a non-zero value when read, and the agent making an SError pending
921 the system supports KVM_CAP_ARM_INJECT_SERROR_ESR, but user-space sets the events
925 -EINVAL. Setting anything other than the lower 24bits of exception.serror_esr
926 will return -EINVAL.
946 Returns: 0 on success, -1 on error
958 suppress overwriting the current in-kernel state. The bits are:
960 KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
961 KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
962 KVM_VCPUEVENT_VALID_SMM - transfer the smi sub-struct.
984 Returns: 0 on success, -1 on error
1003 Returns: 0 on success, -1 on error
1017 Returns: 0 on success, -1 on error
1035 Bits 0-15 of "slot" specifies the slot id and this value should be
1040 If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of "slot"
1060 to make a new slot read-only. In this case, writes to this memory will be
1079 Returns: 0 on success, -1 on error
1081 This ioctl defines the physical address of a three-page region in the guest
1087 This ioctl is required on Intel-based hosts. This is needed on Intel hardware
1099 Returns: 0 on success; -1 on error
1128 The vcpu ioctl should be used for vcpu-specific capabilities, the vm ioctl
1129 for vm-wide capabilities.
1137 Returns: 0 on success; -1 on error
1148 - KVM_MP_STATE_RUNNABLE: the vcpu is currently running [x86,arm/arm64]
1149 - KVM_MP_STATE_UNINITIALIZED: the vcpu is an application processor (AP)
1151 - KVM_MP_STATE_INIT_RECEIVED: the vcpu has received an INIT signal, and is
1153 - KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and
1155 - KVM_MP_STATE_SIPI_RECEIVED: the vcpu has just received a SIPI (vector
1157 - KVM_MP_STATE_STOPPED: the vcpu is stopped [s390,arm/arm64]
1158 - KVM_MP_STATE_CHECK_STOP: the vcpu is in a special error state [s390]
1159 - KVM_MP_STATE_OPERATING: the vcpu is operating (running or halted)
1161 - KVM_MP_STATE_LOAD: the vcpu is in a special load/startup state
1165 in-kernel irqchip, the multiprocessing state must be maintained by userspace on
1179 Returns: 0 on success; -1 on error
1185 in-kernel irqchip, the multiprocessing state must be maintained by userspace on
1199 Returns: 0 on success, -1 on error
1201 This ioctl defines the physical address of a one-page region in the guest
1210 This ioctl is required on Intel-based hosts. This is needed on Intel hardware
1222 Returns: 0 on success, -1 on error
1235 Returns: 0 on success, -1 on error
1250 Returns: 0 on success, -1 on error
1265 Returns: 0 on success, -1 on error
1289 Returns: 0 on success, -1 on error
1313 Returns: 0 on success, -1 on error
1350 with the 'nent' field indicating the number of entries in the variable-size
1421 Returns: 0 on success, -1 on error
1426 - GSI routing does not apply to KVM_IRQ_LINE but only to KVM_IRQFD.
1457 - KVM_MSI_VALID_DEVID: used along with KVM_IRQ_ROUTING_MSI routing entry
1458 type, specifies that the devid field contains a valid value. The per-VM
1462 - zero otherwise
1485 address_hi bits 31-8 provide bits 31-8 of the destination id. Bits 7-0 of
1508 Returns: 0 on success, -1 on error
1520 Returns: virtual tsc-khz on success, negative value on error
1523 KHz. If the host has unstable tsc this ioctl returns -EIO instead as an
1533 Returns: 0 on success, -1 on error
1546 the APIC_ID register (bytes 32-35). xAPIC only allows an 8-bit APIC ID
1547 which is stored in bits 31-24 of the APIC register, or equivalently in
1561 Returns: 0 on success, -1 on error
1571 The format of the APIC ID register (bytes 32-35 of struct kvm_lapic_state's
1597 For the special case of virtio-ccw devices on s390, the ioevent is matched
1611 For virtio-ccw devices, addr contains the subchannel id and datamatch the
1625 Returns: 0 on success, -1 on error
1643 The array is little-endian: the bit 0 is the least significant bit of the
1661 is an IOMMU for PAPR-style virtual I/O. It is used to translate
1673 which this TCE table will translate - the table will contain one 64
1683 the entries written by kernel-handled H_PUT_TCE calls, and also lets
1697 time by the kernel. An RMA is a physically-contiguous, aligned region
1699 will be accessed by real-mode (MMU off) accesses in a KVM guest.
1727 Returns: 0 on success, -1 on error
1737 - pause the vcpu
1738 - read the local APIC's state (KVM_GET_LAPIC)
1739 - check whether changing LINT1 will queue an NMI (see the LVT entry for LINT1)
1740 - if so, issue KVM_NMI
1741 - resume the vcpu
2018 ARM 32-bit CP15 registers have the following id bit patterns:
2021 ARM 64-bit CP15 registers have the following id bit patterns:
2027 ARM 32-bit VFP control registers have the following id bit patterns:
2030 ARM 64-bit FP registers have the following id bit patterns:
2033 ARM firmware pseudo-registers have the following bit pattern:
2040 arm64 core/FP-SIMD registers have the following id bit patterns. Note
2052 arm64 firmware pseudo-registers have the following bit pattern:
2063 patterns depending on whether they're 32-bit or 64-bit registers:
2064 0x7020 0000 0001 00 <reg:5> <sel:3> (32-bit)
2065 0x7030 0000 0001 00 <reg:5> <sel:3> (64-bit)
2087 0x7020 0000 0003 00 <0:3> <reg:5> (32-bit FPU registers)
2088 0x7030 0000 0003 00 <0:3> <reg:5> (64-bit FPU registers)
2089 0x7040 0000 0003 00 <0:3> <reg:5> (128-bit MSA vector registers)
2123 Returns: 0 on success, -1 on error
2132 load-link/store-conditional, or equivalent must be used. There are two cases
2144 Returns: >0 on delivery, 0 if guest blocked the MSI, and -1 on error
2146 Directly inject a MSI message. Only valid with in-kernel irqchip that handles
2158 flags: KVM_MSI_VALID_DEVID: devid contains a valid value. The per-VM
2169 address_hi bits 31-8 provide bits 31-8 of the destination id. Bits 7-0 of
2179 Returns: 0 on success, -1 on error
2181 Creates an in-kernel device model for the i8254 PIT. This call is only valid
2182 after enabling in-kernel irqchip support via KVM_CREATE_IRQCHIP. The following
2194 PIT timer interrupts may use a per-VM kernel thread for injection. If it
2197 kvm-pit/<owner-process-pid>
2211 Returns: 0 on success, -1 on error
2213 Retrieves the state of the in-kernel PIT model. Only valid after
2236 Returns: 0 on success, -1 on error
2238 Sets the state of the in-kernel PIT model. Only valid after KVM_CREATE_PIT2.
2250 Returns: 0 on success, -1 on error
2255 device-tree properties for the guest operating system.
2269 - KVM_PPC_PAGE_SIZES_REAL:
2274 - KVM_PPC_1T_SEGMENTS
2320 Returns: 0 on success, -1 on error
2330 With KVM_CAP_IRQFD_RESAMPLE, KVM_IRQFD supports a de-assert and notify
2331 mechanism allowing emulation of level-triggered, irqfd-based
2336 as from an EOI, the gsi is de-asserted and the user is notified via
2337 kvm_irqfd.resamplefd. It is the user's responsibility to re-queue
2344 - in case no routing entry is associated to this gsi, injection fails
2345 - in case the gsi is associated to an irqchip routing entry,
2346 irqchip.pin + 32 corresponds to the injected SPI ID.
2347 - in case the gsi is associated to an MSI routing entry, the MSI
2349 to GICv3 ITS in-kernel emulation).
2357 Returns: 0 on success, -1 on error
2361 anything if the kernel is configured to use the Book 3S HV style of
2364 HV.
2369 The parameter is a pointer to a 32-bit unsigned integer variable
2376 default-sized hash table (16 MB).
2384 real-mode area (VRMA) facility, the kernel will re-create the VMRA
2393 Returns: 0 on success, -1 on error
2408 KVM_S390_SIGP_STOP (vcpu) - sigp stop; optional flags in parm
2409 KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm
2410 KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm
2411 KVM_S390_RESTART (vcpu) - restart
2412 KVM_S390_INT_CLOCK_COMP (vcpu) - clock comparator interrupt
2413 KVM_S390_INT_CPU_TIMER (vcpu) - CPU timer interrupt
2414 KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt
2416 KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm
2417 KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm
2418 KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm
2419 KVM_S390_INT_IO(ai,cssid,ssid,schid) (vm) - compound value to indicate an
2420 I/O interrupt (ai - adapter interrupt; cssid,ssid,schid - subchannel);
2423 KVM_S390_MCHK (vm, vcpu) - machine check interrupt; cr 14 bits in parm,
2436 Returns: file descriptor number (>= 0) on success, -1 on error
2489 Returns: 0 on success, -1 on error
2521 Returns: 0 on success, -1 on error
2526 (e.g. read-only attribute, or attribute that only makes
2532 semantics are device-specific. See individual device documentation in
2538 __u32 group; /* device-defined */
2539 __u64 attr; /* group-defined */
2549 Returns: 0 on success, -1 on error
2565 Returns: 0 on success; -1 on error
2584 - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state.
2587 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
2589 - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 (or a future revision
2592 - KVM_ARM_VCPU_PMU_V3: Emulate PMUv3 for the CPU.
2602 Returns: 0 on success; -1 on error
2611 kvm_vcpu_init->features bitmap returned will have feature bits set if
2626 Returns: 0 on success; -1 on error
2646 Returns: 0 on success, -1 on error
2670 ARM/arm64 currently only require this when using the in-kernel GIC
2676 base addresses will return -EEXIST.
2688 Returns: 0 on success, -1 on error
2693 of a service that has a kernel-side implementation. If the token
2694 value is non-zero, it will be associated with that service, and
2707 Returns: 0 on success; -1 on error
2720 - KVM_GUESTDBG_ENABLE: guest debugging is enabled
2721 - KVM_GUESTDBG_SINGLESTEP: the next run should single-step
2726 - KVM_GUESTDBG_USE_SW_BP: using software breakpoints [x86, arm64]
2727 - KVM_GUESTDBG_USE_HW_BP: using hardware breakpoints [x86, s390, arm64]
2728 - KVM_GUESTDBG_INJECT_DB: inject DB type exception [x86]
2729 - KVM_GUESTDBG_INJECT_BP: inject BP type exception [x86]
2730 - KVM_GUESTDBG_EXIT_PENDING: trigger an immediate guest exit [s390]
2757 Returns: 0 on success, -1 on error
2788 the variable-size array 'entries'. If the number of entries is too low
2828 < 0 on generic error (e.g. -EFAULT or -ENOMEM),
2893 will cause the ioctl to return -EINVAL.
2916 will cause the ioctl to return -EINVAL.
2923 the ioctl will return -EINVAL.
2931 Returns: 0 on success, -1 on error
2967 KVM_S390_SIGP_STOP - sigp stop; parameter in .stop
2968 KVM_S390_PROGRAM_INT - program check; parameters in .pgm
2969 KVM_S390_SIGP_SET_PREFIX - sigp set prefix; parameters in .prefix
2970 KVM_S390_RESTART - restart; no parameters
2971 KVM_S390_INT_CLOCK_COMP - clock comparator interrupt; no parameters
2972 KVM_S390_INT_CPU_TIMER - CPU timer interrupt; no parameters
2973 KVM_S390_INT_EMERGENCY - sigp emergency; parameters in .emerg
2974 KVM_S390_INT_EXTERNAL_CALL - sigp external call; parameters in .extcall
2975 KVM_S390_MCHK - machine check interrupt; parameters in .mchk
2987 -EINVAL if buffer size is 0,
2988 -ENOBUFS if buffer size is too small to fit all pending interrupts,
2989 -EFAULT if the buffer address was invalid
3007 the kernel never checked for flags == 0 and QEMU never pre-zeroed flags and
3011 If -ENOBUFS is returned the buffer provided was too small and userspace
3021 -EFAULT if the buffer address was invalid,
3022 -EINVAL for an invalid buffer length (see below),
3023 -EBUSY if there were already interrupts pending,
3027 This ioctl allows userspace to set the complete state of all cpu-local
3049 which is the maximum number of possibly pending cpu-local interrupts.
3057 Returns: 0 on success, -1 on error
3076 IBM pSeries (sPAPR) guest starts using them if "hcall-multi-tce" is
3077 present in the "ibm,hypertas-functions" device-tree property.
3125 -EFAULT if struct kvm_reinject_control cannot be read,
3126 -ENXIO if KVM_CREATE_PIT or KVM_CREATE_PIT2 didn't succeed earlier.
3149 -EFAULT if struct kvm_ppc_mmuv3_cfg cannot be read,
3150 -EINVAL if the configuration is invalid
3180 -EFAULT if struct kvm_ppc_rmmu_info cannot be written,
3181 -EINVAL if no useful information can be returned
3216 -EFAULT if struct kvm_reinject_control cannot be read,
3217 -EINVAL if the supplied shift or flags are invalid
3218 -ENOMEM if unable to allocate the new HPT
3219 -ENOSPC if there was a hash collision when moving existing
3221 -EIO on other error conditions
3245 returns 0 (i.e. cancels any in-progress preparation).
3248 flags will result in an -EINVAL.
3267 -EFAULT if struct kvm_reinject_control cannot be read,
3268 -EINVAL if the supplied shift or flags are invalid
3269 -ENXIO is there is no pending HPT, or the pending HPT doesn't
3271 -EBUSY if the pending HPT is not fully prepared
3272 -ENOSPC if there was a hash collision when moving existing
3274 -EIO on other error conditions
3283 KVM_PPC_RESIZE_HPT_COMMIT will return an error (usually -ENXIO or
3284 -EBUSY, though others may be possible if the preparation was started,
3308 Returns: 0 on success, -1 on error
3321 -EFAULT if u64 mcg_cap cannot be read,
3322 -EINVAL if the requested number of banks is invalid,
3323 -EINVAL if requested MCE capability is not supported.
3328 supported number of error-reporting banks can be retrieved when
3339 -EFAULT if struct kvm_x86_mce cannot be read,
3340 -EINVAL if the bank number is invalid,
3341 -EINVAL if VAL bit is not set in status field.
3375 - During live migration to save the CMMA values. Live migration needs
3377 - To non-destructively peek at the CMMA values, with the flag
3405 KVM_S390_SKEYS_MAX. KVM_S390_SKEYS_MAX is re-used for consistency with
3449 This ioctl can fail with -ENOMEM if not enough memory can be allocated to
3450 complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
3452 -EFAULT if the userspace address is invalid or if no page table is
3492 This ioctl can fail with -ENOMEM if not enough memory can be allocated to
3493 complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
3495 if the flags field was not 0, with -EFAULT if the userspace address is
3507 -EFAULT if struct kvm_ppc_cpu_char cannot be written
3512 CVE-2017-5715, CVE-2017-5753 and CVE-2017-5754). The information is
3529 with preventing inadvertent information disclosure - specifically,
3530 whether there is an instruction to flash-invalidate the L1 data cache
3552 Returns: 0 on success; -1 on error
3555 for issuing platform-specific memory encryption commands to manage those
3560 Documentation/virtual/kvm/amd-memory-encryption.rst.
3568 Returns: 0 on success; -1 on error
3573 It is used in the SEV-enabled guest. When encryption is enabled, a guest
3591 Returns: 0 on success; -1 on error
3604 the specified Hyper-V connection id through the SIGNAL_EVENT hypercall, without
3605 causing a user exit. SIGNAL_EVENT hypercall with non-zero event flag number
3606 (bits 24-31) still triggers a KVM_EXIT_HYPERV_HCALL user exit.
3624 -EINVAL if conn_id or flags is outside the allowed range
3625 -ENOENT on deassign if the conn_id isn't registered
3626 -EEXIST on assign if the conn_id is already registered
3634 Returns: 0 on success, -1 on error
3636 E2BIG: the total state size (including the fixed-size part of struct
3670 The maximum size of the state, including the fixed-size part of struct
3680 Returns: 0 on success, -1 on error
3686 ------------------------
3703 This field is polled once when KVM_RUN starts; if non-zero, KVM_RUN
3704 exits immediately, returning -EINTR. In the common scenario where a
3708 a signal handler that sets run->immediate_exit to a non-zero value.
3728 The value of the current interrupt flag. Only valid if in-kernel
3733 More architecture-specific flags detailing state of the VCPU that may
3741 The value of the cr8 register. Only valid if in-kernel local APIC is
3746 The value of the APIC BASE msr. Only valid if in-kernel local
3756 reasons. Further architecture-specific information is available in
3765 to unknown reasons. Further architecture-specific information is
3810 executed a memory-mapped I/O instruction which could not be satisfied
3821 has re-entered the kernel with KVM_RUN. The kernel side will first finish
3823 can re-enter the guest with an unmasked signal pending to complete
3890 Deprecated - was used for 440 KVM.
3912 This is used on 64-bit PowerPC when emulating a pSeries partition,
3916 the arguments (from the guest R4 - R12). Userspace should put the
3967 a system-level event using some architecture specific mechanism (hypercall
3970 the system-level event type. The 'flags' field describes architecture
3971 specific flags for the system-level event.
3974 KVM_SYSTEM_EVENT_SHUTDOWN -- the guest has requested a shutdown of the
3978 KVM_SYSTEM_EVENT_RESET -- the guest has requested a reset of the VM.
3981 KVM_SYSTEM_EVENT_CRASH -- the guest crash occurred and the guest
3991 Indicates that the VCPU's in-kernel local APIC received an EOI for a
3992 level-triggered IOAPIC interrupt. This exit only triggers when the
4021 related to Hyper-V emulation.
4023 KVM_EXIT_HYPERV_SYNIC -- synchronously notify user-space about
4024 Hyper-V SynIC state change. Notification is used to remap SynIC
4063 --------------------------------------------
4075 Target: whether this is a per-vcpu or per-vm capability.
4088 Returns: 0 on success; -1 on error
4092 were invented by Mac-on-Linux to have a standardized communication mechanism
4103 Returns: 0 on success; -1 on error
4123 Returns: 0 on success; -1 on error
4134 addresses of mmu-type-specific data structures. The "array_len" field is an
4149 - The "params" field is of type "struct kvm_book3e_206_tlb_params".
4150 - The "array" field points to an array of type "struct
4152 - The array consists of all entries in the first TLB, followed by all
4154 - Within a TLB, entries are ordered first by increasing set number. Within a
4156 - The hash for determining set number in TLB0 is: (MAS2 >> 12) & (num_sets - 1)
4158 - The tsize field of mas1 shall be set to 4K on TLB0, even though the
4166 Returns: 0 on success; -1 on error
4171 handled in-kernel, while the other I/O instructions are passed to userspace.
4176 Note that even though this capability is enabled per-vcpu, the complete
4184 Returns: 0 on success; -1 on error
4203 This capability connects the vcpu to an in-kernel MPIC device.
4212 This capability connects the vcpu to an in-kernel XICS device.
4220 This capability enables the in-kernel irqchip for s390. Please refer to
4252 Returns: x86: KVM_CHECK_EXTENSION returns a bit-array indicating which register
4266 - the register sets to be copied out to kvm_run are selectable
4268 - vcpu_events are available in addition to regs and sregs.
4271 function as an input bit-array field set by userspace to indicate the
4289 ------------------------------------------
4311 args[1] is 0 to disable, 1 to enable in-kernel handling
4314 get handled by the kernel or not. Enabling or disabling in-kernel
4316 initial set of hcalls are enabled for in-kernel handling, which
4317 consists of those hcalls for which in-kernel handlers were implemented
4324 If the hcall number specified is not one that has an in-kernel
4336 - SENSE
4337 - SENSE RUNNING
4338 - EXTERNAL CALL
4339 - EMERGENCY SIGNAL
4340 - CONDITIONAL EMERGENCY SIGNAL
4356 return -EINVAL if the machine does not support vectors.
4363 This capability allows post-handlers for the STSI instruction. After
4368 vcpu->run:
4378 @addr - guest address of STSI SYSIB
4379 @fc - function code
4380 @sel1 - selector 1
4381 @sel2 - selector 2
4382 @ar - access register number
4384 KVM handlers should exit to userspace with rc = -EREMOTE.
4389 Parameters: args[0] - number of routes reserved for userspace IOAPICs
4390 Returns: 0 on success, -1 on error
4411 Allows use of runtime-instrumentation introduced with zEC12 processor.
4412 Will return -EINVAL if the machine does not support runtime-instrumentation.
4413 Will return -EBUSY if a VCPU has already been created.
4418 Parameters: args[0] - features that should be enabled
4419 Returns: 0 on success, -EINVAL when args[0] contains invalid features
4428 allowing the use of 32-bit APIC IDs. See KVM_CAP_X2APIC_API in their
4435 where 0xff represents CPUs 0-7 in cluster 0.
4444 mechanism e.g. to realize 2-byte software breakpoints. The kernel will
4455 Returns: 0 on success; -EINVAL if the machine does not support
4456 guarded storage; -EBUSY if a VCPU has already been created.
4465 Allow use of adapter-interruption suppression.
4466 Returns: 0 on success; -EBUSY if a VCPU has already been created.
4481 HV KVM, and can only be set before any VCPUs have been created.
4500 Returns: 0 on success, -EINVAL when args[0] contains invalid exits
4520 Returns: 0 on success, -EINVAL if hpage module parameter was not set
4528 hpage module parameter is not set to 1, -EINVAL is returned.
4543 ----------------------
4554 H_RANDOM hypercall backed by a hardware random-number generator.
4563 Hyper-V Synthetic interrupt controller(SynIC). Hyper-V SynIC is
4564 used to support Windows Hyper-V based guest paravirt drivers(VMBus).
4569 by the CPU, as it's incompatible with SynIC auto-EOI behavior.
4587 the POWER9 processor), including in-memory segment tables.
4642 Both registers and addresses are 32-bits wide.
4643 It will only be possible to run 32-bit guest code.
4645 1: MIPS64 or microMIPS64 with access only to 32-bit compatibility segments.
4646 Registers are 64-bits wide, but addresses are 32-bits wide.
4647 64-bit guest code may run but cannot access MIPS64 memory segments.
4648 It will also be possible to run 32-bit guest code.
4651 Both registers and addresses are 64-bits wide.
4652 It will be possible to run 64-bit or 32-bit guest code.
4658 that if userspace creates a VM without an in-kernel interrupt controller, it
4659 will be notified of changes to the output level of in-kernel emulated devices,
4662 updates the vcpu's run->s.regs.device_irq_level field to represent the actual
4668 userspace can always sample the device output level and re-compute the state of
4670 of run->s.regs.device_irq_level on every kvm exit.
4671 The value in run->s.regs.device_irq_level can represent both level and edge
4673 signals will exit to userspace with the bit in run->s.regs.device_irq_level
4676 The field run->s.regs.device_irq_level is available independent of
4677 run->kvm_valid_regs or run->kvm_dirty_regs bits.
4681 and thereby which bits in in run->s.regs.device_irq_level can signal values.
4687 KVM_ARM_DEV_EL1_VTIMER - EL1 virtual timer
4688 KVM_ARM_DEV_EL1_PTIMER - EL1 physical timer
4689 KVM_ARM_DEV_PMU - ARM PMU overflow interrupt signal
4708 This capability enables a newer version of Hyper-V Synthetic interrupt
4750 use copy-on-write semantics as well as dirty pages tracking via read-only page
4765 This capability indicates that KVM supports paravirtualized Hyper-V TLB Flush