kvm.h (b22498c4846b52a5df2cc821d97c4049df0cf67a) kvm.h (6dcf7316e05eccded11fc640813c8a8879f271a6)
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Copyright (C) 2012,2013 - ARM Ltd
4 * Author: Marc Zyngier <marc.zyngier@arm.com>
5 *
6 * Derived from arch/arm/include/uapi/asm/kvm.h:
7 * Copyright (C) 2012 - Virtual Open Systems and Columbia University
8 * Author: Christoffer Dall <c.dall@virtualopensystems.com>

--- 367 unchanged lines hidden (view full) ---

376enum {
377 KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0,
378 KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1,
379#ifdef __KERNEL__
380 KVM_REG_ARM_VENDOR_HYP_BMAP_BIT_COUNT,
381#endif
382};
383
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Copyright (C) 2012,2013 - ARM Ltd
4 * Author: Marc Zyngier <marc.zyngier@arm.com>
5 *
6 * Derived from arch/arm/include/uapi/asm/kvm.h:
7 * Copyright (C) 2012 - Virtual Open Systems and Columbia University
8 * Author: Christoffer Dall <c.dall@virtualopensystems.com>

--- 367 unchanged lines hidden (view full) ---

376enum {
377 KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0,
378 KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1,
379#ifdef __KERNEL__
380 KVM_REG_ARM_VENDOR_HYP_BMAP_BIT_COUNT,
381#endif
382};
383
384/* Device Control API on vm fd */
385#define KVM_ARM_VM_SMCCC_CTRL 0
386#define KVM_ARM_VM_SMCCC_FILTER 0
387
384/* Device Control API: ARM VGIC */
385#define KVM_DEV_ARM_VGIC_GRP_ADDR 0
386#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
387#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
388#define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32
389#define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT)
390#define KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT 32
391#define KVM_DEV_ARM_VGIC_V3_MPIDR_MASK \

--- 83 unchanged lines hidden (view full) ---

475 * Reset caused by a PSCI v1.1 SYSTEM_RESET2 call.
476 * Valid only when the system event has a type of KVM_SYSTEM_EVENT_RESET.
477 */
478#define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 (1ULL << 0)
479
480/* run->fail_entry.hardware_entry_failure_reason codes. */
481#define KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED (1ULL << 0)
482
388/* Device Control API: ARM VGIC */
389#define KVM_DEV_ARM_VGIC_GRP_ADDR 0
390#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
391#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
392#define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32
393#define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT)
394#define KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT 32
395#define KVM_DEV_ARM_VGIC_V3_MPIDR_MASK \

--- 83 unchanged lines hidden (view full) ---

479 * Reset caused by a PSCI v1.1 SYSTEM_RESET2 call.
480 * Valid only when the system event has a type of KVM_SYSTEM_EVENT_RESET.
481 */
482#define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 (1ULL << 0)
483
484/* run->fail_entry.hardware_entry_failure_reason codes. */
485#define KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED (1ULL << 0)
486
487enum kvm_smccc_filter_action {
488 KVM_SMCCC_FILTER_HANDLE = 0,
489 KVM_SMCCC_FILTER_DENY,
490 KVM_SMCCC_FILTER_FWD_TO_USER,
491
492#ifdef __KERNEL__
493 NR_SMCCC_FILTER_ACTIONS
483#endif
494#endif
495};
484
496
497struct kvm_smccc_filter {
498 __u32 base;
499 __u32 nr_functions;
500 __u8 action;
501 __u8 pad[15];
502};
503
504/* arm64-specific KVM_EXIT_HYPERCALL flags */
505#define KVM_HYPERCALL_EXIT_SMC (1U << 0)
506#define KVM_HYPERCALL_EXIT_16BIT (1U << 1)
507
508#endif
509
485#endif /* __ARM_KVM_H__ */
510#endif /* __ARM_KVM_H__ */