Lines Matching +full:num +full:- +full:strings

7 /* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */
9 * Wirzenius wrote this portably, Torvalds fucked it up :-)
11 * from hush: simple_itoa() was lifted from boa-0.93.15
36 i = i * 10 + *((*s)++) - '0'; in skip_atoi()
50 * On i386 gcc 4.1.2 -O2: ~250 bytes of code. */
60 d0 = d0 - 10*q; in put_dec_trunc()
65 d1 = d1 - 10*q; in put_dec_trunc()
71 d2 = d2 - 10*q; in put_dec_trunc()
77 d3 = d3 - 10*q; in put_dec_trunc()
89 /* BTW, if q is in [0,9999], 8-bit ints will be enough, */ in put_dec_full()
90 /* but anyway, gcc produces better code with full-sized ints */ in put_dec_full()
98 * gcc -O2 replaces multiply with shifts and adds in put_dec_full()
99 * (x * 0xcd) >> 11: 11001101 - shorter code than * 0x67 (on i386) in put_dec_full()
101 * (x * 0x34) >> 9: 110100 - same in put_dec_full()
102 * (x * 0x1a) >> 8: 11010 - same in put_dec_full()
103 * (x * 0x0d) >> 7: 1101 - same, shortest code (on i386) in put_dec_full()
108 d0 = d0 - 10*q; in put_dec_full()
112 d1 = d1 - 10*q; in put_dec_full()
117 d2 = d2 - 10*q; in put_dec_full()
121 q = (d3 * 0xcd) >> 11; /* - shorter code */ in put_dec_full()
122 /* q = (d3 * 0x67) >> 10; - would also work */ in put_dec_full()
123 d3 = d3 - 10*q; in put_dec_full()
129 static noinline char *put_dec(char *buf, uint64_t num) in put_dec() argument
133 if (num < 100000) in put_dec()
134 return put_dec_trunc(buf, num); in put_dec()
135 rem = do_div(num, 100000); in put_dec()
158 static char *number(char *buf, char *end, u64 num, in number() argument
177 if ((s64) num < 0) { in number()
178 sign = '-'; in number()
179 num = -(s64) num; in number()
180 size--; in number()
183 size--; in number()
186 size--; in number()
190 size--; in number()
192 size--; in number()
197 if (num == 0) in number()
201 tmp[i++] = (digits[do_div(num,base)] | locase); in number()
202 } while (num != 0); in number()
205 int mask = base - 1; in number()
212 tmp[i++] = (digits[((unsigned char)num) & mask] in number()
214 num >>= shift; in number()
215 } while (num); in number()
217 i = put_dec(tmp, num) - tmp; in number()
224 size -= precision; in number()
226 while (--size >= 0) in number()
242 while (--size >= 0) in number()
246 while (i <= --precision) in number()
249 while (--i >= 0) in number()
252 while (--size >= 0) in number()
268 while (len < field_width--) in string()
272 while (len < field_width--) in string()
277 /* U-Boot uses UTF-16 strings in the EFI context only. */
286 for (; len < field_width; --field_width) in string16()
295 for (; len < field_width; --field_width) in string16()
311 return ERR_PTR(-ENOMEM); in device_path_string()
369 digits = put_dec_trunc(temp, addr[i]) - temp; in ip4_addr_string()
371 while (digits--) in ip4_addr_string()
386 * print lower-case (ie. we just keep %pUB and %pUL for compat with linux),
389 * %pUb: 01020304-0506-0708-090a-0b0c0d0e0f10
390 * %pUl: 04030201-0605-0807-090a-0b0c0d0e0f10
427 * - 'M' For a 6-byte MAC address, it prints the address in the
428 * usual colon-separated hex notation
429 * - 'I' [46] for IPv4/IPv6 addresses printed in the usual way (dot-separated
430 * decimal for v4 and colon separated network-order 16 bit hex for v6)
431 * - 'i' [46] for 'raw' IPv4/IPv6 addresses, IPv6 omits the colons, IPv4 is
441 u64 num = (uintptr_t)ptr; in pointer() local
468 num = *(phys_addr_t *)ptr; in pointer()
500 if (field_width == -1) { in pointer()
504 return number(buf, end, num, 16, field_width, precision, flags); in pointer()
510 u64 num; in vsnprintf_internal() local
521 /* 'z' changed to 'Z' --davidm 1/25/99 */ in vsnprintf_internal()
525 /* Make sure end is always >= buf - do we want this in U-Boot? */ in vsnprintf_internal()
527 end = ((void *)-1); in vsnprintf_internal()
528 size = end - buf; in vsnprintf_internal()
543 case '-': in vsnprintf_internal()
561 field_width = -1; in vsnprintf_internal()
569 field_width = -field_width; in vsnprintf_internal()
575 precision = -1; in vsnprintf_internal()
590 qualifier = -1; in vsnprintf_internal()
607 while (--field_width > 0) in vsnprintf_internal()
611 while (--field_width > 0) in vsnprintf_internal()
616 /* U-Boot uses UTF-16 strings in the EFI context only. */ in vsnprintf_internal()
643 *ip = (str - buf); in vsnprintf_internal()
646 *ip = (str - buf); in vsnprintf_internal()
654 /* integer number formats - set up the flags and "break" */ in vsnprintf_internal()
676 --fmt; in vsnprintf_internal()
680 num = va_arg(args, unsigned long long); in vsnprintf_internal()
682 num = va_arg(args, unsigned long); in vsnprintf_internal()
684 num = (signed long) num; in vsnprintf_internal()
686 num = va_arg(args, size_t); in vsnprintf_internal()
688 num = va_arg(args, ptrdiff_t); in vsnprintf_internal()
690 num = (unsigned short) va_arg(args, int); in vsnprintf_internal()
692 num = (signed short) num; in vsnprintf_internal()
694 num = va_arg(args, unsigned int); in vsnprintf_internal()
696 num = (signed int) num; in vsnprintf_internal()
698 str = number(str, end, num, base, field_width, precision, in vsnprintf_internal()
705 end[-1] = '\0'; in vsnprintf_internal()
706 --str; in vsnprintf_internal()
709 return str - buf; in vsnprintf_internal()
727 return size - 1; in vscnprintf()
830 /* 21 digits plus null terminator, good for 64-bit or smaller ints */ in simple_itoa()
834 *p-- = '\0'; in simple_itoa()
836 *p-- = '0' + i % 10; in simple_itoa()
842 /* We don't seem to have %'d in U-Boot */
852 putc(s[-1] != ' ' ? ',' : ' '); in print_grouped_ull()
858 bool str2off(const char *p, loff_t *num) in str2off() argument
862 *num = simple_strtoull(p, &endptr, 16); in str2off()
866 bool str2long(const char *p, ulong *num) in str2long() argument
870 *num = simple_strtoul(p, &endptr, 16); in str2long()