Mercurial > illumos > git > illumos-omnios
changeset 22602:5c904c0e545f
12208 dboot_printf(): support %u
Reviewed by: Andy Stormont <astormont@racktopsystems.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Dan McDonald <danmcd@joyent.com>
author | John Levon <john.levon@joyent.com> |
---|---|
date | Fri, 17 Jan 2020 06:21:50 -0800 |
parents | 1704d8bb7302 |
children | eaaf077f17f2 |
files | usr/src/uts/i86pc/dboot/dboot_elfload.c usr/src/uts/i86pc/dboot/dboot_printf.c |
diffstat | 2 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/i86pc/dboot/dboot_elfload.c Sat Jan 18 12:13:39 2020 +0000 +++ b/usr/src/uts/i86pc/dboot/dboot_elfload.c Fri Jan 17 06:21:50 2020 -0800 @@ -185,7 +185,7 @@ /* zero out bss */ if (shdr->sh_type == SHT_NOBITS) { if (prom_debug) - dboot_printf("zeroing BSS %ld bytes from " + dboot_printf("zeroing BSS %lu bytes from " "physaddr 0x%" PRIx64 " (end=0x%" PRIx64 ")\n", (ulong_t)shdr->sh_size,
--- a/usr/src/uts/i86pc/dboot/dboot_printf.c Sat Jan 18 12:13:39 2020 +0000 +++ b/usr/src/uts/i86pc/dboot/dboot_printf.c Fri Jan 17 06:21:50 2020 -0800 @@ -21,6 +21,7 @@ /* * Copyright (c) 2012 Gary Mills + * Copyright 2020 Joyent, Inc. * * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -93,7 +94,7 @@ } static void -dboot_putnum(uint64_t x, uint_t is_signed, uint8_t base) +dboot_putnum(uint64_t x, boolean_t is_signed, uint8_t base) { char buffer[64]; /* digits in reverse order */ int i; @@ -114,7 +115,7 @@ } /* - * very primitive printf - only does %s, %d, %x, %lx, or %% + * Very primitive printf - only does a subset of the standard format characters. */ static void do_dboot_printf(char *fmt, va_list args) @@ -123,7 +124,6 @@ uint64_t x; uint8_t base; uint8_t size; - uint_t is_signed = 1; if (fmt == NULL) { dboot_puts("dboot_printf(): 1st arg is NULL\n"); @@ -159,7 +159,7 @@ case 'p': x = va_arg(args, ulong_t); - dboot_putnum(x, !is_signed, 16); + dboot_putnum(x, B_FALSE, 16); break; case 'l': @@ -176,9 +176,13 @@ x = va_arg(args, long); else x = va_arg(args, long long); - dboot_putnum(x, is_signed, 10); + dboot_putnum(x, B_TRUE, 10); break; + case 'u': + base = 10; + goto unsigned_num; + case 'b': base = 2; goto unsigned_num; @@ -192,11 +196,11 @@ unsigned_num: if (size == 0) x = va_arg(args, uint_t); - else if (size == sizeof (long)) + else if (size == sizeof (ulong_t)) x = va_arg(args, ulong_t); else x = va_arg(args, unsigned long long); - dboot_putnum(x, !is_signed, base); + dboot_putnum(x, B_FALSE, base); break; default: