qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCHv4 1/4] util: introduce MIN_NON_ZERO


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCHv4 1/4] util: introduce MIN_NON_ZERO
Date: Thu, 23 Oct 2014 12:10:58 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

On 2014-10-16 at 09:54, Peter Lieven wrote:
at least in block layer we have the case of limits being defined for a
BlockDriverState. However, in this context often zero (0) has the special
meanining of undefined which means no limit. If two of those limits are
combined and the minimum is needed the minimum function should only return
zero if both parameters are zero.

Signed-off-by: Peter Lieven <address@hidden>
---
  include/qemu/osdep.h |    4 ++++
  1 file changed, 4 insertions(+)

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 1565404..9a238df 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -68,6 +68,10 @@ typedef signed int              int_fast16_t;
  #define MAX(a, b) (((a) > (b)) ? (a) : (b))
  #endif
+#ifndef MIN_NON_ZERO
+#define MIN_NON_ZERO(a, b) ((!!(a) && (a) < (b)) ? (a) : (b))

I contrast to Eric I'd even like (a) != 0 instead of !!(a). I normally use just "foo" instead of "foo != 0" or "foo != NULL", but in this case I'd like (a) != 0 (or (a) > 0) because of the name "NON_ZERO".

Now you have three alternatives to choose from. You're welcome. :-)

Anyway, I'm fine with any, so:

Reviewed-by: Max Reitz <address@hidden>

+#endif
+
  #ifndef ROUND_UP
  #define ROUND_UP(n,d) (((n) + (d) - 1) & -(d))
  #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]