179 int vm_get_capability(struct vm *vm, int vcpu, int type, int *val);
180 int vm_set_capability(struct vm *vm, int vcpu, int type, int val);
181 int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state);
182 int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state);
183 int vm_apicid2vcpuid(struct vm *vm, int apicid);
184 int vm_activate_cpu(struct vm *vm, int vcpu);
185 int vm_suspend_cpu(struct vm *vm, int vcpu);
186 int vm_resume_cpu(struct vm *vm, int vcpu);
187 struct vm_exit *vm_exitinfo(struct vm *vm, int vcpuid);
188 struct vie *vm_vie_ctx(struct vm *vm, int vcpuid);
189 void vm_exit_suspended(struct vm *vm, int vcpuid, uint64_t rip);
190 void vm_exit_debug(struct vm *vm, int vcpuid, uint64_t rip);
191 void vm_exit_astpending(struct vm *vm, int vcpuid, uint64_t rip);
192 void vm_exit_reqidle(struct vm *vm, int vcpuid, uint64_t rip);
193 void vm_exit_run_state(struct vm *vm, int vcpuid, uint64_t rip);
194 int vm_service_mmio_read(struct vm *vm, int cpuid, uint64_t gpa, uint64_t *rval,
195 int rsize);
196 int vm_service_mmio_write(struct vm *vm, int cpuid, uint64_t gpa, uint64_t wval,
197 int wsize);
198
199 int vm_arc_resv(struct vm *vm, size_t);
200
201 #ifdef _SYS__CPUSET_H_
202 cpuset_t vm_active_cpus(struct vm *vm);
203 cpuset_t vm_debug_cpus(struct vm *vm);
204 cpuset_t vm_suspended_cpus(struct vm *vm);
205 #endif /* _SYS__CPUSET_H_ */
206
207 bool vcpu_entry_bailout_checks(struct vm *vm, int vcpuid, uint64_t rip);
208 bool vcpu_run_state_pending(struct vm *vm, int vcpuid);
209 int vcpu_arch_reset(struct vm *vm, int vcpuid, bool init_only);
210
211 /*
212 * Return true if device indicated by bus/slot/func is supposed to be a
213 * pci passthrough device.
214 *
215 * Return false otherwise.
216 */
217 bool vmm_is_pptdev(int bus, int slot, int func);
218
219 void *vm_iommu_domain(struct vm *vm);
220
|
179 int vm_get_capability(struct vm *vm, int vcpu, int type, int *val);
180 int vm_set_capability(struct vm *vm, int vcpu, int type, int val);
181 int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state);
182 int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state);
183 int vm_apicid2vcpuid(struct vm *vm, int apicid);
184 int vm_activate_cpu(struct vm *vm, int vcpu);
185 int vm_suspend_cpu(struct vm *vm, int vcpu);
186 int vm_resume_cpu(struct vm *vm, int vcpu);
187 struct vm_exit *vm_exitinfo(struct vm *vm, int vcpuid);
188 struct vie *vm_vie_ctx(struct vm *vm, int vcpuid);
189 void vm_exit_suspended(struct vm *vm, int vcpuid, uint64_t rip);
190 void vm_exit_debug(struct vm *vm, int vcpuid, uint64_t rip);
191 void vm_exit_astpending(struct vm *vm, int vcpuid, uint64_t rip);
192 void vm_exit_reqidle(struct vm *vm, int vcpuid, uint64_t rip);
193 void vm_exit_run_state(struct vm *vm, int vcpuid, uint64_t rip);
194 int vm_service_mmio_read(struct vm *vm, int cpuid, uint64_t gpa, uint64_t *rval,
195 int rsize);
196 int vm_service_mmio_write(struct vm *vm, int cpuid, uint64_t gpa, uint64_t wval,
197 int wsize);
198
199 #ifdef _SYS__CPUSET_H_
200 cpuset_t vm_active_cpus(struct vm *vm);
201 cpuset_t vm_debug_cpus(struct vm *vm);
202 cpuset_t vm_suspended_cpus(struct vm *vm);
203 #endif /* _SYS__CPUSET_H_ */
204
205 bool vcpu_entry_bailout_checks(struct vm *vm, int vcpuid, uint64_t rip);
206 bool vcpu_run_state_pending(struct vm *vm, int vcpuid);
207 int vcpu_arch_reset(struct vm *vm, int vcpuid, bool init_only);
208
209 /*
210 * Return true if device indicated by bus/slot/func is supposed to be a
211 * pci passthrough device.
212 *
213 * Return false otherwise.
214 */
215 bool vmm_is_pptdev(int bus, int slot, int func);
216
217 void *vm_iommu_domain(struct vm *vm);
218
|