xref: /openbmc/linux/virt/kvm/coalesced_mmio.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
23f0852e0SAvi Kivity #ifndef __KVM_COALESCED_MMIO_H__
33f0852e0SAvi Kivity #define __KVM_COALESCED_MMIO_H__
43f0852e0SAvi Kivity 
55f94c174SLaurent Vivier /*
65f94c174SLaurent Vivier  * KVM coalesced MMIO
75f94c174SLaurent Vivier  *
85f94c174SLaurent Vivier  * Copyright (c) 2008 Bull S.A.S.
95f94c174SLaurent Vivier  *
105f94c174SLaurent Vivier  *  Author: Laurent Vivier <Laurent.Vivier@bull.net>
115f94c174SLaurent Vivier  *
125f94c174SLaurent Vivier  */
135f94c174SLaurent Vivier 
14980da6ceSAvi Kivity #ifdef CONFIG_KVM_MMIO
15980da6ceSAvi Kivity 
162b3c246aSSasha Levin #include <linux/list.h>
175f94c174SLaurent Vivier 
185f94c174SLaurent Vivier struct kvm_coalesced_mmio_dev {
192b3c246aSSasha Levin 	struct list_head list;
205f94c174SLaurent Vivier 	struct kvm_io_device dev;
215f94c174SLaurent Vivier 	struct kvm *kvm;
222b3c246aSSasha Levin 	struct kvm_coalesced_mmio_zone zone;
235f94c174SLaurent Vivier };
245f94c174SLaurent Vivier 
255f94c174SLaurent Vivier int kvm_coalesced_mmio_init(struct kvm *kvm);
26980da6ceSAvi Kivity void kvm_coalesced_mmio_free(struct kvm *kvm);
275f94c174SLaurent Vivier int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
285f94c174SLaurent Vivier 					struct kvm_coalesced_mmio_zone *zone);
295f94c174SLaurent Vivier int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
305f94c174SLaurent Vivier 					struct kvm_coalesced_mmio_zone *zone);
313f0852e0SAvi Kivity 
32980da6ceSAvi Kivity #else
33980da6ceSAvi Kivity 
kvm_coalesced_mmio_init(struct kvm * kvm)34980da6ceSAvi Kivity static inline int kvm_coalesced_mmio_init(struct kvm *kvm) { return 0; }
kvm_coalesced_mmio_free(struct kvm * kvm)35980da6ceSAvi Kivity static inline void kvm_coalesced_mmio_free(struct kvm *kvm) { }
36980da6ceSAvi Kivity 
37980da6ceSAvi Kivity #endif
38980da6ceSAvi Kivity 
393f0852e0SAvi Kivity #endif
40