diff options
author | Roman Kagan <rkagan@virtuozzo.com> | 2018-09-21 11:20:39 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-10-19 13:44:13 +0200 |
commit | 701189e31140a7c82ec02a7f4ca632cfd6a8559d (patch) | |
tree | 3d8be9e7f4a05214a33cf713a7f732be797ae0d9 /include/hw/hyperv | |
parent | 51f0ac63812abf41d3a9284a272c6275d7318705 (diff) | |
download | qemu-701189e31140a7c82ec02a7f4ca632cfd6a8559d.zip qemu-701189e31140a7c82ec02a7f4ca632cfd6a8559d.tar.gz qemu-701189e31140a7c82ec02a7f4ca632cfd6a8559d.tar.bz2 |
hyperv: factor out arch-independent API into hw/hyperv
A significant part of hyperv.c is not actually tied to x86, and can
be moved to hw/.
This will allow to maintain most of Hyper-V and VMBus
target-independent, and to avoid conflicts with inclusion of
arch-specific headers down the road in VMBus implementation.
Also this stuff can now be opt-out with CONFIG_HYPERV.
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Message-Id: <20180921082041.29380-4-rkagan@virtuozzo.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/hw/hyperv')
-rw-r--r-- | include/hw/hyperv/hyperv.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/hw/hyperv/hyperv.h b/include/hw/hyperv/hyperv.h new file mode 100644 index 0000000..d6c8d78 --- /dev/null +++ b/include/hw/hyperv/hyperv.h @@ -0,0 +1,31 @@ +/* + * Hyper-V guest/hypervisor interaction + * + * Copyright (c) 2015-2018 Virtuozzo International GmbH. + * + * 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 HW_HYPERV_HYPERV_H +#define HW_HYPERV_HYPERV_H + +#include "cpu-qom.h" + +typedef struct HvSintRoute HvSintRoute; +typedef void (*HvSintAckClb)(void *data); + +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 hyperv_sint_route_set_sint(HvSintRoute *sint_route); + +static inline uint32_t hyperv_vp_index(CPUState *cs) +{ + return cs->cpu_index; +} + +#endif |