[libvirt] [PATCH 1/3] virutil: Introduce a new macro named CLAMP.

Dongsheng Yang yangds.fnst at cn.fujitsu.com
Thu May 15 11:03:51 UTC 2014


On 05/15/2014 08:53 PM, Martin Kletzander wrote:
> On Thu, May 15, 2014 at 06:39:49PM +0900, Dongsheng Yang wrote:
>> This patch introduce a new macro to return a
>> value clamped to a given range.
>>
>> Signed-off-by: Dongsheng Yang <yangds.fnst at cn.fujitsu.com>
>> ---
>> src/util/virutil.h | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/src/util/virutil.h b/src/util/virutil.h
>> index 2bb74e2..e8536d8 100644
>> --- a/src/util/virutil.h
>> +++ b/src/util/virutil.h
>> @@ -37,6 +37,12 @@
>> # ifndef MAX
>> #  define MAX(a, b) ((a) > (b) ? (a) : (b))
>> # endif
>> +# ifndef CLAMP
>> +#  define CLAMP(v, min, max) ({         \
>> +        typeof(v) _v = v;               \
>> +        _v = _v < min ? min: _v;        \
>> +        _v > max ? max: _v; })
>> +# endif
>>
>
> It's just my subjective impression, but wouldn't the following be a
> bit more readable and less obfuscated?
>
> #define CLAMP(v, min, max) MAX(MIN(v, max), min)

Neat! I think it works. I will use it in v2.

Thanx
>
> Martin.




More information about the libvir-list mailing list