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.andr...@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