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 ---