[libvirt] [PATCH v2 1/3] util: Add virProcessSetScheduler() function for scheduler settings

Michal Privoznik mprivozn at redhat.com
Thu Feb 12 08:14:29 UTC 2015


On 11.02.2015 18:34, Eric Blake wrote:
> On 02/11/2015 07:04 AM, Michal Privoznik wrote:
>> On 10.02.2015 16:35, Martin Kletzander wrote:
>>> <snip/>
>>> +
>>> +typedef enum {
>>> +    VIR_PROC_POLICY_NONE,
>>> +    VIR_PROC_POLICY_BATCH,
>>> +    VIR_PROC_POLICY_IDLE,
>>> +    VIR_PROC_POLICY_FIFO,
>>> +    VIR_PROC_POLICY_RR,
>>> +
>>> +    VIR_PROC_POLICY_LAST
>>> +} virProcessSchedPolicy;
> 
> The C language guarantees that VIR_PROC_POLICY_NONE == 0, and that
> VIR_PROC_POLICY_BATCH == (VIR_PROC_POLICY_NONE + 1).  That is, C
> guarantees that an initial enum not otherwise initialized is 0, and that
> all subsequent enums not otherwise initialized are one more than the
> previous value (whether or not the previous value was explicitly
> initialized).  So the code you questioned is safe as-is.
> 

So in other words, we don't need zero 'initialization' in enums? So for
instance the following (taken from daemon/libvirtd.c:122):

enum {
    VIR_DAEMON_ERR_NONE = 0,
    /* snip */
};

is the same as

enum {
    VIR_DAEMON_ERR_NONE,
    /* snip */
};

If it is so, is it worth bothering with cleanup patch(es)? There's
roughly 250 occurrences in the code:

$ git grep "[A-Z]\+ = 0" | wc -l
268

Michal




More information about the libvir-list mailing list