vsprintf.c (2a56bb596b2c1fb612f9988afda9655c8c872a6e) | vsprintf.c (ce0b4910bdf8c515fe8be49a6c582ee8b206ca0a) |
---|---|
1/* 2 * linux/lib/vsprintf.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */ 8/* --- 679 unchanged lines hidden (view full) --- 688 sprint_symbol_no_offset(sym, value); 689 690 return string(buf, end, sym, spec); 691#else 692 return special_hex_number(buf, end, value, sizeof(void *)); 693#endif 694} 695 | 1/* 2 * linux/lib/vsprintf.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */ 8/* --- 679 unchanged lines hidden (view full) --- 688 sprint_symbol_no_offset(sym, value); 689 690 return string(buf, end, sym, spec); 691#else 692 return special_hex_number(buf, end, value, sizeof(void *)); 693#endif 694} 695 |
696static const struct printf_spec default_dec_spec = { 697 .base = 10, 698 .precision = -1, 699}; 700 |
|
696static noinline_for_stack 697char *resource_string(char *buf, char *end, struct resource *res, 698 struct printf_spec spec, const char *fmt) 699{ 700#ifndef IO_RSRC_PRINTK_SIZE 701#define IO_RSRC_PRINTK_SIZE 6 702#endif 703 --- 13 unchanged lines hidden (view full) --- 717 .flags = SPECIAL | SMALL | ZEROPAD, 718 }; 719 static const struct printf_spec bus_spec = { 720 .base = 16, 721 .field_width = 2, 722 .precision = -1, 723 .flags = SMALL | ZEROPAD, 724 }; | 701static noinline_for_stack 702char *resource_string(char *buf, char *end, struct resource *res, 703 struct printf_spec spec, const char *fmt) 704{ 705#ifndef IO_RSRC_PRINTK_SIZE 706#define IO_RSRC_PRINTK_SIZE 6 707#endif 708 --- 13 unchanged lines hidden (view full) --- 722 .flags = SPECIAL | SMALL | ZEROPAD, 723 }; 724 static const struct printf_spec bus_spec = { 725 .base = 16, 726 .field_width = 2, 727 .precision = -1, 728 .flags = SMALL | ZEROPAD, 729 }; |
725 static const struct printf_spec dec_spec = { 726 .base = 10, 727 .precision = -1, 728 .flags = 0, 729 }; | |
730 static const struct printf_spec str_spec = { 731 .field_width = -1, 732 .precision = 10, 733 .flags = LEFT, 734 }; 735 static const struct printf_spec flag_spec = { 736 .base = 16, 737 .precision = -1, --- 17 unchanged lines hidden (view full) --- 755 if (res->flags & IORESOURCE_IO) { 756 p = string(p, pend, "io ", str_spec); 757 specp = &io_spec; 758 } else if (res->flags & IORESOURCE_MEM) { 759 p = string(p, pend, "mem ", str_spec); 760 specp = &mem_spec; 761 } else if (res->flags & IORESOURCE_IRQ) { 762 p = string(p, pend, "irq ", str_spec); | 730 static const struct printf_spec str_spec = { 731 .field_width = -1, 732 .precision = 10, 733 .flags = LEFT, 734 }; 735 static const struct printf_spec flag_spec = { 736 .base = 16, 737 .precision = -1, --- 17 unchanged lines hidden (view full) --- 755 if (res->flags & IORESOURCE_IO) { 756 p = string(p, pend, "io ", str_spec); 757 specp = &io_spec; 758 } else if (res->flags & IORESOURCE_MEM) { 759 p = string(p, pend, "mem ", str_spec); 760 specp = &mem_spec; 761 } else if (res->flags & IORESOURCE_IRQ) { 762 p = string(p, pend, "irq ", str_spec); |
763 specp = &dec_spec; | 763 specp = &default_dec_spec; |
764 } else if (res->flags & IORESOURCE_DMA) { 765 p = string(p, pend, "dma ", str_spec); | 764 } else if (res->flags & IORESOURCE_DMA) { 765 p = string(p, pend, "dma ", str_spec); |
766 specp = &dec_spec; | 766 specp = &default_dec_spec; |
767 } else if (res->flags & IORESOURCE_BUS) { 768 p = string(p, pend, "bus ", str_spec); 769 specp = &bus_spec; 770 } else { 771 p = string(p, pend, "??? ", str_spec); 772 specp = &mem_spec; 773 decode = 0; 774 } --- 123 unchanged lines hidden (view full) --- 898char *bitmap_list_string(char *buf, char *end, unsigned long *bitmap, 899 struct printf_spec spec, const char *fmt) 900{ 901 int nr_bits = max_t(int, spec.field_width, 0); 902 /* current bit is 'cur', most recently seen range is [rbot, rtop] */ 903 int cur, rbot, rtop; 904 bool first = true; 905 | 767 } else if (res->flags & IORESOURCE_BUS) { 768 p = string(p, pend, "bus ", str_spec); 769 specp = &bus_spec; 770 } else { 771 p = string(p, pend, "??? ", str_spec); 772 specp = &mem_spec; 773 decode = 0; 774 } --- 123 unchanged lines hidden (view full) --- 898char *bitmap_list_string(char *buf, char *end, unsigned long *bitmap, 899 struct printf_spec spec, const char *fmt) 900{ 901 int nr_bits = max_t(int, spec.field_width, 0); 902 /* current bit is 'cur', most recently seen range is [rbot, rtop] */ 903 int cur, rbot, rtop; 904 bool first = true; 905 |
906 /* reused to print numbers */ 907 spec = (struct printf_spec){ .base = 10 }; 908 | |
909 rbot = cur = find_first_bit(bitmap, nr_bits); 910 while (cur < nr_bits) { 911 rtop = cur; 912 cur = find_next_bit(bitmap, nr_bits, cur + 1); 913 if (cur < nr_bits && cur <= rtop + 1) 914 continue; 915 916 if (!first) { 917 if (buf < end) 918 *buf = ','; 919 buf++; 920 } 921 first = false; 922 | 906 rbot = cur = find_first_bit(bitmap, nr_bits); 907 while (cur < nr_bits) { 908 rtop = cur; 909 cur = find_next_bit(bitmap, nr_bits, cur + 1); 910 if (cur < nr_bits && cur <= rtop + 1) 911 continue; 912 913 if (!first) { 914 if (buf < end) 915 *buf = ','; 916 buf++; 917 } 918 first = false; 919 |
923 buf = number(buf, end, rbot, spec); | 920 buf = number(buf, end, rbot, default_dec_spec); |
924 if (rbot < rtop) { 925 if (buf < end) 926 *buf = '-'; 927 buf++; 928 | 921 if (rbot < rtop) { 922 if (buf < end) 923 *buf = '-'; 924 buf++; 925 |
929 buf = number(buf, end, rtop, spec); | 926 buf = number(buf, end, rtop, default_dec_spec); |
930 } 931 932 rbot = cur; 933 } 934 return buf; 935} 936 937static noinline_for_stack --- 1648 unchanged lines hidden (view full) --- 2586 case FORMAT_TYPE_PTR: 2587 /* Dereferenced pointers must be done now */ 2588 switch (*fmt) { 2589 /* Dereference of functions is still OK */ 2590 case 'S': 2591 case 's': 2592 case 'F': 2593 case 'f': | 927 } 928 929 rbot = cur; 930 } 931 return buf; 932} 933 934static noinline_for_stack --- 1648 unchanged lines hidden (view full) --- 2583 case FORMAT_TYPE_PTR: 2584 /* Dereferenced pointers must be done now */ 2585 switch (*fmt) { 2586 /* Dereference of functions is still OK */ 2587 case 'S': 2588 case 's': 2589 case 'F': 2590 case 'f': |
2594 case 'x': 2595 case 'K': | |
2596 save_arg(void *); 2597 break; 2598 default: 2599 if (!isalnum(*fmt)) { 2600 save_arg(void *); 2601 break; 2602 } 2603 str = pointer(fmt, str, end, va_arg(args, void *), --- 158 unchanged lines hidden (view full) --- 2762 bool process = false; 2763 int copy, len; 2764 /* Non function dereferences were already done */ 2765 switch (*fmt) { 2766 case 'S': 2767 case 's': 2768 case 'F': 2769 case 'f': | 2591 save_arg(void *); 2592 break; 2593 default: 2594 if (!isalnum(*fmt)) { 2595 save_arg(void *); 2596 break; 2597 } 2598 str = pointer(fmt, str, end, va_arg(args, void *), --- 158 unchanged lines hidden (view full) --- 2757 bool process = false; 2758 int copy, len; 2759 /* Non function dereferences were already done */ 2760 switch (*fmt) { 2761 case 'S': 2762 case 's': 2763 case 'F': 2764 case 'f': |
2770 case 'x': 2771 case 'K': | |
2772 process = true; 2773 break; 2774 default: 2775 if (!isalnum(*fmt)) { 2776 process = true; 2777 break; 2778 } 2779 /* Pointer dereference was already processed */ --- 411 unchanged lines hidden --- | 2765 process = true; 2766 break; 2767 default: 2768 if (!isalnum(*fmt)) { 2769 process = true; 2770 break; 2771 } 2772 /* Pointer dereference was already processed */ --- 411 unchanged lines hidden --- |