On Wed, 2016-01-20 at 12:57 +0100, Roger Pau Monne wrote: > And use it as the default value for the VGA kind. This allows libxl to > set > it to the default value later on when the domain type is known. For HVM > guests the default value is LIBXL_VGA_INTERFACE_TYPE_CIRRUS while for > HVMlite the default value is LIBXL_VGA_INTERFACE_TYPE_NONE.
Most enums in lixl_type.idl call this value "UNKNOWN" rather than "UNDEF". We should be consistent. You will also need to add the usual #define LIBXL_HAVE to libxl.h. Everything else looks ok to me. > > Signed-off-by: Roger Pau Monné <roger....@citrix.com> > --- > Cc: Ian Jackson <ian.jack...@eu.citrix.com> > Cc: Ian Campbell <ian.campb...@citrix.com> > Cc: Wei Liu <wei.l...@citrix.com> > --- > tools/libxl/libxl_create.c | 8 ++++++-- > tools/libxl/libxl_dm.c | 6 ++++++ > tools/libxl/libxl_types.idl | 3 ++- > 3 files changed, 14 insertions(+), 3 deletions(-) > > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index e491d83..61a4001 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -206,8 +206,12 @@ int libxl__domain_build_info_setdefault(libxl__gc > *gc, > 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_UNDEF) { > + 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; > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > index a088d71..9aa0cc8 100644 > --- a/tools/libxl/libxl_dm.c > +++ b/tools/libxl/libxl_dm.c > @@ -531,6 +531,9 @@ static int > libxl__build_device_model_args_old(libxl__gc *gc, > 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) { > @@ -970,6 +973,9 @@ static int > libxl__build_device_model_args_new(libxl__gc *gc, > 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) { > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index 9ad7eba..92c95e5 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -204,11 +204,12 @@ libxl_shutdown_reason = > Enumeration("shutdown_reason", [ > ], init_val = "LIBXL_SHUTDOWN_REASON_UNKNOWN") > > libxl_vga_interface_type = Enumeration("vga_interface_type", [ > + (0, "UNDEF"), > (1, "CIRRUS"), > (2, "STD"), > (3, "NONE"), > (4, "QXL"), > - ], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS") > + ], init_val = "LIBXL_VGA_INTERFACE_TYPE_UNDEF") > > libxl_vendor_device = Enumeration("vendor_device", [ > (0, "NONE"), _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel