mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
virsh: additional scaled output units
The parser accepts P and E, so the formatter should too. * tools/virsh.c (vshPrettyCapacity): Handle larger units. Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
1120c06b43
commit
2ad38fdba1
@ -151,22 +151,40 @@ vshNameSorter(const void *a, const void *b)
|
||||
double
|
||||
vshPrettyCapacity(unsigned long long val, const char **unit)
|
||||
{
|
||||
if (val < 1024) {
|
||||
double limit = 1024;
|
||||
|
||||
if (val < limit) {
|
||||
*unit = "B";
|
||||
return (double)val;
|
||||
} else if (val < (1024.0l * 1024.0l)) {
|
||||
*unit = "KiB";
|
||||
return (((double)val / 1024.0l));
|
||||
} else if (val < (1024.0l * 1024.0l * 1024.0l)) {
|
||||
*unit = "MiB";
|
||||
return (double)val / (1024.0l * 1024.0l);
|
||||
} else if (val < (1024.0l * 1024.0l * 1024.0l * 1024.0l)) {
|
||||
*unit = "GiB";
|
||||
return (double)val / (1024.0l * 1024.0l * 1024.0l);
|
||||
} else {
|
||||
*unit = "TiB";
|
||||
return (double)val / (1024.0l * 1024.0l * 1024.0l * 1024.0l);
|
||||
return val;
|
||||
}
|
||||
limit *= 1024;
|
||||
if (val < limit) {
|
||||
*unit = "KiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
limit *= 1024;
|
||||
if (val < limit) {
|
||||
*unit = "MiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
limit *= 1024;
|
||||
if (val < limit) {
|
||||
*unit = "GiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
limit *= 1024;
|
||||
if (val < limit) {
|
||||
*unit = "TiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
limit *= 1024;
|
||||
if (val < limit) {
|
||||
*unit = "PiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
limit *= 1024;
|
||||
*unit = "EiB";
|
||||
return val / (limit / 1024);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user