xref: /kvmtool/mips/include/kvm/kvm-cpu-arch.h (revision 474b696f40b5655197c51719ecd3bc6308182199)
17281a8dbSDavid Daney #ifndef KVM__KVM_CPU_ARCH_H
27281a8dbSDavid Daney #define KVM__KVM_CPU_ARCH_H
37281a8dbSDavid Daney 
47281a8dbSDavid Daney #include <linux/kvm.h>	/* for struct kvm_regs */
57281a8dbSDavid Daney #include "kvm/kvm.h"	/* for kvm__emulate_{mm}io() */
67281a8dbSDavid Daney #include <pthread.h>
77281a8dbSDavid Daney 
87281a8dbSDavid Daney struct kvm;
97281a8dbSDavid Daney 
107281a8dbSDavid Daney struct kvm_cpu {
117281a8dbSDavid Daney 	pthread_t	thread;		/* VCPU thread */
127281a8dbSDavid Daney 
137281a8dbSDavid Daney 	unsigned long	cpu_id;
147281a8dbSDavid Daney 
157281a8dbSDavid Daney 	struct kvm	*kvm;		/* parent KVM */
167281a8dbSDavid Daney 	int		vcpu_fd;	/* For VCPU ioctls() */
177281a8dbSDavid Daney 	struct kvm_run	*kvm_run;
187281a8dbSDavid Daney 
197281a8dbSDavid Daney 	struct kvm_regs	regs;
207281a8dbSDavid Daney 
217281a8dbSDavid Daney 	u8		is_running;
227281a8dbSDavid Daney 	u8		paused;
237281a8dbSDavid Daney 	u8		needs_nmi;
247281a8dbSDavid Daney 
257281a8dbSDavid Daney 	struct kvm_coalesced_mmio_ring *ring;
267281a8dbSDavid Daney };
277281a8dbSDavid Daney 
287281a8dbSDavid Daney /*
297281a8dbSDavid Daney  * As these are such simple wrappers, let's have them in the header so they'll
307281a8dbSDavid Daney  * be cheaper to call:
317281a8dbSDavid Daney  */
32*474b696fSAndreas Herrmann static inline bool kvm_cpu__emulate_io(struct kvm_cpu *vcpu, u16 port, void *data, int direction, int size, u32 count)
337281a8dbSDavid Daney {
34*474b696fSAndreas Herrmann 	return kvm__emulate_io(vcpu, port, data, direction, size, count);
357281a8dbSDavid Daney }
367281a8dbSDavid Daney 
377281a8dbSDavid Daney static inline bool kvm_cpu__emulate_mmio(struct kvm_cpu *vcpu, u64 phys_addr, u8 *data, u32 len, u8 is_write)
387281a8dbSDavid Daney {
397281a8dbSDavid Daney 	return kvm__emulate_mmio(vcpu, phys_addr, data, len, is_write);
407281a8dbSDavid Daney }
417281a8dbSDavid Daney 
427281a8dbSDavid Daney #endif /* KVM__KVM_CPU_ARCH_H */
43