On 09/11/2014 11:16 AM, Peter Krempa wrote:
> struct _virDomainInterfaceStats {
> long long rx_bytes;
> long long rx_packets;
> long long rx_errs;
> long long rx_drop;
> long long tx_bytes;
> long long tx_packets;
> long long tx_errs;
> long long tx_drop;
> };
>
> But I don't have any problem to cast them as unsigned, with something like:
That will be fine with me as long as:
>
> #define QEMU_ADD_NET_PARAM(record, maxparams, num, name, value) \
> do { \
> char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
> snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, \
> "net.%u.%s", num, name); \
> if (virTypedParamsAddULLong(&(record)->params, \
... you don't add the param if value is < 0. Thus rather than expressing
the missing information via -1 just omit the parameter.
> &(record)->nparams, \
> maxparams, \
> param_name, \
> (unsigned long long)value) < 0) \
The cast is spurious; the C compiler does the right thing if you already
filter on value < 0 before calling this function to add the positive
values as unsigned long long.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org