Joerg Roedel <joerg.roedel@xxxxxxx> writes: > This function does the same as the strtosz_suffix function > except that it allows to specify the unit to which the > k/M/B/T suffixes apply. This function will be used later to > parse the tsc-frequency from the command-line. > > Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx> > --- > cutils.c | 16 +++++++++++----- > qemu-common.h | 2 ++ > 2 files changed, 13 insertions(+), 5 deletions(-) > > diff --git a/cutils.c b/cutils.c > index f9a7e36..28049e0 100644 > --- a/cutils.c > +++ b/cutils.c > @@ -322,7 +322,8 @@ int fcntl_setfl(int fd, int flag) > * value must be terminated by whitespace, ',' or '\0'. Return -1 on > * error. > */ > -int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix) > +int64_t strtosz_suffix_unit(const char *nptr, char **end, > + const char default_suffix, int64_t unit) > { > int64_t retval = -1; > char *endptr; > @@ -362,20 +363,20 @@ int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix) > } > break; > case STRTOSZ_DEFSUFFIX_KB: > - mul = 1 << 10; > + mul = unit; > break; > case 0: > if (mul_required) { > goto fail; > } > case STRTOSZ_DEFSUFFIX_MB: > - mul = 1ULL << 20; > + mul = unit * unit; > break; > case STRTOSZ_DEFSUFFIX_GB: > - mul = 1ULL << 30; > + mul = unit * unit * unit; > break; > case STRTOSZ_DEFSUFFIX_TB: > - mul = 1ULL << 40; > + mul = unit * unit * unit * unit; > break; > default: > goto fail; > @@ -405,6 +406,11 @@ fail: > return retval; > } Why would anyone ever call this function with an unit argument other than 1000 or 1024? Without such a use case, I'd rather give strtosz_suffix() a flag parameter to pick SI prefixes (multiples of 1000) vs. binary prefixes (multiples of 1024). [...] -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html