diff options
Diffstat (limited to 'tools/testing/selftests/kvm/include/kvm_util.h')
| -rw-r--r-- | tools/testing/selftests/kvm/include/kvm_util.h | 26 | 
1 files changed, 16 insertions, 10 deletions
diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index e0e66b115ef2..29cccaf96baf 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -24,6 +24,12 @@ struct kvm_vm;  typedef uint64_t vm_paddr_t; /* Virtual Machine (Guest) physical address */  typedef uint64_t vm_vaddr_t; /* Virtual Machine (Guest) virtual address */ +#ifndef NDEBUG +#define DEBUG(...) printf(__VA_ARGS__); +#else +#define DEBUG(...) +#endif +  /* Minimum allocated guest virtual and physical addresses */  #define KVM_UTIL_MIN_VADDR		0x2000 @@ -38,11 +44,14 @@ enum vm_guest_mode {  	VM_MODE_P48V48_64K,  	VM_MODE_P40V48_4K,  	VM_MODE_P40V48_64K, +	VM_MODE_PXXV48_4K,	/* For 48bits VA but ANY bits PA */  	NUM_VM_MODES,  }; -#ifdef __aarch64__ +#if defined(__aarch64__)  #define VM_MODE_DEFAULT VM_MODE_P40V48_4K +#elif defined(__x86_64__) +#define VM_MODE_DEFAULT VM_MODE_PXXV48_4K  #else  #define VM_MODE_DEFAULT VM_MODE_P52V48_4K  #endif @@ -60,8 +69,7 @@ int kvm_check_cap(long cap);  int vm_enable_cap(struct kvm_vm *vm, struct kvm_enable_cap *cap);  struct kvm_vm *vm_create(enum vm_guest_mode mode, uint64_t phy_pages, int perm); -struct kvm_vm *_vm_create(enum vm_guest_mode mode, uint64_t phy_pages, -			  int perm, unsigned long type); +struct kvm_vm *_vm_create(enum vm_guest_mode mode, uint64_t phy_pages, int perm);  void kvm_vm_free(struct kvm_vm *vmp);  void kvm_vm_restart(struct kvm_vm *vmp, int perm);  void kvm_vm_release(struct kvm_vm *vmp); @@ -146,6 +154,10 @@ void vm_vcpu_add_default(struct kvm_vm *vm, uint32_t vcpuid, void *guest_code);  bool vm_is_unrestricted_guest(struct kvm_vm *vm); +unsigned int vm_get_page_size(struct kvm_vm *vm); +unsigned int vm_get_page_shift(struct kvm_vm *vm); +unsigned int vm_get_max_gfn(struct kvm_vm *vm); +  struct kvm_userspace_memory_region *  kvm_userspace_memory_region_find(struct kvm_vm *vm, uint64_t start,  				 uint64_t end); @@ -165,12 +177,6 @@ int vm_create_device(struct kvm_vm *vm, struct kvm_create_device *cd);  	memcpy(&(g), _p, sizeof(g));				\  }) -/* ucall implementation types */ -typedef enum { -	UCALL_PIO, -	UCALL_MMIO, -} ucall_type_t; -  /* Common ucalls */  enum {  	UCALL_NONE, @@ -186,7 +192,7 @@ struct ucall {  	uint64_t args[UCALL_MAX_ARGS];  }; -void ucall_init(struct kvm_vm *vm, ucall_type_t type, void *arg); +void ucall_init(struct kvm_vm *vm, void *arg);  void ucall_uninit(struct kvm_vm *vm);  void ucall(uint64_t cmd, int nargs, ...);  uint64_t get_ucall(struct kvm_vm *vm, uint32_t vcpu_id, struct ucall *uc);  |