[libvirt] [PATCH v3 2/4] conf: Parse virtio-crypto in the domain XML
Longpeng (Mike)
longpeng2 at huawei.com
Thu Jul 6 13:52:06 UTC 2017
Hi Marc,
On 2017/7/6 21:19, Marc Hartmayer wrote:
> On Wed, Jul 05, 2017 at 01:17 PM +0200, "Longpeng(Mike)" <longpeng2 at huawei.com> wrote:
>> This patch parse the domain XML with virtio-crypto
>> support, the virtio-crypto XML looks like this:
>>
[...]
>> + queues = virXMLPropString(backends[0], "queues");
>> + if (queues && virStrToLong_ui(queues, NULL, 10, &def->queues) < 0) {
>> + virReportError(VIR_ERR_XML_ERROR,
>> + _("Malformed 'queues' value '%s'"), queues);
> ^^
> Indentation
OK. :)
>
>> + break;
>> +
>> + case VIR_DOMAIN_CRYPTO_BACKEND_LAST:
>> + break;
>> + }
>> +
>> + if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0)
>> + goto error;
>> +
>> + cleanup:
>> + VIR_FREE(model);
>> + VIR_FREE(backend);
>> + VIR_FREE(queues);
>> + VIR_FREE(backends);
>> + ctxt->node = save;
>> + return def;
>> +
>> + error:
>> + virDomainCryptoDefFree(def);
>> + def = NULL;
>> + goto cleanup;
>> +}
>> +
>> +
[...]
>>
>> static int
>> +virDomainCryptoDefFormat(virBufferPtr buf,
>> + virDomainCryptoDefPtr def,
>> + unsigned int flags)
>> +{
>> + const char *model = virDomainCryptoModelTypeToString(def->model);
>> + const char *backend = virDomainCryptoBackendTypeToString(def->backend);
>> +
>> + virBufferAsprintf(buf, "<crypto model='%s'>\n", model);
>> + virBufferAdjustIndent(buf, 2);
>> + virBufferAsprintf(buf, "<backend type='%s'", backend);
>> +
>> + switch ((virDomainCryptoBackend) def->backend) {
>> + case VIR_DOMAIN_CRYPTO_BACKEND_BUILTIN:
>> + if (def->queues)
>> + virBufferAsprintf(buf, " queues='%u'", def->queues);
>> +
>> + virBufferAddLit(buf, "/>\n");
>> + break;
>> +
>> + case VIR_DOMAIN_CRYPTO_BACKEND_LAST:
>> + break;
>> + }
>> +
>> + if (virDomainDeviceInfoFormat(buf, &def->info, flags) < 0)
>> + return -1;
>> +
>> + virBufferAdjustIndent(buf, -2);
>> + virBufferAddLit(buf, "</crypto>\n");
>> + return 0;
>> +}
>> +
>> +void
>> +virDomainCryptoDefFree(virDomainCryptoDefPtr def)
>> +{
>> + if (!def)
>> + return;
>> +
>> + virDomainDeviceInfoClear(&def->info);
>> + VIR_FREE(def);
>> +}
>
> You should add 'virDomainCryptoDefFree' to libvirt_private.syms.
Thanks, I'll fix it.
>
>> +
>> +
>> +static int
>> virDomainMemorySourceDefFormat(virBufferPtr buf,
>> virDomainMemoryDefPtr def)
>> {
>> @@ -25418,6 +25621,11 @@ virDomainDefFormatInternal(virDomainDefPtr def,
>> goto error;
>
>
> Beste Grüße / Kind regards
> Marc Hartmayer
>
> IBM Deutschland Research & Development GmbH
> Vorsitzende des Aufsichtsrats: Martina Koederitz
> Geschäftsführung: Dirk Wittkopp
> Sitz der Gesellschaft: Böblingen
> Registergericht: Amtsgericht Stuttgart, HRB 243294
>
>
> .
>
--
Regards,
Longpeng(Mike)
More information about the libvir-list
mailing list