2015-11-10 12:52:43 +00:00
|
|
|
/*
|
|
|
|
* QEMU KVM Hyper-V support
|
|
|
|
*
|
|
|
|
* Copyright (C) 2015 Andrey Smetanin <asmetanin@virtuozzo.com>
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Andrey Smetanin <asmetanin@virtuozzo.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.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2016-06-29 08:12:57 +00:00
|
|
|
#ifndef TARGET_I386_HYPERV_H
|
|
|
|
#define TARGET_I386_HYPERV_H
|
2015-11-10 12:52:43 +00:00
|
|
|
|
|
|
|
#include "cpu.h"
|
|
|
|
#include "sysemu/kvm.h"
|
|
|
|
|
|
|
|
typedef struct HvSintRoute HvSintRoute;
|
2018-09-21 08:18:33 +00:00
|
|
|
typedef void (*HvSintAckClb)(void *data);
|
2015-11-10 12:52:43 +00:00
|
|
|
|
|
|
|
int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit);
|
|
|
|
|
2018-09-21 08:18:35 +00:00
|
|
|
HvSintRoute *hyperv_sint_route_new(uint32_t vp_index, uint32_t sint,
|
|
|
|
HvSintAckClb sint_ack_clb,
|
|
|
|
void *sint_ack_clb_data);
|
|
|
|
void hyperv_sint_route_ref(HvSintRoute *sint_route);
|
|
|
|
void hyperv_sint_route_unref(HvSintRoute *sint_route);
|
2015-11-10 12:52:43 +00:00
|
|
|
|
2018-09-21 08:18:36 +00:00
|
|
|
int hyperv_sint_route_set_sint(HvSintRoute *sint_route);
|
2015-11-10 12:52:43 +00:00
|
|
|
|
2018-09-21 08:20:38 +00:00
|
|
|
static inline uint32_t hyperv_vp_index(X86CPU *cpu)
|
|
|
|
{
|
|
|
|
return CPU(cpu)->cpu_index;
|
|
|
|
}
|
2018-07-02 13:41:56 +00:00
|
|
|
|
2015-11-10 12:52:43 +00:00
|
|
|
#endif
|