smp, irq_work: Continue smp_call_function*() and irq_work*() integration
[sfrench/cifs-2.6.git] / include / linux / kvm_types.h
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 <linux/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 #define GPA_INVALID     (~(gpa_t)0)
39
40 typedef unsigned long  hva_t;
41 typedef u64            hpa_t;
42 typedef u64            hfn_t;
43
44 typedef hfn_t kvm_pfn_t;
45
46 struct gfn_to_hva_cache {
47         u64 generation;
48         gpa_t gpa;
49         unsigned long hva;
50         unsigned long len;
51         struct kvm_memory_slot *memslot;
52 };
53
54 struct gfn_to_pfn_cache {
55         u64 generation;
56         gfn_t gfn;
57         kvm_pfn_t pfn;
58         bool dirty;
59 };
60
61 #endif /* __KVM_TYPES_H__ */