ERROR_CHECKPOINT_DEVICE_NOT_SUPPORTED
#endif
+/*
+ * LIBXL_HAVE_VGA_INTERFACE_TYPE_UNKNOWN
+ *
+ * In the case that LIBXL_HAVE_VGA_INTERFACE_TYPE_UNKNOWN is set the
+ * libxl_vga_interface_type enumeration type contains a
+ * LIBXL_VGA_INTERFACE_TYPE_UNKNOWN identifier. This is used to signal
+ * that a libxl_vga_interface_type type has not been initialized yet.
+ */
+#define LIBXL_HAVE_VGA_INTERFACE_TYPE_UNKNOWN 1
+
typedef char **libxl_string_list;
void libxl_string_list_dispose(libxl_string_list *sl);
int libxl_string_list_length(const libxl_string_list *sl);
if (b_info->u.hvm.mmio_hole_memkb == LIBXL_MEMKB_DEFAULT)
b_info->u.hvm.mmio_hole_memkb = 0;
- if (!b_info->u.hvm.vga.kind)
- b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
+ if (b_info->u.hvm.vga.kind == LIBXL_VGA_INTERFACE_TYPE_UNKNOWN) {
+ if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_NONE)
+ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
+ else
+ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
+ }
if (!b_info->u.hvm.hdtype)
b_info->u.hvm.hdtype = LIBXL_HDTYPE_IDE;
}
break;
case LIBXL_DEVICE_MODEL_VERSION_NONE:
+ if (b_info->u.hvm.vga.kind != LIBXL_VGA_INTERFACE_TYPE_NONE) {
+ LOG(ERROR,
+ "guests without a device model cannot have an emulated video card");
+ return ERROR_INVAL;
+ }
b_info->video_memkb = 0;
break;
case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
break;
case LIBXL_VGA_INTERFACE_TYPE_QXL:
break;
+ default:
+ LOG(ERROR, "Invalid emulated video card specified");
+ return ERROR_INVAL;
}
if (b_info->u.hvm.boot) {
GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
(b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
break;
+ default:
+ LOG(ERROR, "Invalid emulated video card specified");
+ return ERROR_INVAL;
}
if (b_info->u.hvm.boot) {
], init_val = "LIBXL_SHUTDOWN_REASON_UNKNOWN")
libxl_vga_interface_type = Enumeration("vga_interface_type", [
+ (0, "UNKNOWN"),
(1, "CIRRUS"),
(2, "STD"),
(3, "NONE"),
(4, "QXL"),
- ], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS")
+ ], init_val = "LIBXL_VGA_INTERFACE_TYPE_UNKNOWN")
libxl_vendor_device = Enumeration("vendor_device", [
(0, "NONE"),