* @param node XML nodeset to parse for device address definition
*/
static int
-virDomainDeviceInfoParseXML(xmlNodePtr node,
+virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED,
+ xmlNodePtr node,
virHashTablePtr bootHash,
virDomainDeviceInfoPtr info,
unsigned int flags)
}
def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
} else {
- if (virDomainDeviceInfoParseXML(node, bootHash, &def->info,
+ if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0)
goto error;
}
* @param node XML nodeset to parse for controller definition
*/
static virDomainControllerDefPtr
-virDomainControllerDefParseXML(xmlNodePtr node,
+virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_USB &&
def->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) {
VIR_DEBUG("Ignoring device address for none model usb controller");
- } else if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0) {
+ } else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
+ &def->info, flags) < 0) {
goto error;
}
* @param node XML nodeset to parse for disk definition
*/
static virDomainFSDefPtr
-virDomainFSDefParseXML(xmlNodePtr node,
+virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
def->dst = target;
target = NULL;
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
cleanup:
}
def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
} else {
- if (virDomainDeviceInfoParseXML(node, bootHash, &def->info,
+ if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
| VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0)
goto error;
if (def->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
def->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD) {
VIR_DEBUG("Ignoring device address for gustfwd channel");
- } else if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0) {
+ } else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
+ &def->info, flags) < 0) {
goto error;
}
goto error;
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
if (def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID) {
*
*/
static virDomainTPMDefPtr
-virDomainTPMDefParseXML(xmlNodePtr node,
+virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
goto error;
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
cleanup:
}
static virDomainPanicDefPtr
-virDomainPanicDefParseXML(xmlNodePtr node,
+virDomainPanicDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
unsigned int flags)
{
virDomainPanicDefPtr panic;
if (VIR_ALLOC(panic) < 0)
return NULL;
- if (virDomainDeviceInfoParseXML(node, NULL, &panic->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
+ &panic->info, flags) < 0)
goto error;
model = virXMLPropString(node, "model");
/* Parse the XML definition for an input device */
static virDomainInputDefPtr
-virDomainInputDefParseXML(const virDomainDef *dom,
+virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt,
+ const virDomainDef *dom,
xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
}
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
if (def->bus == VIR_DOMAIN_INPUT_BUS_USB &&
/* Parse the XML definition for a hub device */
static virDomainHubDefPtr
-virDomainHubDefParseXML(xmlNodePtr node, unsigned int flags)
+virDomainHubDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
+ unsigned int flags)
{
virDomainHubDefPtr def;
char *type = NULL;
goto error;
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
cleanup:
static virDomainSoundDefPtr
-virDomainSoundDefParseXML(xmlNodePtr node,
+virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
}
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
cleanup:
static virDomainWatchdogDefPtr
-virDomainWatchdogDefParseXML(xmlNodePtr node,
+virDomainWatchdogDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
unsigned int flags)
{
}
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
cleanup:
break;
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt),
static virDomainMemballoonDefPtr
-virDomainMemballoonDefParseXML(xmlNodePtr node,
+virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
if (def->model == VIR_DOMAIN_MEMBALLOON_MODEL_NONE)
VIR_DEBUG("Ignoring device address for none model Memballoon");
- else if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
+ &def->info, flags) < 0)
goto error;
if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt),
}
static virDomainNVRAMDefPtr
-virDomainNVRAMDefParseXML(xmlNodePtr node,
+virDomainNVRAMDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
unsigned int flags)
{
virDomainNVRAMDefPtr def;
if (VIR_ALLOC(def) < 0)
return NULL;
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
return def;
}
static virDomainShmemDefPtr
-virDomainShmemDefParseXML(xmlNodePtr node,
+virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
goto cleanup;
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto cleanup;
}
static virDomainVideoDefPtr
-virDomainVideoDefParseXML(xmlNodePtr node,
+virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr node,
xmlXPathContextPtr ctxt,
const virDomainDef *dom,
unsigned int flags)
}
}
- if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
goto error;
def->driver = virDomainVideoDriverDefParseXML(node);
}
if (def->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
- if (virDomainDeviceInfoParseXML(node, bootHash, def->info,
+ if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, def->info,
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
| VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0)
goto error;
if (def->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC)
def->source->data.spicevmc = VIR_DOMAIN_CHR_SPICEVMC_USBREDIR;
- if (virDomainDeviceInfoParseXML(node, bootHash, &def->info,
+ if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0)
goto error;
static virDomainMemoryDefPtr
-virDomainMemoryDefParseXML(xmlNodePtr memdevNode,
+virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt,
+ xmlNodePtr memdevNode,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
if (virDomainMemoryTargetDefParseXML(node, ctxt, def) < 0)
goto error;
- if (virDomainDeviceInfoParseXML(memdevNode, NULL, &def->info, flags) < 0)
+ if (virDomainDeviceInfoParseXML(xmlopt, memdevNode,
+ NULL, &def->info, flags) < 0)
goto error;
ctxt->node = save;
goto error;
break;
case VIR_DOMAIN_DEVICE_FS:
- if (!(dev->data.fs = virDomainFSDefParseXML(node, ctxt, flags)))
+ if (!(dev->data.fs = virDomainFSDefParseXML(xmlopt, node, ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_NET:
goto error;
break;
case VIR_DOMAIN_DEVICE_INPUT:
- if (!(dev->data.input = virDomainInputDefParseXML(def, node,
+ if (!(dev->data.input = virDomainInputDefParseXML(xmlopt, def, node,
ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_SOUND:
- if (!(dev->data.sound = virDomainSoundDefParseXML(node, ctxt, flags)))
+ if (!(dev->data.sound = virDomainSoundDefParseXML(xmlopt, node,
+ ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_WATCHDOG:
- if (!(dev->data.watchdog = virDomainWatchdogDefParseXML(node, flags)))
+ if (!(dev->data.watchdog = virDomainWatchdogDefParseXML(xmlopt,
+ node, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_VIDEO:
- if (!(dev->data.video = virDomainVideoDefParseXML(node, ctxt, def, flags)))
+ if (!(dev->data.video = virDomainVideoDefParseXML(xmlopt, node,
+ ctxt, def, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_HOSTDEV:
goto error;
break;
case VIR_DOMAIN_DEVICE_CONTROLLER:
- if (!(dev->data.controller = virDomainControllerDefParseXML(node, ctxt,
- flags)))
+ if (!(dev->data.controller = virDomainControllerDefParseXML(xmlopt, node,
+ ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_GRAPHICS:
goto error;
break;
case VIR_DOMAIN_DEVICE_HUB:
- if (!(dev->data.hub = virDomainHubDefParseXML(node, flags)))
+ if (!(dev->data.hub = virDomainHubDefParseXML(xmlopt, node, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_REDIRDEV:
goto error;
break;
case VIR_DOMAIN_DEVICE_MEMBALLOON:
- if (!(dev->data.memballoon = virDomainMemballoonDefParseXML(node,
+ if (!(dev->data.memballoon = virDomainMemballoonDefParseXML(xmlopt,
+ node,
ctxt,
flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_NVRAM:
- if (!(dev->data.nvram = virDomainNVRAMDefParseXML(node, flags)))
+ if (!(dev->data.nvram = virDomainNVRAMDefParseXML(xmlopt, node, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_SHMEM:
- if (!(dev->data.shmem = virDomainShmemDefParseXML(node, ctxt, flags)))
+ if (!(dev->data.shmem = virDomainShmemDefParseXML(xmlopt, node,
+ ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_TPM:
- if (!(dev->data.tpm = virDomainTPMDefParseXML(node, ctxt, flags)))
+ if (!(dev->data.tpm = virDomainTPMDefParseXML(xmlopt, node, ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_PANIC:
- if (!(dev->data.panic = virDomainPanicDefParseXML(node, flags)))
+ if (!(dev->data.panic = virDomainPanicDefParseXML(xmlopt, node, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_MEMORY:
- if (!(dev->data.memory = virDomainMemoryDefParseXML(node, ctxt, flags)))
+ if (!(dev->data.memory = virDomainMemoryDefParseXML(xmlopt, node,
+ ctxt, flags)))
goto error;
break;
case VIR_DOMAIN_DEVICE_IOMMU:
goto error;
for (i = 0; i < n; i++) {
- virDomainControllerDefPtr controller = virDomainControllerDefParseXML(nodes[i],
+ virDomainControllerDefPtr controller = virDomainControllerDefParseXML(xmlopt,
+ nodes[i],
ctxt,
flags);
if (n && VIR_ALLOC_N(def->fss, n) < 0)
goto error;
for (i = 0; i < n; i++) {
- virDomainFSDefPtr fs = virDomainFSDefParseXML(nodes[i], ctxt,
+ virDomainFSDefPtr fs = virDomainFSDefParseXML(xmlopt,
+ nodes[i],
+ ctxt,
flags);
if (!fs)
goto error;
goto error;
for (i = 0; i < n; i++) {
- virDomainInputDefPtr input = virDomainInputDefParseXML(def,
+ virDomainInputDefPtr input = virDomainInputDefParseXML(xmlopt,
+ def,
nodes[i],
ctxt,
flags);
if (n && VIR_ALLOC_N(def->sounds, n) < 0)
goto error;
for (i = 0; i < n; i++) {
- virDomainSoundDefPtr sound = virDomainSoundDefParseXML(nodes[i],
+ virDomainSoundDefPtr sound = virDomainSoundDefParseXML(xmlopt,
+ nodes[i],
ctxt,
flags);
if (!sound)
virDomainVideoDefPtr video;
ssize_t insertAt = -1;
- if (!(video = virDomainVideoDefParseXML(nodes[i], ctxt, def, flags)))
+ if (!(video = virDomainVideoDefParseXML(xmlopt, nodes[i],
+ ctxt, def, flags)))
goto error;
if (video->primary) {
goto error;
}
if (n > 0) {
- virDomainWatchdogDefPtr watchdog =
- virDomainWatchdogDefParseXML(nodes[0], flags);
+ virDomainWatchdogDefPtr watchdog;
+
+ watchdog = virDomainWatchdogDefParseXML(xmlopt, nodes[0], flags);
if (!watchdog)
goto error;
goto error;
}
if (n > 0) {
- virDomainMemballoonDefPtr memballoon =
- virDomainMemballoonDefParseXML(nodes[0], ctxt, flags);
+ virDomainMemballoonDefPtr memballoon;
+
+ memballoon = virDomainMemballoonDefParseXML(xmlopt, nodes[0], ctxt, flags);
if (!memballoon)
goto error;
}
if (n > 0) {
- if (!(def->tpm = virDomainTPMDefParseXML(nodes[0], ctxt, flags)))
+ if (!(def->tpm = virDomainTPMDefParseXML(xmlopt, nodes[0], ctxt, flags)))
goto error;
}
VIR_FREE(nodes);
goto error;
} else if (n == 1) {
virDomainNVRAMDefPtr nvram =
- virDomainNVRAMDefParseXML(nodes[0], flags);
+ virDomainNVRAMDefParseXML(xmlopt, nodes[0], flags);
if (!nvram)
goto error;
def->nvram = nvram;
if (n && VIR_ALLOC_N(def->hubs, n) < 0)
goto error;
for (i = 0; i < n; i++) {
- virDomainHubDefPtr hub = virDomainHubDefParseXML(nodes[i], flags);
+ virDomainHubDefPtr hub;
+
+ hub = virDomainHubDefParseXML(xmlopt, nodes[i], flags);
if (!hub)
goto error;
if (n && VIR_ALLOC_N(def->panics, n) < 0)
goto error;
for (i = 0; i < n; i++) {
- virDomainPanicDefPtr panic = virDomainPanicDefParseXML(nodes[i], flags);
+ virDomainPanicDefPtr panic;
+
+ panic = virDomainPanicDefParseXML(xmlopt, nodes[i], flags);
if (!panic)
goto error;
for (i = 0; i < n; i++) {
virDomainShmemDefPtr shmem;
ctxt->node = nodes[i];
- shmem = virDomainShmemDefParseXML(nodes[i], ctxt, flags);
+ shmem = virDomainShmemDefParseXML(xmlopt, nodes[i], ctxt, flags);
if (!shmem)
goto error;
goto error;
for (i = 0; i < n; i++) {
- virDomainMemoryDefPtr mem = virDomainMemoryDefParseXML(nodes[i],
+ virDomainMemoryDefPtr mem = virDomainMemoryDefParseXML(xmlopt,
+ nodes[i],
ctxt,
flags);
if (!mem)