From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Wed, 31 May 2017 17:57:09 -0600 Subject: [U-Boot] [PATCH v2 01/28] display_options: Refactor to allow obtaining the banner In-Reply-To: <20170531235737.11676-1-sjg@chromium.org> References: <20170531235737.11676-1-sjg@chromium.org> Message-ID: <20170531235737.11676-2-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- Changes in v2: None cmd/version.c | 4 +++- include/display_options.h | 15 +++++++++++++++ lib/display_options.c | 21 +++++++++++++++++---- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/cmd/version.c b/cmd/version.c index 1be0667f09..15aab5dc18 100644 --- a/cmd/version.c +++ b/cmd/version.c @@ -17,7 +17,9 @@ const char __weak version_string[] = U_BOOT_VERSION_STRING; static int do_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - printf("\n%s\n", version_string); + char buf[DISPLAY_OPTIONS_BANNER_LENGTH]; + + printf(display_options_get_banner(false, buf, sizeof(buf))); #ifdef CC_VERSION_STRING puts(CC_VERSION_STRING "\n"); #endif diff --git a/include/display_options.h b/include/display_options.h index ac44c459b3..90891a817f 100644 --- a/include/display_options.h +++ b/include/display_options.h @@ -56,4 +56,19 @@ int print_buffer(ulong addr, const void *data, uint width, uint count, */ int display_options(void); +/* Suggested length of the buffer to pass to display_options_get_banner() */ +#define DISPLAY_OPTIONS_BANNER_LENGTH 120 + +/** + * display_options_get_banner() - Get the U-Boot banner as a string + * + * This returns the U-Boot banner string + * + * @newlines: true to include two newlines at the start + * @buf: place to put string + * @size: Size of buf + * @return buf + */ +char *display_options_get_banner(bool newlines, char *buf, int size); + #endif diff --git a/lib/display_options.c b/lib/display_options.c index 29343fc00e..ebf684f43b 100644 --- a/lib/display_options.c +++ b/lib/display_options.c @@ -13,13 +13,26 @@ #include #include -int display_options (void) +char *display_options_get_banner(bool newlines, char *buf, int size) { + int len; + + len = snprintf(buf, size, "%s%s", newlines ? "\n\n" : "", + version_string); #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); + len += snprintf(buf + len, size - len, ", Build: %s", BUILD_TAG); #endif + len += snprintf(buf + len, size - len, "\n\n"); + + return buf; +} + +int display_options(void) +{ + char buf[DISPLAY_OPTIONS_BANNER_LENGTH]; + + printf(display_options_get_banner(true, buf, sizeof(buf))); + return 0; } -- 2.13.0.219.gdb65acc882-goog