Lines Matching defs:kvm_x86_ops

1086 struct kvm_x86_ops {  struct
1087 int (*hardware_enable)(void);
1088 void (*hardware_disable)(void);
1089 void (*hardware_unsetup)(void);
1090 bool (*cpu_has_accelerated_tpr)(void);
1091 bool (*has_emulated_msr)(u32 index);
1092 void (*vcpu_after_set_cpuid)(struct kvm_vcpu *vcpu);
1094 unsigned int vm_size;
1095 int (*vm_init)(struct kvm *kvm);
1096 void (*vm_destroy)(struct kvm *kvm);
1099 int (*vcpu_create)(struct kvm_vcpu *vcpu);
1100 void (*vcpu_free)(struct kvm_vcpu *vcpu);
1101 void (*vcpu_reset)(struct kvm_vcpu *vcpu, bool init_event);
1103 void (*prepare_guest_switch)(struct kvm_vcpu *vcpu);
1104 void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu);
1105 void (*vcpu_put)(struct kvm_vcpu *vcpu);
1107 void (*update_exception_bitmap)(struct kvm_vcpu *vcpu);
1108 int (*get_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
1109 int (*set_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
1110 u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg);
1111 void (*get_segment)(struct kvm_vcpu *vcpu,
1113 int (*get_cpl)(struct kvm_vcpu *vcpu);
1114 void (*set_segment)(struct kvm_vcpu *vcpu,
1116 void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
1117 void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
1118 int (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
1119 int (*set_efer)(struct kvm_vcpu *vcpu, u64 efer);
1120 void (*get_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
1121 void (*set_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
1122 void (*get_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
1123 void (*set_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
1124 void (*sync_dirty_debug_regs)(struct kvm_vcpu *vcpu);
1125 void (*set_dr7)(struct kvm_vcpu *vcpu, unsigned long value);
1126 void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg);
1127 unsigned long (*get_rflags)(struct kvm_vcpu *vcpu);
1128 void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags);
1130 void (*tlb_flush_all)(struct kvm_vcpu *vcpu);
1131 void (*tlb_flush_current)(struct kvm_vcpu *vcpu);
1132 int (*tlb_remote_flush)(struct kvm *kvm);
1133 int (*tlb_remote_flush_with_range)(struct kvm *kvm,
1142 void (*tlb_flush_gva)(struct kvm_vcpu *vcpu, gva_t addr);
1148 void (*tlb_flush_guest)(struct kvm_vcpu *vcpu);
1150 enum exit_fastpath_completion (*run)(struct kvm_vcpu *vcpu);
1151 int (*handle_exit)(struct kvm_vcpu *vcpu,
1153 int (*skip_emulated_instruction)(struct kvm_vcpu *vcpu);
1154 void (*update_emulated_instruction)(struct kvm_vcpu *vcpu);
1155 void (*set_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
1156 u32 (*get_interrupt_shadow)(struct kvm_vcpu *vcpu);
1157 void (*patch_hypercall)(struct kvm_vcpu *vcpu,
1159 void (*set_irq)(struct kvm_vcpu *vcpu);
1160 void (*set_nmi)(struct kvm_vcpu *vcpu);
1161 void (*queue_exception)(struct kvm_vcpu *vcpu);
1162 void (*cancel_injection)(struct kvm_vcpu *vcpu);
1163 int (*interrupt_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
1164 int (*nmi_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
1165 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
1166 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
1167 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
1168 void (*enable_irq_window)(struct kvm_vcpu *vcpu);
1169 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
1170 bool (*check_apicv_inhibit_reasons)(ulong bit);
1171 void (*pre_update_apicv_exec_ctrl)(struct kvm *kvm, bool activate);
1172 void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *vcpu);
1173 void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);
1174 void (*hwapic_isr_update)(struct kvm_vcpu *vcpu, int isr);
1175 bool (*guest_apic_has_interrupt)(struct kvm_vcpu *vcpu);
1176 void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
1177 void (*set_virtual_apic_mode)(struct kvm_vcpu *vcpu);
1178 void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu);
1179 int (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
1180 int (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
1181 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
1182 int (*set_identity_map_addr)(struct kvm *kvm, u64 ident_addr);
1183 u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio);
1185 void (*load_mmu_pgd)(struct kvm_vcpu *vcpu, unsigned long pgd,
1188 bool (*has_wbinvd_exit)(void);
1191 u64 (*write_l1_tsc_offset)(struct kvm_vcpu *vcpu, u64 offset);
1197 void (*get_exit_info)(struct kvm_vcpu *vcpu, u64 *info1, u64 *info2,
1200 int (*check_intercept)(struct kvm_vcpu *vcpu,
1204 void (*handle_exit_irqoff)(struct kvm_vcpu *vcpu);
1206 void (*request_immediate_exit)(struct kvm_vcpu *vcpu);
1208 void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
1226 void (*slot_enable_log_dirty)(struct kvm *kvm,
1228 void (*slot_disable_log_dirty)(struct kvm *kvm,
1230 void (*flush_log_dirty)(struct kvm *kvm);
1231 void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
1236 const struct kvm_pmu_ops *pmu_ops;
1237 const struct kvm_x86_nested_ops *nested_ops;
1248 int (*pre_block)(struct kvm_vcpu *vcpu);
1249 void (*post_block)(struct kvm_vcpu *vcpu);
1251 void (*vcpu_blocking)(struct kvm_vcpu *vcpu);
1252 void (*vcpu_unblocking)(struct kvm_vcpu *vcpu);
1254 int (*update_pi_irte)(struct kvm *kvm, unsigned int host_irq,
1256 void (*apicv_post_state_restore)(struct kvm_vcpu *vcpu);
1257 bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *vcpu);
1259 int (*set_hv_timer)(struct kvm_vcpu *vcpu, u64 guest_deadline_tsc,
1261 void (*cancel_hv_timer)(struct kvm_vcpu *vcpu);
1263 void (*setup_mce)(struct kvm_vcpu *vcpu);
1265 int (*smi_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
1266 int (*pre_enter_smm)(struct kvm_vcpu *vcpu, char *smstate);
1267 int (*pre_leave_smm)(struct kvm_vcpu *vcpu, const char *smstate);
1268 void (*enable_smi_window)(struct kvm_vcpu *vcpu);
1270 int (*mem_enc_op)(struct kvm *kvm, void __user *argp);
1271 int (*mem_enc_reg_region)(struct kvm *kvm, struct kvm_enc_region *argp);
1272 int (*mem_enc_unreg_region)(struct kvm *kvm, struct kvm_enc_region *argp);
1274 int (*get_msr_feature)(struct kvm_msr_entry *entry);
1276 bool (*can_emulate_instruction)(struct kvm_vcpu *vcpu, void *insn, int insn_len);
1278 bool (*apic_init_signal_blocked)(struct kvm_vcpu *vcpu);
1279 int (*enable_direct_tlbflush)(struct kvm_vcpu *vcpu);
1281 void (*migrate_timers)(struct kvm_vcpu *vcpu);
1282 void (*msr_filter_changed)(struct kvm_vcpu *vcpu);