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

Re: [libvirt] [PATCHv2 03/15] util: new function for scaling numbers



On 03/06/2012 01:34 AM, Eric Blake wrote:
Scaling an integer based on a suffix is something we plan on reusing
in several contexts: XML parsing, virsh CLI parsing, and possibly
elsewhere.  Make it easy to reuse, as well as adding in support for
powers of 1000.

* src/util/util.h (virScaleInteger): New function.
* src/util/util.c (virScaleInteger): Implement it.
* src/libvirt_private.syms (util.h): Export it.
---

v2: new, but borrows ideas from memory v1 3/3

  src/libvirt_private.syms |    1 +
  src/util/util.c          |   66 ++++++++++++++++++++++++++++++++++++++++++++++
  src/util/util.h          |    4 +++
  3 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/src/util/util.c b/src/util/util.c
index 7c58c7b..1b71680 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -1632,6 +1632,72 @@ virHexToBin(unsigned char c)
      }
  }

+/* Scale an integer VALUE by an optional SUFFIX in-place, defaulting
+ * to SCALE if no suffix is present.  Ensure that the result does not
+ * exceed LIMIT.  Return 0 on success, -1 with error message raised on
+ * failure.  */

I'd write a little bit more on how the base selection works depending on the argument. Something like:

For power-of-two scaling use the binary prefixes (i.e. KiB, MiB), for
power of ten scaling use the SI prefixes (i.e. KB, Mb, ...).

+int
+virScaleInteger(unsigned long long *value, const char *suffix,
+                unsigned long long scale, unsigned long long limit)

Looks good. ACK

Peter


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