[libvirt] [PATCHv2 04/17] conf: add virDomainControllerDefNew()

Laine Stump laine at laine.org
Fri Jul 24 15:16:34 UTC 2015


On 07/22/2015 03:11 PM, John Ferlan wrote:
>
> On 07/17/2015 02:43 PM, Laine Stump wrote:
>> There are some non-0 default values in virDomainControllerDef (and
>> will soon be more) that are easier to not forget if the remembering is
>> done by a single initializer function (rather than inline code after
>> allocating the obejct with generic VIR_ALLOC().
>> ---
>> new in V2
>>
>>  src/conf/domain_conf.c | 64 +++++++++++++++++++++++++++++++++-----------------
>>  1 file changed, 43 insertions(+), 21 deletions(-)
>>
>> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>> index 5a9a88d..8dd4bf0 100644
>> --- a/src/conf/domain_conf.c
>> +++ b/src/conf/domain_conf.c
>> @@ -1527,6 +1527,37 @@ virDomainDiskSetFormat(virDomainDiskDefPtr def, int format)
>>  }
>>  
>>  
>> +static virDomainControllerDefPtr
>> +virDomainControllerDefNew(virDomainControllerType type)
>> +{
>> +    virDomainControllerDefPtr def;
>> +
>> +    if (VIR_ALLOC(def) < 0)
>> +        return NULL;
>> +
>> +    def->type = type;
>> +
>> +    /* initialize anything that has a non-0 default */
>> +    switch ((virDomainControllerType) def->type) {
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
>> +        def->opts.vioserial.ports = -1;
>> +        def->opts.vioserial.vectors = -1;
>> +        break;
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_PCI:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_USB:
>> +    case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
>> +        break;
>> +    }
>> +
>> +    return def;
>> +}
>> +
>> +
>>  void virDomainControllerDefFree(virDomainControllerDefPtr def)
>>  {
>>      if (!def)
>> @@ -7597,9 +7628,10 @@ virDomainControllerDefParseXML(xmlNodePtr node,
>>                                 xmlXPathContextPtr ctxt,
>>                                 unsigned int flags)
>>  {
>> -    virDomainControllerDefPtr def;
>> +    virDomainControllerDefPtr def = NULL;
>> +    int type = 0;
> Should we make this?
>
>     type = VIR_DOMAIN_CONTROLLER_TYPE_IDE;
>
> Not that it perhaps matters too much, but does perhaps point to
> where/why an IDE controller got created if "type='xxx'"

I think it makes more sense to have a separate patch that logs an error
if no type is given - the RNG requires it.




More information about the libvir-list mailing list