From patchwork Mon Jun 8 02:43:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 241902 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 7 Jun 2020 20:43:35 -0600 Subject: [PATCH v2 08/10] console: Always define the console-recording functions In-Reply-To: <20200608024337.85575-1-sjg@chromium.org> References: <20200608024337.85575-1-sjg@chromium.org> Message-ID: <20200608024337.85575-3-sjg@chromium.org> On boards without console recording these function are currently missing. It is more convenient for them to be present but to return dummy values. That way if we know that a test needs recording, we can check if it is available, and skip the test if not, while avoiding #ifdefs. Update the header file according and adjust console_record_reset_enable() to return an error if recording is not available. Signed-off-by: Simon Glass --- (no changes since v1) common/console.c | 4 +++- include/console.h | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/common/console.c b/common/console.c index 1deca3cb78..719ab8a1a6 100644 --- a/common/console.c +++ b/common/console.c @@ -619,10 +619,12 @@ void console_record_reset(void) membuff_purge((struct membuff *)&gd->console_in); } -void console_record_reset_enable(void) +int console_record_reset_enable(void) { console_record_reset(); gd->flags |= GD_FLG_RECORD; + + return 0; } int console_record_readline(char *str, int maxlen) diff --git a/include/console.h b/include/console.h index 74afe22b7e..74a41d953b 100644 --- a/include/console.h +++ b/include/console.h @@ -19,11 +19,14 @@ void clear_ctrlc(void); /* clear the Control-C condition */ int disable_ctrlc(int); /* 1 to disable, 0 to enable Control-C detect */ int confirm_yesno(void); /* 1 if input is "y", "Y", "yes" or "YES" */ +#ifdef CONFIG_CONSOLE_RECORD /** * console_record_init() - set up the console recording buffers * * This should be called as soon as malloc() is available so that the maximum * amount of console output can be recorded. + * + * @return 0 if OK, -ENOMEM if out of memory */ int console_record_init(void); @@ -38,8 +41,10 @@ void console_record_reset(void); * console_record_reset_enable() - reset and enable the console buffers * * This should be called to enable the console buffer. + * + * @return 0 (always) */ -void console_record_reset_enable(void); +int console_record_reset_enable(void); /** * console_record_readline() - Read a line from the console output @@ -59,6 +64,38 @@ int console_record_readline(char *str, int maxlen); * @return available bytes (0 if empty) */ int console_record_avail(void); +#else +static inline int console_record_init(void) +{ + /* Always succeed, since it is not enabled */ + + return 0; +} + +static inline void console_record_reset(void) +{ + /* Nothing to do here */ +} + +static inline int console_record_reset_enable(void) +{ + /* Cannot enable it as it is not supported */ + return -ENOSYS; +} + +static inline int console_record_readline(char *str, int maxlen) +{ + /* Nothing to read */ + return 0; +} + +static inline int console_record_avail(void) +{ + /* There is never anything available */ + return 0; +} + +#endif /* !CONFIG_CONSOLE_RECORD */ /** * console_announce_r() - print a U-Boot console on non-serial consoles