There isn't currently a way to determine if a domain is the hardware
domain or a privilged (control) domain. Add new domain info flags to
indicate these properties.
This is useful for a hyperlaunch-ed xenstore domain to determine which
domains are privileged.
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
xen/common/domctl.c | 2 ++
xen/include/public/domctl.h | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 05abb581a0..3c6dcfed87 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -103,6 +103,8 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
(d->debugger_attached ? XEN_DOMINF_debugged : 0) |
(is_xenstore_domain(d) ? XEN_DOMINF_xs_domain : 0) |
(is_hvm_domain(d) ? XEN_DOMINF_hvm_guest : 0) |
+ (is_hardware_domain(d) ? XEN_DOMINF_hardware : 0) |
+ (is_control_domain(d) ? XEN_DOMINF_priv : 0) |
d->shutdown_code << XEN_DOMINF_shutdownshift;
xsm_security_domaininfo(d, info);
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index e2d392d1e5..84c2af6a09 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -155,6 +155,12 @@ struct xen_domctl_getdomaininfo {
/* domain has hardware assisted paging */
#define _XEN_DOMINF_hap 8
#define XEN_DOMINF_hap (1U<<_XEN_DOMINF_hap)
+/* domain is hardware domain */
+#define _XEN_DOMINF_hardware 9
+#define XEN_DOMINF_hardware (1U<<_XEN_DOMINF_hardware)
+/* domain is privileged */
+#define _XEN_DOMINF_priv 10
+#define XEN_DOMINF_priv (1U<<_XEN_DOMINF_priv)
/* XEN_DOMINF_shutdown guest-supplied code. */
#define XEN_DOMINF_shutdownmask 255
#define XEN_DOMINF_shutdownshift 16
--
2.48.1