blob: 4392ab43598724121111b0b7166bcc1ae065cea2 [file] [log] [blame]
Peter Maydell1d31f662012-07-26 15:35:13 +01001/*
2 * QEMU KVM support -- x86 specific functions.
3 *
4 * Copyright (c) 2012 Linaro Limited
5 *
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 *
9 */
10
11#ifndef QEMU_KVM_I386_H
12#define QEMU_KVM_I386_H
13
Paolo Bonzini9c17d612012-12-17 18:20:04 +010014#include "sysemu/kvm.h"
Jan Kiszkab139bd32012-08-27 08:28:40 +020015
Peter Maydell1d31f662012-07-26 15:35:13 +010016bool kvm_allows_irq0_override(void);
17
Jan Kiszkab139bd32012-08-27 08:28:40 +020018int kvm_device_pci_assign(KVMState *s, PCIHostDeviceAddress *dev_addr,
19 uint32_t flags, uint32_t *dev_id);
20int kvm_device_pci_deassign(KVMState *s, uint32_t dev_id);
21
22int kvm_device_intx_assign(KVMState *s, uint32_t dev_id,
23 bool use_host_msi, uint32_t guest_irq);
24int kvm_device_intx_set_mask(KVMState *s, uint32_t dev_id, bool masked);
25int kvm_device_intx_deassign(KVMState *s, uint32_t dev_id, bool use_host_msi);
26
27int kvm_device_msi_assign(KVMState *s, uint32_t dev_id, int virq);
28int kvm_device_msi_deassign(KVMState *s, uint32_t dev_id);
29
30bool kvm_device_msix_supported(KVMState *s);
31int kvm_device_msix_init_vectors(KVMState *s, uint32_t dev_id,
32 uint32_t nr_vectors);
33int kvm_device_msix_set_vector(KVMState *s, uint32_t dev_id, uint32_t vector,
34 int virq);
35int kvm_device_msix_assign(KVMState *s, uint32_t dev_id);
36int kvm_device_msix_deassign(KVMState *s, uint32_t dev_id);
37
Peter Maydell1d31f662012-07-26 15:35:13 +010038#endif