@@ -277,3 +277,18 @@ int get_bits_from_size(size_t size)
return res;
}
+
+void bytes_to_str(char *buffer, size_t buffer_len, uint64_t size)
+{
+ if (size < (1ULL << 10)) {
+ snprintf(buffer, buffer_len, "%" PRIu64 " byte(s)", size);
+ } else if (size < (1ULL << 20)) {
+ snprintf(buffer, buffer_len, "%" PRIu64 " KB(s)", size >> 10);
+ } else if (size < (1ULL << 30)) {
+ snprintf(buffer, buffer_len, "%" PRIu64 " MB(s)", size >> 20);
+ } else if (size < (1ULL << 40)) {
+ snprintf(buffer, buffer_len, "%" PRIu64 " GB(s)", size >> 30);
+ } else {
+ snprintf(buffer, buffer_len, "%" PRIu64 " TB(s)", size >> 40);
+ }
+}
@@ -138,6 +138,7 @@ int qemu_fls(int i);
int qemu_fdatasync(int fd);
int fcntl_setfl(int fd, int flag);
int get_bits_from_size(size_t size);
+void bytes_to_str(char *buffer, size_t buffer_len, uint64_t size);
/* path.c */
void init_paths(const char *prefix);