X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=lib%2Fdisplay_options.c;h=cff20f375523be26aceaa88801eaa3723cc21b60;hb=dc3e6c8305dc739efce8f6395d52e9880af9f7f1;hp=57fb9741dac1023b06a3939f16268230f78eb6f2;hpb=66da9beb621dd62967924df552e7833c06b35ace;p=oweals%2Fu-boot.git diff --git a/lib/display_options.c b/lib/display_options.c index 57fb9741da..cff20f3755 100644 --- a/lib/display_options.c +++ b/lib/display_options.c @@ -1,31 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2000-2002 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * SPDX-License-Identifier: GPL-2.0+ */ -#include #include +#include #include -#include #include #include #include -int display_options (void) +char *display_options_get_banner_priv(bool newlines, const char *build_tag, + char *buf, int size) { -#if defined(BUILD_TAG) - printf ("\n\n%s, Build: %s\n\n", version_string, BUILD_TAG); -#else - printf ("\n\n%s\n\n", version_string); + int len; + + len = snprintf(buf, size, "%s%s", newlines ? "\n\n" : "", + version_string); + if (build_tag && len < size) + len += snprintf(buf + len, size - len, ", Build: %s", + build_tag); + if (len > size - 3) + len = size - 3; + if (len < 0) + len = 0; + snprintf(buf + len, size - len, "\n\n"); + + return buf; +} + +#ifndef BUILD_TAG +#define BUILD_TAG NULL #endif + +char *display_options_get_banner(bool newlines, char *buf, int size) +{ + return display_options_get_banner_priv(newlines, BUILD_TAG, buf, size); +} + +int display_options(void) +{ + char buf[DISPLAY_OPTIONS_BANNER_LENGTH]; + + display_options_get_banner(true, buf, sizeof(buf)); + printf("%s", buf); + return 0; } void print_freq(uint64_t freq, const char *s) { - unsigned long m = 0, n; + unsigned long m = 0; uint32_t f; static const char names[] = {'G', 'M', 'K'}; unsigned long d = 1e9; @@ -40,12 +66,11 @@ void print_freq(uint64_t freq, const char *s) } if (!c) { - printf("%" PRIu64 " Hz%s", freq, s); + printf("%llu Hz%s", freq, s); return; } f = do_div(freq, d); - n = freq; /* If there's a remainder, show the first few digits */ if (f) { @@ -58,7 +83,7 @@ void print_freq(uint64_t freq, const char *s) m = (m / 10) + (m % 100 >= 50); } - printf("%lu", n); + printf("%lu", (unsigned long) freq); if (m) printf(".%ld", m); printf(" %cHz%s", c, s); @@ -81,7 +106,7 @@ void print_size(uint64_t size, const char *s) } if (!c) { - printf("%" PRIu64 " Bytes%s", size, s); + printf("%llu Bytes%s", size, s); return; } @@ -121,9 +146,9 @@ int print_buffer(ulong addr, const void *data, uint width, uint count, } lb; int i; #ifdef CONFIG_SYS_SUPPORT_64BIT_DATA - uint64_t x; + uint64_t __maybe_unused x; #else - uint32_t x; + uint32_t __maybe_unused x; #endif if (linelen*width > MAX_LINE_LENGTH_BYTES) @@ -151,7 +176,9 @@ int print_buffer(ulong addr, const void *data, uint width, uint count, x = lb.us[i] = *(volatile uint16_t *)data; else x = lb.uc[i] = *(volatile uint8_t *)data; -#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA +#if defined(CONFIG_SPL_BUILD) + printf(" %x", (uint)x); +#elif defined(CONFIG_SYS_SUPPORT_64BIT_DATA) printf(" %0*llx", width * 2, (long long)x); #else printf(" %0*x", width * 2, x);