Lines Matching full:vcpu
36 struct vcpu;
179 typedef void * (*vmi_vcpu_init_func_t)(void *vmi, struct vcpu *vcpu,
228 struct vcpu *vm_alloc_vcpu(struct vm *vm, int vcpuid);
258 * APIs that inspect the guest memory map require only a *single* vcpu to
267 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len,
272 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa);
274 int vm_get_register(struct vcpu *vcpu, int reg, uint64_t *retval);
275 int vm_set_register(struct vcpu *vcpu, int reg, uint64_t val);
276 int vm_get_seg_desc(struct vcpu *vcpu, int reg,
278 int vm_set_seg_desc(struct vcpu *vcpu, int reg,
280 int vm_run(struct vcpu *vcpu);
282 int vm_inject_nmi(struct vcpu *vcpu);
283 int vm_nmi_pending(struct vcpu *vcpu);
284 void vm_nmi_clear(struct vcpu *vcpu);
285 int vm_inject_extint(struct vcpu *vcpu);
286 int vm_extint_pending(struct vcpu *vcpu);
287 void vm_extint_clear(struct vcpu *vcpu);
288 int vcpu_vcpuid(struct vcpu *vcpu);
289 struct vm *vcpu_vm(struct vcpu *vcpu);
290 struct vcpu *vm_vcpu(struct vm *vm, int cpu);
291 struct vlapic *vm_lapic(struct vcpu *vcpu);
294 int vm_get_capability(struct vcpu *vcpu, int type, int *val);
295 int vm_set_capability(struct vcpu *vcpu, int type, int val);
296 int vm_get_x2apic_state(struct vcpu *vcpu, enum x2apic_state *state);
297 int vm_set_x2apic_state(struct vcpu *vcpu, enum x2apic_state state);
299 int vm_activate_cpu(struct vcpu *vcpu);
300 int vm_suspend_cpu(struct vm *vm, struct vcpu *vcpu);
301 int vm_resume_cpu(struct vm *vm, struct vcpu *vcpu);
302 int vm_restart_instruction(struct vcpu *vcpu);
303 struct vm_exit *vm_exitinfo(struct vcpu *vcpu);
304 cpuset_t *vm_exitinfo_cpuset(struct vcpu *vcpu);
305 void vm_exit_suspended(struct vcpu *vcpu, uint64_t rip);
306 void vm_exit_debug(struct vcpu *vcpu, uint64_t rip);
307 void vm_exit_rendezvous(struct vcpu *vcpu, uint64_t rip);
308 void vm_exit_astpending(struct vcpu *vcpu, uint64_t rip);
309 void vm_exit_reqidle(struct vcpu *vcpu, uint64_t rip);
325 typedef void (*vm_rendezvous_func_t)(struct vcpu *vcpu, void *arg);
326 int vm_smp_rendezvous(struct vcpu *vcpu, cpuset_t dest,
337 vcpu_rendezvous_pending(struct vcpu *vcpu, struct vm_eventinfo *info) in vcpu_rendezvous_pending() argument
341 * there's no need to. If the vcpuid bit is set, the vcpu is part of a in vcpu_rendezvous_pending()
342 * rendezvous and the bit won't be cleared until the vcpu enters the in vcpu_rendezvous_pending()
343 * rendezvous. On rendezvous exit, the cpuset is cleared and the vcpu in vcpu_rendezvous_pending()
346 return (CPU_ISSET(vcpu_vcpuid(vcpu), info->rptr)); in vcpu_rendezvous_pending()
363 int vcpu_debugged(struct vcpu *vcpu);
382 int vcpu_set_state(struct vcpu *vcpu, enum vcpu_state state, bool from_idle);
383 enum vcpu_state vcpu_get_state(struct vcpu *vcpu, int *hostcpu);
386 vcpu_is_running(struct vcpu *vcpu, int *hostcpu) in vcpu_is_running() argument
388 return (vcpu_get_state(vcpu, hostcpu) == VCPU_RUNNING); in vcpu_is_running()
393 vcpu_should_yield(struct vcpu *vcpu) in vcpu_should_yield() argument
402 void *vcpu_stats(struct vcpu *vcpu);
403 void vcpu_notify_event(struct vcpu *vcpu, bool lapic_intr);
411 * Inject exception 'vector' into the guest vcpu. This function returns 0 on
419 * executing this vcpu.
421 int vm_inject_exception(struct vcpu *vcpu, int vector, int err_valid,
437 int vm_exit_intinfo(struct vcpu *vcpu, uint64_t intinfo);
447 int vm_entry_intinfo(struct vcpu *vcpu, uint64_t *info);
449 int vm_get_intinfo(struct vcpu *vcpu, uint64_t *info1, uint64_t *info2);
456 void vm_set_tsc_offset(struct vcpu *vcpu, uint64_t offset);
481 int vm_copy_setup(struct vcpu *vcpu, struct vm_guest_paging *paging,
488 int vcpu_trace_exceptions(struct vcpu *vcpu);
489 int vcpu_trap_wbinvd(struct vcpu *vcpu);
756 int vcpu; member
771 * The destination vCPU mask is saved in vcpu->cpuset
783 void vm_inject_fault(struct vcpu *vcpu, int vector, int errcode_valid,
787 vm_inject_ud(struct vcpu *vcpu) in vm_inject_ud() argument
789 vm_inject_fault(vcpu, IDT_UD, 0, 0); in vm_inject_ud()
793 vm_inject_gp(struct vcpu *vcpu) in vm_inject_gp() argument
795 vm_inject_fault(vcpu, IDT_GP, 1, 0); in vm_inject_gp()
799 vm_inject_ac(struct vcpu *vcpu, int errcode) in vm_inject_ac() argument
801 vm_inject_fault(vcpu, IDT_AC, 1, errcode); in vm_inject_ac()
805 vm_inject_ss(struct vcpu *vcpu, int errcode) in vm_inject_ss() argument
807 vm_inject_fault(vcpu, IDT_SS, 1, errcode); in vm_inject_ss()
810 void vm_inject_pf(struct vcpu *vcpu, int error_code, uint64_t cr2);