xref: /openbmc/linux/virt/kvm/coalesced_mmio.h (revision 3f0852e0)
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 
135f94c174SLaurent Vivier #define KVM_COALESCED_MMIO_ZONE_MAX 100
145f94c174SLaurent Vivier 
155f94c174SLaurent Vivier struct kvm_coalesced_mmio_dev {
165f94c174SLaurent Vivier 	struct kvm_io_device dev;
175f94c174SLaurent Vivier 	struct kvm *kvm;
1864a2268dSMarcelo Tosatti 	spinlock_t lock;
195f94c174SLaurent Vivier 	int nb_zones;
205f94c174SLaurent Vivier 	struct kvm_coalesced_mmio_zone zone[KVM_COALESCED_MMIO_ZONE_MAX];
215f94c174SLaurent Vivier };
225f94c174SLaurent Vivier 
235f94c174SLaurent Vivier int kvm_coalesced_mmio_init(struct kvm *kvm);
245f94c174SLaurent Vivier int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
255f94c174SLaurent Vivier                                        struct kvm_coalesced_mmio_zone *zone);
265f94c174SLaurent Vivier int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
275f94c174SLaurent Vivier                                          struct kvm_coalesced_mmio_zone *zone);
283f0852e0SAvi Kivity 
293f0852e0SAvi Kivity #endif
30