@@ -444,6 +444,14 @@
*/
#define LIBXL_HAVE_DISK_SAFE_REMOVE 1
+/*
+ * LIBXL_HAVE_BUILDINFO_DISABLE_EVTCHN_FIFO indicates that
+ * libxl_domain_build_info has a disable_evtchn_fifo (boolean) field
+ * to determine whether the EVTCHNOPs to initialize and manipulate FIFO
+ * event channels are exposed to the guest.
+ */
+#define LIBXL_HAVE_BUILDINFO_DISABLE_EVTCHN_FIFO 1
+
/*
* libxl ABI compatibility
*
@@ -263,6 +263,8 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
if (!b_info->event_channels)
b_info->event_channels = 1023;
+ libxl_defbool_setdefault(&b_info->disable_evtchn_fifo, false);
+
libxl__arch_domain_build_info_setdefault(gc, b_info);
libxl_defbool_setdefault(&b_info->dm_restrict, false);
@@ -609,6 +611,9 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
.max_maptrack_frames = b_info->max_maptrack_frames,
};
+ if (libxl_defbool_val(b_info->disable_evtchn_fifo))
+ create.flags |= XEN_DOMCTL_CDF_disable_fifo;
+
if (info->type != LIBXL_DOMAIN_TYPE_PV) {
create.flags |= XEN_DOMCTL_CDF_hvm;
@@ -541,6 +541,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
("iomem", Array(libxl_iomem_range, "num_iomem")),
("claim_mode", libxl_defbool),
("event_channels", uint32),
+ ("disable_evtchn_fifo",libxl_defbool),
("kernel", string),
("cmdline", string),
("ramdisk", string),