[libvirt] [PATCH v6 07/13] conf: Introduce parser, formatter for uid and fid

Yi Min Zhao zyimin at linux.ibm.com
Tue Oct 16 03:12:51 UTC 2018



在 2018/10/11 下午7:45, Andrea Bolognani 写道:
> On Fri, 2018-09-28 at 16:46 +0800, Yi Min Zhao wrote:
>> This patch introduces new XML parser/formatter functions. Uid is
>> 16-bit and non-zero. Fid is 32-bit. They are the two attributes of zpci
>> which is introduced as PCI address element. Zpci element is parsed and
>> formatted along with PCI address. And add the related test cases.
>>
>> Signed-off-by: Yi Min Zhao <zyimin at linux.ibm.com>
>> ---
> No internal reviews this time around? :)
Yes, I just want to quickly know if this change is exact.
>
> [...]
>> @@ -227,9 +288,22 @@ virPCIDeviceAddressParseXML(xmlNodePtr node,
>>           goto cleanup;
>>   
>>       }
>> +
>>       if (!virPCIDeviceAddressIsEmpty(addr) && !virPCIDeviceAddressIsValid(addr, true))
>>           goto cleanup;
> Spurious whitespace change.
Oh...good catch.
>
> [...]
>> @@ -6528,7 +6528,19 @@ virDomainDeviceInfoFormat(virBufferPtr buf,
>>           break;
>>       }
>>   
>> -    virBufferAddLit(buf, "/>\n");
>> +    if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
>> +        !virZPCIDeviceAddressIsEmpty(&info->addr.pci.zpci)) {
>> +        virBufferAddLit(buf, ">\n");
>> +        virBufferAdjustIndent(buf, 2);
>> +        virBufferAsprintf(buf,
>> +                          "<zpci uid='0x%.4x' fid='0x%.8x'/>\n",
>> +                          info->addr.pci.zpci.uid,
>> +                          info->addr.pci.zpci.fid);
>> +        virBufferAdjustIndent(buf, -2);
>> +        virBufferAddLit(buf, "</address>\n");
>> +    } else {
>> +        virBufferAddLit(buf, "/>\n");
>> +    }
> This looks like a perfect candidate for virXMLFormatElement(). You
> should probably convert the original code to use that function in a
> separate commit, then start actually using a child buffer here.
Sure.
>
> [...]
>> @@ -2566,6 +2566,7 @@ virPCIHeaderTypeToString;
>>   virPCIIsVirtualFunction;
>>   virPCIStubDriverTypeFromString;
>>   virPCIStubDriverTypeToString;
>> +virZPCIDeviceAddressIsEmpty;
> You can move virZPCIDeviceAddressIsValid() to util/virpci and
> export it too, to be consistent with virPCIDeviceAddress*().
It has been moved to util/virpci. Isn't it?
>
> [...]
>> @@ -272,4 +275,6 @@ VIR_DEFINE_AUTOPTR_FUNC(virPCIDevice, virPCIDeviceFree)
>>   VIR_DEFINE_AUTOPTR_FUNC(virPCIDeviceAddress, virPCIDeviceAddressFree)
>>   VIR_DEFINE_AUTOPTR_FUNC(virPCIEDeviceInfo, virPCIEDeviceInfoFree)
>>   
>> +bool virZPCIDeviceAddressIsEmpty(const virZPCIDeviceAddress *addr);
>> +
> Please place this further up in the file, eg. after
> virPCIDeviceAddressParse().
Sure.
>
>
> Everything else looks good.
>

-- 
Yi Min




More information about the libvir-list mailing list