From: Denis Mukhin <dmukhin@ford.com>
Move domain_has_vuart() to arch namespace as preparation code change for
architecture-agnostic way of forwarding physical console to the guest OS w/
in-hypervisor UART emulator.
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
xen/arch/arm/include/asm/domain.h | 9 +++++++++
xen/arch/arm/vpl011.c | 2 ++
xen/arch/arm/vuart.c | 4 ++--
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index f1d72c6e48dfeba347b4cd091ca33603c368b7c0..2bbd3f472176bdcfbc0f95f9d8809343d11965c8 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -119,8 +119,17 @@ struct arch_domain
void *tee;
#endif
+ /* Emulated devices enabled bitmap. */
+ uint32_t emulation_flags;
+
} __cacheline_aligned;
+enum {
+ ARM_EMU_VUART = BIT(0, U),
+};
+
+#define domain_has_vuart(d) (!!((d)->arch.emulation_flags & ARM_EMU_VUART))
+
struct arch_vcpu
{
struct {
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 8ade6f2588b8bbcc58fb0f9edc324502a1992ce7..140dca48e0a3901cba289dbc6eb117358134d917 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -730,6 +730,8 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
register_mmio_handler(d, &vpl011_mmio_handler,
vpl011->base_addr, GUEST_PL011_SIZE, NULL);
+ d->arch.emulation_flags |= ARM_EMU_VUART;
+
return 0;
out1:
diff --git a/xen/arch/arm/vuart.c b/xen/arch/arm/vuart.c
index 38ce8cc14fac4132578059b696be952b29fab809..8ca8ae5523a7924846df4324f9e0a81f225756ad 100644
--- a/xen/arch/arm/vuart.c
+++ b/xen/arch/arm/vuart.c
@@ -31,8 +31,6 @@
#include "vuart.h"
-#define domain_has_vuart(d) ((d)->arch.vuart.info != NULL)
-
static int vuart_mmio_read(struct vcpu *v, mmio_info_t *info,
register_t *r, void *priv);
static int vuart_mmio_write(struct vcpu *v, mmio_info_t *info,
@@ -63,6 +61,8 @@ int domain_vuart_init(struct domain *d)
d->arch.vuart.info->size,
NULL);
+ d->arch.emulation_flags |= ARM_EMU_VUART;
+
return 0;
}
--
2.34.1