1
0

Allow parsing <graphics> in device XML

Expand the parser for the standalone <device> XML format to
allow inclusion of the <graphics> device type

* src/conf/domain_conf.h: Add virDomainGraphicsDef to
  the virDomainDeviceDef struct
* src/conf/domain_conf.c: Wire up parser for virDomainGraphicsDef
  to virDomainDeviceDefParse method
This commit is contained in:
Daniel P. Berrange 2010-03-22 13:22:48 +00:00
parent ced154cb54
commit c85f641390
2 changed files with 11 additions and 1 deletions

View File

@ -88,7 +88,8 @@ VIR_ENUM_IMPL(virDomainDevice, VIR_DOMAIN_DEVICE_LAST,
"video", "video",
"hostdev", "hostdev",
"watchdog", "watchdog",
"controller") "controller",
"graphics")
VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST, VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST,
"none", "none",
@ -575,6 +576,9 @@ void virDomainDeviceDefFree(virDomainDeviceDefPtr def)
case VIR_DOMAIN_DEVICE_CONTROLLER: case VIR_DOMAIN_DEVICE_CONTROLLER:
virDomainControllerDefFree(def->data.controller); virDomainControllerDefFree(def->data.controller);
break; break;
case VIR_DOMAIN_DEVICE_GRAPHICS:
virDomainGraphicsDefFree(def->data.graphics);
break;
} }
VIR_FREE(def); VIR_FREE(def);
@ -3299,6 +3303,10 @@ virDomainDeviceDefPtr virDomainDeviceDefParse(virCapsPtr caps,
dev->type = VIR_DOMAIN_DEVICE_CONTROLLER; dev->type = VIR_DOMAIN_DEVICE_CONTROLLER;
if (!(dev->data.controller = virDomainControllerDefParseXML(node, flags))) if (!(dev->data.controller = virDomainControllerDefParseXML(node, flags)))
goto error; goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "graphics")) {
dev->type = VIR_DOMAIN_DEVICE_GRAPHICS;
if (!(dev->data.graphics = virDomainGraphicsDefParseXML(node, flags)))
goto error;
} else { } else {
virDomainReportError(VIR_ERR_XML_ERROR, virDomainReportError(VIR_ERR_XML_ERROR,
"%s", _("unknown device type")); "%s", _("unknown device type"));

View File

@ -544,6 +544,7 @@ enum virDomainDeviceType {
VIR_DOMAIN_DEVICE_HOSTDEV, VIR_DOMAIN_DEVICE_HOSTDEV,
VIR_DOMAIN_DEVICE_WATCHDOG, VIR_DOMAIN_DEVICE_WATCHDOG,
VIR_DOMAIN_DEVICE_CONTROLLER, VIR_DOMAIN_DEVICE_CONTROLLER,
VIR_DOMAIN_DEVICE_GRAPHICS,
VIR_DOMAIN_DEVICE_LAST, VIR_DOMAIN_DEVICE_LAST,
}; };
@ -562,6 +563,7 @@ struct _virDomainDeviceDef {
virDomainVideoDefPtr video; virDomainVideoDefPtr video;
virDomainHostdevDefPtr hostdev; virDomainHostdevDefPtr hostdev;
virDomainWatchdogDefPtr watchdog; virDomainWatchdogDefPtr watchdog;
virDomainGraphicsDefPtr graphics;
} data; } data;
}; };