kvm-stub.c 2.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * QEMU KVM stub
 *
 * Copyright Red Hat, Inc. 2010
 *
 * Author: Paolo Bonzini     <pbonzini@redhat.com>
 *
 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 * See the COPYING file in the top-level directory.
 *
 */

#include "qemu-common.h"
#include "hw/hw.h"
15
#include "cpu.h"
16
#include "sysemu/kvm.h"
17

18 19 20 21
#ifndef CONFIG_USER_ONLY
#include "hw/pci/msi.h"
#endif

22
KVMState *kvm_state;
23
bool kvm_kernel_irqchip;
24
bool kvm_async_interrupts_allowed;
25
bool kvm_irqfds_allowed;
26
bool kvm_msi_via_irqfd_allowed;
27
bool kvm_gsi_routing_allowed;
28
bool kvm_allowed;
29
bool kvm_readonly_mem_allowed;
30

31
int kvm_init_vcpu(CPUState *cpu)
32 33 34 35
{
    return -ENOSYS;
}

36
int kvm_init(void)
37 38 39 40 41 42 43 44
{
    return -ENOSYS;
}

void kvm_flush_coalesced_mmio_buffer(void)
{
}

45
void kvm_cpu_synchronize_state(CPUState *cpu)
46 47 48
{
}

49
void kvm_cpu_synchronize_post_reset(CPUState *cpu)
50 51 52
{
}

53
void kvm_cpu_synchronize_post_init(CPUState *cpu)
54 55 56
{
}

57
int kvm_cpu_exec(CPUState *cpu)
58
{
59
    abort();
60 61 62 63 64 65 66
}

int kvm_has_sync_mmu(void)
{
    return 0;
}

67 68 69 70 71
int kvm_has_many_ioeventfds(void)
{
    return 0;
}

J
Jan Kiszka 已提交
72 73 74 75 76
int kvm_has_pit_state2(void)
{
    return 0;
}

77 78 79 80
void kvm_setup_guest_memory(void *start, size_t size)
{
}

81
int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_trap)
82
{
J
Jan Kiszka 已提交
83
    return -ENOSYS;
84 85
}

86
int kvm_insert_breakpoint(CPUArchState *env, target_ulong addr,
87 88 89 90 91
                          target_ulong len, int type)
{
    return -EINVAL;
}

92
int kvm_remove_breakpoint(CPUArchState *env, target_ulong addr,
93 94 95 96 97
                          target_ulong len, int type)
{
    return -EINVAL;
}

98
void kvm_remove_all_breakpoints(CPUArchState *env)
99 100 101 102
{
}

#ifndef _WIN32
103
int kvm_set_signal_mask(CPUState *cpu, const sigset_t *sigset)
104 105 106 107 108
{
    abort();
}
#endif

109
int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr)
110 111 112 113
{
    return 1;
}

M
Marcelo Tosatti 已提交
114 115 116 117
int kvm_on_sigbus(int code, void *addr)
{
    return 1;
}
118

119
#ifndef CONFIG_USER_ONLY
120 121 122 123
int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
{
    return -ENOSYS;
}
124

125 126 127 128
void kvm_init_irq_routing(KVMState *s)
{
}

129 130 131
void kvm_irqchip_release_virq(KVMState *s, int virq)
{
}
132

133 134 135 136 137
int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)
{
    return -ENOSYS;
}

J
Jan Kiszka 已提交
138
int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)
139 140 141 142
{
    return -ENOSYS;
}

J
Jan Kiszka 已提交
143
int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)
144 145 146
{
    return -ENOSYS;
}
147
#endif