[libvirt] [PATCH 04/12] conf: introduce 3 functions for RNG device

lhuang lhuang at redhat.com
Tue Jan 6 08:06:34 UTC 2015


On 01/05/2015 10:56 PM, Peter Krempa wrote:
> The subject is vague. Please try to condense what the patch is adding in
> a way that describes the functions instead of an opaque "add 3 functions"
>
>
> On 01/03/15 06:06, Luyao Huang wrote:
>> the 3 functions are:
>> virDomainRNGInsert: Insert a RNG device to vm->def.
>> virDomainRNGRemove: remove a RNG device in vm->def.
>> virDomainRNGFind: find a RNG device in vm->def.
>>
>> Signed-off-by: Luyao Huang <lhuang at redhat.com>
>> ---
>>   src/conf/domain_conf.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
>>   src/conf/domain_conf.h |  9 +++++++++
>>   2 files changed, 53 insertions(+)
>>
>> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>> index 91c114e..37c4569 100644
>> --- a/src/conf/domain_conf.c
>> +++ b/src/conf/domain_conf.c
>> @@ -11956,6 +11956,50 @@ virDomainRNGEquals(virDomainRNGDefPtr src,
>>       return false;
>>   }
>>   
>> +int
>> +virDomainRNGInsert(virDomainDefPtr vmdef,
>> +                   virDomainRNGDefPtr rng)
>> +{
>> +    return VIR_APPEND_ELEMENT(vmdef->rngs, vmdef->nrngs, rng);
>> +}
>> +
>> +virDomainRNGDefPtr
>> +virDomainRNGRemove(virDomainDefPtr vmdef,
>> +                   virDomainRNGDefPtr rng)
>> +{
>> +    virDomainRNGDefPtr ret;
>> +    size_t i;
>> +
>> +    for (i = 0; i < vmdef->nrngs; i++) {
>> +        ret = vmdef->rngs[i];
>> +
>> +        if (virDomainRNGEquals(ret, rng))
> If you add a block here and move the VIR_DELETE_ELEMENT line here.
>
>> +            break;
> And return ret instead of breaking here.
>
>> +    }
> Then you can "return NULL" here and get rid of the rest.
>
> The resulting code will be more readable.

Good idea, thanks a lot.
>
>> +
>> +    if (i == vmdef->nrngs)
>> +        return NULL;
>> +
>> +    VIR_DELETE_ELEMENT(vmdef->rngs, i, vmdef->nrngs);
>> +    return ret;
>> +}
>> +
>> +virDomainRNGDefPtr
>> +virDomainRNGFind(virDomainDefPtr vmdef,
>> +                 virDomainRNGDefPtr rng)
>> +{
>> +    virDomainRNGDefPtr ret;
>> +    size_t i;
>> +
>> +    for (i = 0; i < vmdef->nrngs; i++) {
>> +        ret = vmdef->rngs[i];
>> +
>> +        if (virDomainRNGEquals(ret, rng))
>> +            return ret;
>> +    }
>> +    return NULL;
>> +}
>> +
>>   char *
>>   virDomainDefGetDefaultEmulator(virDomainDefPtr def,
>>                                  virCapsPtr caps)
>> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
>> index c197095..cb87fad 100644
>> --- a/src/conf/domain_conf.h
>> +++ b/src/conf/domain_conf.h
>> @@ -2600,6 +2600,15 @@ virDomainChrRemove(virDomainDefPtr vmdef,
>>   bool
>>   virDomainRNGEquals(virDomainRNGDefPtr src,
>>                      virDomainRNGDefPtr tgt);
>> +int
>> +virDomainRNGInsert(virDomainDefPtr vmdef,
>> +                   virDomainRNGDefPtr rng);
> In header files we usually put the return type on the same line as the
> declaration.
Okay, thanks , i will change them in next version
>> +virDomainRNGDefPtr
>> +virDomainRNGRemove(virDomainDefPtr vmdef,
>> +                   virDomainRNGDefPtr rng);
>> +virDomainRNGDefPtr
>> +virDomainRNGFind(virDomainDefPtr vmdef,
>> +                 virDomainRNGDefPtr rng);
>>   
>>   int virDomainSaveXML(const char *configDir,
>>                        virDomainDefPtr def,
> Like here.
>
> Peter
>
Luyao




More information about the libvir-list mailing list