
Multiple entities (e.g. VMBus devices) can use the same SINT route. To make their lives easier in maintaining SINT route ownership, make it reference-counted. Adjust the respective API names accordingly. Signed-off-by: Roman Kagan <rkagan@virtuozzo.com> Message-Id: <20180921081836.29230-8-rkagan@virtuozzo.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
37 lines
1002 B
C
37 lines
1002 B
C
/*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef TARGET_I386_HYPERV_H
|
|
#define TARGET_I386_HYPERV_H
|
|
|
|
#include "cpu.h"
|
|
#include "sysemu/kvm.h"
|
|
|
|
typedef struct HvSintRoute HvSintRoute;
|
|
typedef void (*HvSintAckClb)(void *data);
|
|
|
|
int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit);
|
|
|
|
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);
|
|
|
|
int kvm_hv_sint_route_set_sint(HvSintRoute *sint_route);
|
|
|
|
uint32_t hyperv_vp_index(X86CPU *cpu);
|
|
X86CPU *hyperv_find_vcpu(uint32_t vp_index);
|
|
|
|
#endif
|