diff --git a/hmp.c b/hmp.c index aba728f0de369f710bd2cb2e86c39de8a204e931..72a52566761ec08f6ee37da93e563386ccfea98c 100644 --- a/hmp.c +++ b/hmp.c @@ -1385,7 +1385,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) break; case MIGRATION_PARAMETER_MAX_BANDWIDTH: p.has_max_bandwidth = true; - valuebw = qemu_strtosz(valuestr, &endp); + valuebw = qemu_strtosz_MiB(valuestr, &endp); if (valuebw < 0 || (size_t)valuebw != valuebw || *endp != '\0') { error_setg(&err, "Invalid size %s", valuestr); diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index bf57e635d6b23d6364b25ebe0989d1e28c1585a2..b3d9ed99ddb8485161f18453d125ee8f18a66de4 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -1268,7 +1268,7 @@ static void ivshmem_realize(PCIDevice *dev, Error **errp) s->legacy_size = 4 << 20; /* 4 MB default */ } else { char *end; - int64_t size = qemu_strtosz(s->sizearg, &end); + int64_t size = qemu_strtosz_MiB(s->sizearg, &end); if (size < 0 || (size_t)size != size || *end != '\0' || !is_power_of_2(size)) { error_setg(errp, "Invalid size %s", s->sizearg); diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index 81613d01eeaa885839a3ef200c7b1299bbb59137..a08b1b03af3b3b58e2f187ea44550f9ec2d6991b 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -153,9 +153,9 @@ int parse_uint_full(const char *s, unsigned long long *value, int base); #define QEMU_STRTOSZ_DEFSUFFIX_MB 'M' #define QEMU_STRTOSZ_DEFSUFFIX_KB 'K' #define QEMU_STRTOSZ_DEFSUFFIX_B 'B' -int64_t qemu_strtosz(const char *nptr, char **end); int64_t qemu_strtosz_suffix(const char *nptr, char **end, const char default_suffix); +int64_t qemu_strtosz_MiB(const char *nptr, char **end); int64_t qemu_strtosz_metric(const char *nptr, char **end); #define K_BYTE (1ULL << 10) diff --git a/monitor.c b/monitor.c index 5953fc984f29a97b3540cb2696a604ec5ecb20b2..c2c1e424f2329cf0bf59352633337967df6892cd 100644 --- a/monitor.c +++ b/monitor.c @@ -2811,7 +2811,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, break; } } - val = qemu_strtosz(p, &end); + val = qemu_strtosz_MiB(p, &end); if (val < 0) { monitor_printf(mon, "invalid size\n"); goto fail; diff --git a/tests/test-cutils.c b/tests/test-cutils.c index e1d40548c02be0dfeb43817fbe4907d65e5daa95..9bbfb8f8e29d9bf72c8141fd6253fae3e6c5bf1b 100644 --- a/tests/test-cutils.c +++ b/tests/test-cutils.c @@ -1376,16 +1376,16 @@ static void test_qemu_strtosz_simple(void) int64_t res; str = "0"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, 0); g_assert(endptr == str + 1); str = "12345M"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, 12345 * M_BYTE); g_assert(endptr == str + 6); - res = qemu_strtosz(str, NULL); + res = qemu_strtosz_MiB(str, NULL); g_assert_cmpint(res, ==, 12345 * M_BYTE); /* Note: precision is 53 bits since we're parsing with strtod() */ @@ -1433,35 +1433,35 @@ static void test_qemu_strtosz_units(void) int64_t res; /* default is M */ - res = qemu_strtosz(none, &endptr); + res = qemu_strtosz_MiB(none, &endptr); g_assert_cmpint(res, ==, M_BYTE); g_assert(endptr == none + 1); - res = qemu_strtosz(b, &endptr); + res = qemu_strtosz_MiB(b, &endptr); g_assert_cmpint(res, ==, 1); g_assert(endptr == b + 2); - res = qemu_strtosz(k, &endptr); + res = qemu_strtosz_MiB(k, &endptr); g_assert_cmpint(res, ==, K_BYTE); g_assert(endptr == k + 2); - res = qemu_strtosz(m, &endptr); + res = qemu_strtosz_MiB(m, &endptr); g_assert_cmpint(res, ==, M_BYTE); g_assert(endptr == m + 2); - res = qemu_strtosz(g, &endptr); + res = qemu_strtosz_MiB(g, &endptr); g_assert_cmpint(res, ==, G_BYTE); g_assert(endptr == g + 2); - res = qemu_strtosz(t, &endptr); + res = qemu_strtosz_MiB(t, &endptr); g_assert_cmpint(res, ==, T_BYTE); g_assert(endptr == t + 2); - res = qemu_strtosz(p, &endptr); + res = qemu_strtosz_MiB(p, &endptr); g_assert_cmpint(res, ==, P_BYTE); g_assert(endptr == p + 2); - res = qemu_strtosz(e, &endptr); + res = qemu_strtosz_MiB(e, &endptr); g_assert_cmpint(res, ==, E_BYTE); g_assert(endptr == e + 2); } @@ -1472,7 +1472,7 @@ static void test_qemu_strtosz_float(void) char *endptr = NULL; int64_t res; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, 12.345 * M_BYTE); g_assert(endptr == str + 7); } @@ -1484,17 +1484,17 @@ static void test_qemu_strtosz_invalid(void) int64_t res; str = ""; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, -EINVAL); g_assert(endptr == str); str = " \t "; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, -EINVAL); g_assert(endptr == str); str = "crap"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, -EINVAL); g_assert(endptr == str); } @@ -1506,12 +1506,12 @@ static void test_qemu_strtosz_trailing(void) int64_t res; str = "123xxx"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, 123 * M_BYTE); g_assert(endptr == str + 3); str = "1kiB"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, 1024); g_assert(endptr == str + 2); } @@ -1523,7 +1523,7 @@ static void test_qemu_strtosz_erange(void) int64_t res; str = "-1"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, -ERANGE); g_assert(endptr == str + 2); @@ -1543,7 +1543,7 @@ static void test_qemu_strtosz_erange(void) g_assert(endptr == str + 19); str = "10E"; - res = qemu_strtosz(str, &endptr); + res = qemu_strtosz_MiB(str, &endptr); g_assert_cmpint(res, ==, -ERANGE); g_assert(endptr == str + 3); } diff --git a/util/cutils.c b/util/cutils.c index b46e254f8333bf0e3fc765a47b41f6416cf4492d..9693adde1417dbff7a8a00fa3dac93039d0b6073 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -254,7 +254,7 @@ int64_t qemu_strtosz_suffix(const char *nptr, char **end, return do_strtosz(nptr, end, default_suffix, 1024); } -int64_t qemu_strtosz(const char *nptr, char **end) +int64_t qemu_strtosz_MiB(const char *nptr, char **end) { return qemu_strtosz_suffix(nptr, end, QEMU_STRTOSZ_DEFSUFFIX_MB); }