console: Add a function to read a line of the output / eof
authorSimon Glass <sjg@chromium.org>
Mon, 27 Jan 2020 15:49:54 +0000 (08:49 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 6 Feb 2020 02:33:46 +0000 (19:33 -0700)
When recording the console output for testing it is useful to be able to
read the output a line at a time to check that the output is correct. Also
we need to check that we get to the end of the output.

Add a console function to return the next line and another to see how must
data is left.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/console.c
include/console.h

index 168ba60d0d9e84bcd6255e17f3301aa87ed5a55b..7681da19a2f8b2b7780af672da0721f8183f02fc 100644 (file)
@@ -621,6 +621,17 @@ void console_record_reset_enable(void)
        console_record_reset();
        gd->flags |= GD_FLG_RECORD;
 }
+
+int console_record_readline(char *str, int maxlen)
+{
+       return membuff_readline(&gd->console_out, str, maxlen, ' ');
+}
+
+int console_record_avail(void)
+{
+       return membuff_avail(&gd->console_out);
+}
+
 #endif
 
 /* test if ctrl-c was pressed */
index e935c601f124d586ef8fa1ca4f5823e76c87de23..74afe22b7e8045c95852b2ed9c0793739cf10143 100644 (file)
@@ -41,6 +41,25 @@ void console_record_reset(void);
  */
 void console_record_reset_enable(void);
 
+/**
+ * console_record_readline() - Read a line from the console output
+ *
+ * This reads the next available line from the console output previously
+ * recorded.
+ *
+ * @str: Place to put string
+ * @maxlen: Maximum length of @str including nul terminator
+ * @return length of string returned
+ */
+int console_record_readline(char *str, int maxlen);
+
+/**
+ * console_record_avail() - Get the number of available bytes in console output
+ *
+ * @return available bytes (0 if empty)
+ */
+int console_record_avail(void);
+
 /**
  * console_announce_r() - print a U-Boot console on non-serial consoles
  *