Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af277149 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

powerpc: Improve prom_printf()



Adds the ability to print decimal numbers and adds some more
format string variants

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent dd797738
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -335,6 +335,7 @@ static void __init prom_printf(const char *format, ...)
	const char *p, *q, *s;
	va_list args;
	unsigned long v;
	long vs;
	struct prom_t *_prom = &RELOC(prom);

	va_start(args, format);
@@ -368,12 +369,35 @@ static void __init prom_printf(const char *format, ...)
			v = va_arg(args, unsigned long);
			prom_print_hex(v);
			break;
		case 'd':
			++q;
			vs = va_arg(args, int);
			if (vs < 0) {
				prom_print(RELOC("-"));
				vs = -vs;
			}
			prom_print_dec(vs);
			break;
		case 'l':
			++q;
			if (*q == 'u') { /* '%lu' */
			if (*q == 0)
				break;
			else if (*q == 'x') {
				++q;
				v = va_arg(args, unsigned long);
				prom_print_hex(v);
			} else if (*q == 'u') { /* '%lu' */
				++q;
				v = va_arg(args, unsigned long);
				prom_print_dec(v);
			} else if (*q == 'd') { /* %ld */
				++q;
				vs = va_arg(args, long);
				if (vs < 0) {
					prom_print(RELOC("-"));
					vs = -vs;
				}
				prom_print_dec(vs);
			}
			break;
		}