diff --git a/repos/base/include/util/string.h b/repos/base/include/util/string.h index b5d69ba411..6242347d19 100644 --- a/repos/base/include/util/string.h +++ b/repos/base/include/util/string.h @@ -51,6 +51,18 @@ class Genode::Number_of_bytes * Convert number of bytes to 'size_t' value */ operator size_t() const { return _n; } + + void print(Output &output) const + { + using Genode::print; + + enum { KB = 1024UL, MB = KB*1024UL, GB = MB*1024UL }; + + if (_n % GB == 0) print(output, _n/GB, "G"); + else if (_n % MB == 0) print(output, _n/MB, "M"); + else if (_n % KB == 0) print(output, _n/KB, "K"); + else print(output, _n); + } };