xref: /linux/include/linux/kvm_types.h (revision 44f57d78)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __KVM_TYPES_H__
4 #define __KVM_TYPES_H__
5 
6 struct kvm;
7 struct kvm_async_pf;
8 struct kvm_device_ops;
9 struct kvm_interrupt;
10 struct kvm_irq_routing_table;
11 struct kvm_memory_slot;
12 struct kvm_one_reg;
13 struct kvm_run;
14 struct kvm_userspace_memory_region;
15 struct kvm_vcpu;
16 struct kvm_vcpu_init;
17 struct kvm_memslots;
18 
19 enum kvm_mr_change;
20 
21 #include <asm/types.h>
22 
23 /*
24  * Address types:
25  *
26  *  gva - guest virtual address
27  *  gpa - guest physical address
28  *  gfn - guest frame number
29  *  hva - host virtual address
30  *  hpa - host physical address
31  *  hfn - host frame number
32  */
33 
34 typedef unsigned long  gva_t;
35 typedef u64            gpa_t;
36 typedef u64            gfn_t;
37 
38 typedef unsigned long  hva_t;
39 typedef u64            hpa_t;
40 typedef u64            hfn_t;
41 
42 typedef hfn_t kvm_pfn_t;
43 
44 struct gfn_to_hva_cache {
45 	u64 generation;
46 	gpa_t gpa;
47 	unsigned long hva;
48 	unsigned long len;
49 	struct kvm_memory_slot *memslot;
50 };
51 
52 #endif /* __KVM_TYPES_H__ */
53