Lines Matching +full:scaled +full:- +full:sync
32 * fmt_scaled: Format numbers scaled for human comprehension
35 * "Human-readable" output uses 4 digits max, and puts a unit suffix at
36 * the end. Makes output compact and easy-to-read esp. on huge disks.
56 /* These three arrays MUST be in sync! XXX make a struct */
70 #define MAX_DIGITS (SCALE_LENGTH * 3) /* XXX strlen(sprintf("%lld", -1)? */
72 /* Convert the given input string "scaled" into numeric in "result".
73 * Return 0 on success, -1 and errno set on error.
76 scan_scaled(char *scaled, long long *result) in scan_scaled() argument
78 char *p = scaled; in scan_scaled()
87 /* Then at most one leading + or - */ in scan_scaled()
88 while (*p == '-' || *p == '+') { in scan_scaled()
89 if (*p == '-') { in scan_scaled()
92 return -1; in scan_scaled()
94 sign = -1; in scan_scaled()
99 return -1; in scan_scaled()
116 return -1; in scan_scaled()
122 i = (*p) - '0'; /* whew! finally a digit we can use */ in scan_scaled()
124 if (fract_digits >= MAX_DIGITS-1) in scan_scaled()
130 return -1; in scan_scaled()
133 if (i > LLONG_MAX - fpart) { in scan_scaled()
135 return -1; in scan_scaled()
141 return -1; in scan_scaled()
145 return -1; in scan_scaled()
148 if (i > LLONG_MAX - whole) { in scan_scaled()
150 return -1; in scan_scaled()
175 return -1; in scan_scaled()
183 return -1; in scan_scaled()
195 fract_digits--; in scan_scaled()
199 for (i = 0; i < fract_digits -1; i++) in scan_scaled()
202 if (sign == -1) in scan_scaled()
203 whole -= fpart; in scan_scaled()
213 return -1; in scan_scaled()
216 /* Format the given "number" into human-readable form in "result".
218 * Return 0 on success, -1 and errno set if error.
230 return -1; in fmt_scaled()
236 if (abval / 1024 >= scale_factors[SCALE_LENGTH-1]) { in fmt_scaled()
238 return -1; in fmt_scaled()
248 fract /= scale_factors[i - 1]; in fmt_scaled()
259 number--; in fmt_scaled()
268 else if (unit == NONE || number >= 100 || number <= -100) { in fmt_scaled()
273 number--; in fmt_scaled()
287 * Copy-and-paste whatever you need from it.
296 printf("\"%s\" -> %lld\n", cinput, result); in main()
301 printf("%lld -> \"%s\"\n", ninput, buf); in main()