xref: /openbmc/linux/virt/kvm/coalesced_mmio.h (revision 2b3c246a)
13f0852e0SAvi Kivity #ifndef __KVM_COALESCED_MMIO_H__
23f0852e0SAvi Kivity #define __KVM_COALESCED_MMIO_H__
33f0852e0SAvi Kivity 
45f94c174SLaurent Vivier /*
55f94c174SLaurent Vivier  * KVM coalesced MMIO
65f94c174SLaurent Vivier  *
75f94c174SLaurent Vivier  * Copyright (c) 2008 Bull S.A.S.
85f94c174SLaurent Vivier  *
95f94c174SLaurent Vivier  *  Author: Laurent Vivier <Laurent.Vivier@bull.net>
105f94c174SLaurent Vivier  *
115f94c174SLaurent Vivier  */
125f94c174SLaurent Vivier 
13980da6ceSAvi Kivity #ifdef CONFIG_KVM_MMIO
14980da6ceSAvi Kivity 
152b3c246aSSasha Levin #include <linux/list.h>
165f94c174SLaurent Vivier 
175f94c174SLaurent Vivier struct kvm_coalesced_mmio_dev {
182b3c246aSSasha Levin 	struct list_head list;
195f94c174SLaurent Vivier 	struct kvm_io_device dev;
205f94c174SLaurent Vivier 	struct kvm *kvm;
212b3c246aSSasha Levin 	struct kvm_coalesced_mmio_zone zone;
225f94c174SLaurent Vivier };
235f94c174SLaurent Vivier 
245f94c174SLaurent Vivier int kvm_coalesced_mmio_init(struct kvm *kvm);
25980da6ceSAvi Kivity void kvm_coalesced_mmio_free(struct kvm *kvm);
265f94c174SLaurent Vivier int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
275f94c174SLaurent Vivier                                        struct kvm_coalesced_mmio_zone *zone);
285f94c174SLaurent Vivier int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
295f94c174SLaurent Vivier                                          struct kvm_coalesced_mmio_zone *zone);
303f0852e0SAvi Kivity 
31980da6ceSAvi Kivity #else
32980da6ceSAvi Kivity 
33980da6ceSAvi Kivity static inline int kvm_coalesced_mmio_init(struct kvm *kvm) { return 0; }
34980da6ceSAvi Kivity static inline void kvm_coalesced_mmio_free(struct kvm *kvm) { }
35980da6ceSAvi Kivity 
36980da6ceSAvi Kivity #endif
37980da6ceSAvi Kivity 
383f0852e0SAvi Kivity #endif
39