diff options
author | Simon Glass <sjg@chromium.org> | 2017-06-16 12:51:42 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2017-07-11 10:08:19 -0600 |
commit | 6c519f2dc4a59a9d81f087d990e24d1e6444c86d (patch) | |
tree | fdf525e5fafd09f83eb6f1bcdd1082e7ea81c57e /lib/display_options.c | |
parent | 32e9ec1f8812ffe5874a2e3a0a1b8fe85c489ab8 (diff) | |
download | u-boot-6c519f2dc4a59a9d81f087d990e24d1e6444c86d.tar.gz |
display_options: Refactor to allow obtaining the banner
Move the display options code into a separate function so that the U-Boot
banner can be obtained from other code. Adjust the 'version' command to
use it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'lib/display_options.c')
-rw-r--r-- | lib/display_options.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/lib/display_options.c b/lib/display_options.c index 29343fc00e..4ea27ca99d 100644 --- a/lib/display_options.c +++ b/lib/display_options.c @@ -13,13 +13,39 @@ #include <linux/ctype.h> #include <asm/io.h> -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; + strcpy(buf + 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; } |