#include <xen/hypercall.h>
#include <public/sysctl.h>
-void arch_do_physinfo(struct xen_sysctl_physinfo *pi) { }
+void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
+{
+ pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm;
+}
long arch_do_sysctl(struct xen_sysctl *sysctl,
XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm;
if ( IS_ENABLED(CONFIG_PV) )
pi->capabilities |= XEN_SYSCTL_PHYSCAP_pv;
- if ( iommu_enabled )
- pi->capabilities |= XEN_SYSCTL_PHYSCAP_directio;
}
long arch_do_sysctl(
pi->cpu_khz = cpu_khz;
pi->max_mfn = get_upper_mfn_bound();
arch_do_physinfo(pi);
+ if ( iommu_enabled )
+ pi->capabilities |= XEN_SYSCTL_PHYSCAP_directio;
if ( copy_to_guest(u_sysctl, op, 1) )
ret = -EFAULT;
* Get physical information about the host machine
*/
/* XEN_SYSCTL_physinfo */
- /* (x86) The platform supports HVM guests. */
+ /* The platform supports HVM guests. */
#define _XEN_SYSCTL_PHYSCAP_hvm 0
#define XEN_SYSCTL_PHYSCAP_hvm (1u<<_XEN_SYSCTL_PHYSCAP_hvm)
- /* (x86) The platform supports PV guests. */
+ /* The platform supports PV guests. */
#define _XEN_SYSCTL_PHYSCAP_pv 1
#define XEN_SYSCTL_PHYSCAP_pv (1u<<_XEN_SYSCTL_PHYSCAP_pv)
- /* (x86) The platform supports direct access to I/O devices with IOMMU. */
+ /* The platform supports direct access to I/O devices with IOMMU. */
#define _XEN_SYSCTL_PHYSCAP_directio 2
#define XEN_SYSCTL_PHYSCAP_directio (1u<<_XEN_SYSCTL_PHYSCAP_directio)
struct xen_sysctl_physinfo {