util: remove support for hex numbers with a scaling suffix
This was deprecated in 6.0 and can now be removed. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
eaaaf8abdc
commit
8b902e3d23
@ -58,14 +58,6 @@ and will cause a warning.
|
||||
The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
|
||||
rather than ``delay=off``.
|
||||
|
||||
hexadecimal sizes with scaling multipliers (since 6.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Input parameters that take a size value should only use a size suffix
|
||||
(such as 'k' or 'M') when the base is written in decimal, and not when
|
||||
the value is hexadecimal. That is, '0x20M' is deprecated, and should
|
||||
be written either as '32M' or as '0x2000000'.
|
||||
|
||||
``-spice password=string`` (since 6.0)
|
||||
''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
|
@ -408,6 +408,14 @@ pcspk-audiodev=<name>``.
|
||||
|
||||
Use ``-device`` instead.
|
||||
|
||||
Hexadecimal sizes with scaling multipliers (since 8.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Input parameters that take a size value should only use a size suffix
|
||||
(such as 'k' or 'M') when the base is written in decimal, and not when
|
||||
the value is hexadecimal. That is, '0x20M' should be written either as
|
||||
'32M' or as '0x2000000'.
|
||||
|
||||
|
||||
QEMU Machine Protocol (QMP) commands
|
||||
------------------------------------
|
||||
|
@ -2315,6 +2315,14 @@ static void test_qemu_strtosz_invalid(void)
|
||||
g_assert_cmpint(res, ==, 0xbaadf00d);
|
||||
g_assert(endptr == str);
|
||||
|
||||
/* No suffixes */
|
||||
str = "0x18M";
|
||||
endptr = NULL;
|
||||
err = qemu_strtosz(str, &endptr, &res);
|
||||
g_assert_cmpint(err, ==, -EINVAL);
|
||||
g_assert_cmpint(res, ==, 0xbaadf00d);
|
||||
g_assert(endptr == str);
|
||||
|
||||
/* No negative values */
|
||||
str = "-0";
|
||||
endptr = NULL;
|
||||
|
@ -197,10 +197,8 @@ static int64_t suffix_mul(char suffix, int64_t unit)
|
||||
* fractional portion is truncated to byte
|
||||
* - 0x7fEE - hexadecimal, unit determined by @default_suffix
|
||||
*
|
||||
* The following cause a deprecation warning, and may be removed in the future
|
||||
* - 0xabc{kKmMgGtTpP} - hex with scaling suffix
|
||||
*
|
||||
* The following are intentionally not supported
|
||||
* - hex with scaling suffix, such as 0x20M
|
||||
* - octal, such as 08
|
||||
* - fractional hex, such as 0x1.8
|
||||
* - floating point exponents, such as 1e3
|
||||
@ -222,7 +220,6 @@ static int do_strtosz(const char *nptr, const char **end,
|
||||
int retval;
|
||||
const char *endptr, *f;
|
||||
unsigned char c;
|
||||
bool hex = false;
|
||||
uint64_t val, valf = 0;
|
||||
int64_t mul;
|
||||
|
||||
@ -237,17 +234,16 @@ static int do_strtosz(const char *nptr, const char **end,
|
||||
goto out;
|
||||
}
|
||||
if (val == 0 && (*endptr == 'x' || *endptr == 'X')) {
|
||||
/* Input looks like hex, reparse, and insist on no fraction. */
|
||||
/* Input looks like hex; reparse, and insist on no fraction or suffix. */
|
||||
retval = qemu_strtou64(nptr, &endptr, 16, &val);
|
||||
if (retval) {
|
||||
goto out;
|
||||
}
|
||||
if (*endptr == '.') {
|
||||
if (*endptr == '.' || suffix_mul(*endptr, unit) > 0) {
|
||||
endptr = nptr;
|
||||
retval = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
hex = true;
|
||||
} else if (*endptr == '.') {
|
||||
/*
|
||||
* Input looks like a fraction. Make sure even 1.k works
|
||||
@ -272,10 +268,6 @@ static int do_strtosz(const char *nptr, const char **end,
|
||||
c = *endptr;
|
||||
mul = suffix_mul(c, unit);
|
||||
if (mul > 0) {
|
||||
if (hex) {
|
||||
warn_report("Using a multiplier suffix on hex numbers "
|
||||
"is deprecated: %s", nptr);
|
||||
}
|
||||
endptr++;
|
||||
} else {
|
||||
mul = suffix_mul(default_suffix, unit);
|
||||
|
Loading…
Reference in New Issue
Block a user