You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.3 KiB
97 lines
3.3 KiB
diff -up ./free.1.orig ./free.1 |
|
--- ./free.1.orig 2018-01-16 16:11:35.609874589 +0100 |
|
+++ ./free.1 2018-01-17 14:33:04.625716399 +0100 |
|
@@ -62,6 +62,9 @@ Display the amount of memory in gigabyte |
|
\fB\-\-tera\fR |
|
Display the amount of memory in terabytes. |
|
.TP |
|
+\fB\-\-peta\fR |
|
+Display the amount of memory in petabytes. |
|
+.TP |
|
\fB\-h\fR, \fB\-\-human\fP |
|
Show all output fields automatically scaled to shortest three digit unit and |
|
display the units of print out. Following units are used. |
|
@@ -72,9 +75,10 @@ display the units of print out. Followi |
|
M = megas |
|
G = gigas |
|
T = teras |
|
+ P = petas |
|
.fi |
|
.sp |
|
-If unit is missing, and you have petabyte of RAM or swap, the number is in |
|
+If unit is missing, and you have exabyte of RAM or swap, the number is in |
|
terabytes and columns might not be aligned with header. |
|
.TP |
|
\fB\-w\fR, \fB\-\-wide\fR |
|
diff -up ./free.c.orig ./free.c |
|
--- ./free.c.orig 2018-01-16 16:10:27.058158964 +0100 |
|
+++ ./free.c 2018-01-17 14:58:06.723658091 +0100 |
|
@@ -78,6 +78,7 @@ static void __attribute__ ((__noreturn__ |
|
fputs(_(" -m, --mega show output in megabytes\n"), out); |
|
fputs(_(" -g, --giga show output in gigabytes\n"), out); |
|
fputs(_(" --tera show output in terabytes\n"), out); |
|
+ fputs(_(" --peta show output in petabytes\n"), out); |
|
fputs(_(" -h, --human show human-readable output\n"), out); |
|
fputs(_(" --si use powers of 1000 not 1024\n"), out); |
|
fputs(_(" -l, --lohi show detailed low and high memory statistics\n"), out); |
|
@@ -101,7 +102,7 @@ double power(unsigned int base, unsigned |
|
/* idea of this function is copied from top size scaling */ |
|
static const char *scale_size(unsigned long size, int flags, struct commandline_arguments args) |
|
{ |
|
- static char nextup[] = { 'B', 'K', 'M', 'G', 'T', 0 }; |
|
+ static char nextup[] = { 'B', 'K', 'M', 'G', 'T', 'P', 0 }; |
|
static char buf[BUFSIZ]; |
|
int i; |
|
char *up; |
|
@@ -163,6 +164,7 @@ static const char *scale_size(unsigned l |
|
case 3: |
|
case 4: |
|
case 5: |
|
+ case 6: |
|
if (4 >= |
|
snprintf(buf, sizeof(buf), "%.1f%c", |
|
(float)(size / power(base, i - 2)), *up)) |
|
@@ -172,14 +174,14 @@ static const char *scale_size(unsigned l |
|
(long)(size / power(base, i - 2)), *up)) |
|
return buf; |
|
break; |
|
- case 6: |
|
+ case 7: |
|
break; |
|
} |
|
} |
|
/* |
|
- * On system where there is more than petabyte of memory or swap the |
|
+ * On system where there is more than exbibyte of memory or swap the |
|
* output does not fit to column. For incoming few years this should |
|
- * not be a big problem (wrote at Apr, 2011). |
|
+ * not be a big problem (wrote at Apr, 2015). |
|
*/ |
|
return buf; |
|
} |
|
@@ -197,6 +199,7 @@ int main(int argc, char **argv) |
|
enum { |
|
SI_OPTION = CHAR_MAX + 1, |
|
TERA_OPTION, |
|
+ PETA_OPTION, |
|
HELP_OPTION |
|
}; |
|
|
|
@@ -206,6 +209,7 @@ int main(int argc, char **argv) |
|
{ "mega", no_argument, NULL, 'm' }, |
|
{ "giga", no_argument, NULL, 'g' }, |
|
{ "tera", no_argument, NULL, TERA_OPTION }, |
|
+ { "peta", no_argument, NULL, PETA_OPTION }, |
|
{ "human", no_argument, NULL, 'h' }, |
|
{ "si", no_argument, NULL, SI_OPTION }, |
|
{ "lohi", no_argument, NULL, 'l' }, |
|
@@ -248,6 +252,9 @@ int main(int argc, char **argv) |
|
case TERA_OPTION: |
|
args.exponent = 5; |
|
break; |
|
+ case PETA_OPTION: |
|
+ args.exponent = 6; |
|
+ break; |
|
case 'h': |
|
flags |= FREE_HUMANREADABLE; |
|
break;
|
|
|