diff options
Diffstat (limited to 'include/linux/kvm_host.h')
-rw-r--r-- | include/linux/kvm_host.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index a63d83ebd151..0fbbc7aa02cb 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
@@ -85,6 +85,12 @@ static inline bool is_noslot_pfn(pfn_t pfn) | |||
85 | return pfn == KVM_PFN_NOSLOT; | 85 | return pfn == KVM_PFN_NOSLOT; |
86 | } | 86 | } |
87 | 87 | ||
88 | /* | ||
89 | * architectures with KVM_HVA_ERR_BAD other than PAGE_OFFSET (e.g. s390) | ||
90 | * provide own defines and kvm_is_error_hva | ||
91 | */ | ||
92 | #ifndef KVM_HVA_ERR_BAD | ||
93 | |||
88 | #define KVM_HVA_ERR_BAD (PAGE_OFFSET) | 94 | #define KVM_HVA_ERR_BAD (PAGE_OFFSET) |
89 | #define KVM_HVA_ERR_RO_BAD (PAGE_OFFSET + PAGE_SIZE) | 95 | #define KVM_HVA_ERR_RO_BAD (PAGE_OFFSET + PAGE_SIZE) |
90 | 96 | ||
@@ -93,6 +99,8 @@ static inline bool kvm_is_error_hva(unsigned long addr) | |||
93 | return addr >= PAGE_OFFSET; | 99 | return addr >= PAGE_OFFSET; |
94 | } | 100 | } |
95 | 101 | ||
102 | #endif | ||
103 | |||
96 | #define KVM_ERR_PTR_BAD_PAGE (ERR_PTR(-ENOENT)) | 104 | #define KVM_ERR_PTR_BAD_PAGE (ERR_PTR(-ENOENT)) |
97 | 105 | ||
98 | static inline bool is_error_page(struct page *page) | 106 | static inline bool is_error_page(struct page *page) |
@@ -160,8 +168,12 @@ enum kvm_bus { | |||
160 | 168 | ||
161 | int kvm_io_bus_write(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, | 169 | int kvm_io_bus_write(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, |
162 | int len, const void *val); | 170 | int len, const void *val); |
171 | int kvm_io_bus_write_cookie(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, | ||
172 | int len, const void *val, long cookie); | ||
163 | int kvm_io_bus_read(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, int len, | 173 | int kvm_io_bus_read(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, int len, |
164 | void *val); | 174 | void *val); |
175 | int kvm_io_bus_read_cookie(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, | ||
176 | int len, void *val, long cookie); | ||
165 | int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, | 177 | int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, |
166 | int len, struct kvm_io_device *dev); | 178 | int len, struct kvm_io_device *dev); |
167 | int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, | 179 | int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, |
@@ -499,6 +511,7 @@ int __kvm_set_memory_region(struct kvm *kvm, | |||
499 | void kvm_arch_free_memslot(struct kvm_memory_slot *free, | 511 | void kvm_arch_free_memslot(struct kvm_memory_slot *free, |
500 | struct kvm_memory_slot *dont); | 512 | struct kvm_memory_slot *dont); |
501 | int kvm_arch_create_memslot(struct kvm_memory_slot *slot, unsigned long npages); | 513 | int kvm_arch_create_memslot(struct kvm_memory_slot *slot, unsigned long npages); |
514 | void kvm_arch_memslots_updated(struct kvm *kvm); | ||
502 | int kvm_arch_prepare_memory_region(struct kvm *kvm, | 515 | int kvm_arch_prepare_memory_region(struct kvm *kvm, |
503 | struct kvm_memory_slot *memslot, | 516 | struct kvm_memory_slot *memslot, |
504 | struct kvm_userspace_memory_region *mem, | 517 | struct kvm_userspace_memory_region *mem, |
@@ -520,6 +533,7 @@ int gfn_to_page_many_atomic(struct kvm *kvm, gfn_t gfn, struct page **pages, | |||
520 | 533 | ||
521 | struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn); | 534 | struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn); |
522 | unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn); | 535 | unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn); |
536 | unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable); | ||
523 | unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot, gfn_t gfn); | 537 | unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot, gfn_t gfn); |
524 | void kvm_release_page_clean(struct page *page); | 538 | void kvm_release_page_clean(struct page *page); |
525 | void kvm_release_page_dirty(struct page *page); | 539 | void kvm_release_page_dirty(struct page *page); |