Lines Matching +full:pic +full:- +full:base +full:- +full:vec

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Kernel-based Virtual Machine driver for Linux
29 #include <asm/pvclock-abi.h>
32 #include <asm/msr-index.h>
36 #include <asm/hyperv-tlfs.h>
55 /* x86-specific vcpu->requests bit members */
116 #define KVM_NR_PAGE_SIZES (KVM_MAX_HUGEPAGE_LEVEL - PG_LEVEL_4K + 1)
117 #define KVM_HPAGE_GFN_SHIFT(x) (((x) - 1) * 9)
120 #define KVM_HPAGE_MASK(x) (~(KVM_HPAGE_SIZE(x) - 1))
126 return (gfn >> KVM_HPAGE_GFN_SHIFT(level)) - in gfn_to_index()
238 * The following bit is set with PV-EOI, unset on EOI.
239 * We detect PV-EOI changes by guest by comparing
240 * this bit with PV-EOI in guest memory.
286 * re-configuration can be skipped. @valid bit is set on first usage so we don't
287 * treat all-zero structure as valid data.
306 union kvm_mmu_page_role base; member
343 * x86 supports 4 paging modes (5-level 64-bit, 4-level 64-bit, 3-level 32-bit,
344 * and 2-level 32-bit). The kvm_mmu structure abstracts the details of the
399 /* Can have large pages at levels 2..last_nonleaf_level-1. */
473 u64 base; member
486 /* Hyper-V SynIC timer */
497 /* Hyper-V synthetic interrupt controller (SynIC)*/
511 /* Hyper-V per vcpu emulation context */
571 /* Non-nested MMU for L1 */
732 u16 vec; member
763 * retry the non-emulatable instruction (on hardware). Unprotecting the
764 * gfn doesn't allow forward progress for a self-changing access because
782 /* be preempted when it's in kernel-mode(cpl=0) */
788 /* Host CPU on which VM-entry was most recently attempted */
816 struct kvm_lpage_info *lpage_info[KVM_NR_PAGE_SIZES - 1];
842 /* Hyper-V synthetic debugger (SynDbg)*/
854 /* Hyper-V emulation context */
861 /* Hyper-v based guest crash (NT kernel bugcheck) parameters */
883 u32 base; member
1138 * Does not need to flush GPA->HPA mappings.
1139 * Can potentially get non-canonical addresses through INVLPGs, which
1146 * does not need to flush GPA->HPA mappings.
1211 * Arch-specific dirty logging hooks. These hooks are only supposed to
1212 * be valid if the specific arch has hardware-accelerated dirty logging
1215 * - slot_enable_log_dirty:
1217 * - slot_disable_log_dirty:
1220 * - flush_log_dirty:
1222 * - enable_log_dirty_pt_masked:
1224 * corresponding bits are cleared in slot->dirty_bitmap.
1235 /* pmu operations of sub-arch */
1243 * - 0 means continue to block the vCPU.
1244 * - 1 means we cannot block the vCPU since some event
1246 * posted-interrupts descriptor is set.
1336 return -ENOTSUPP; in kvm_arch_flush_remote_tlb()
1407 * EMULTYPE_NO_DECODE - Set when re-emulating an instruction (after completing
1412 * EMULTYPE_TRAP_UD - Set when emulating an intercepted #UD from hardware.
1417 * EMULTYPE_SKIP - Set when emulating solely to skip an instruction, i.e. to
1421 * EMULTYPE_ALLOW_RETRY_PF - Set when the emulator should resume the guest to
1425 * EMULTYPE_TRAP_UD_FORCED - Set when emulating an intercepted #UD that was
1432 * EMULTYPE_VMWARE_GP - Set when emulating an intercepted #GP for VMware
1437 * EMULTYPE_PF - Set when emulating MMIO by way of an intercepted #PF, in which
1521 int kvm_pic_set_irq(struct kvm_pic *pic, int irq, int irq_source_id, int level);
1522 void kvm_pic_clear_all(struct kvm_pic *pic, int irq_source_id);
1616 #define HF_GUEST_MASK (1 << 5) /* VCPU is in guest-mode */
1623 #define kvm_arch_vcpu_memslots_id(vcpu) ((vcpu)->arch.hflags & HF_SMM_MASK ? 1 : 0)
1641 ".long 1b - . \n\t" \
1646 ".long 1b - . \n\t" \
1712 return (irq->delivery_mode == APIC_DM_FIXED || in kvm_irq_is_postable()
1713 irq->delivery_mode == APIC_DM_LOWEST); in kvm_irq_is_postable()
1741 *(type *)((buf) + (offset) - 0x7e00) = val
1744 (*(type *)((buf) + (offset) - 0x7e00))