[PATCH 3/4] console: remove #ifdef CONFIG_CONSOLE_RECORD

Patrick DELAUNAY patrick.delaunay at foss.st.com
Tue Dec 15 15:47:23 CET 2020


On 12/12/20 4:39 PM, Simon Glass wrote:
> Hi Patrick,
>
> On Thu, 3 Dec 2020 at 02:20, Patrick Delaunay <patrick.delaunay at st.com> wrote:
>> Add helper functions to access to gd->console_out and gd->console_in
>> with membuff API and replace the #ifdef CONFIG_CONSOLE_RECORD test
>> by if (IS_ENABLED(CONFIG_CONSOLE_RECORD)) to respect the U-Boot
>> coding rule.
>>
>> Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
>> # Conflicts:
>> #       common/console.c
>> ---
>>
>>   common/console.c | 86 +++++++++++++++++++++++++++++++++++++-----------
>>   1 file changed, 66 insertions(+), 20 deletions(-)
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> But see below
>
>> diff --git a/common/console.c b/common/console.c
>> index 9a63eaa664..0b864444bb 100644
>> --- a/common/console.c
>> +++ b/common/console.c
>> @@ -88,6 +88,56 @@ static int on_silent(const char *name, const char *value, enum env_op op,
>>   U_BOOT_ENV_CALLBACK(silent, on_silent);
>>   #endif
>>
>> +#ifdef CONFIG_CONSOLE_RECORD
>> +/* helper function: access to gd->console_out and gd->console_in */
>> +static void console_record_putc(const char c)
>> +{
>> +       if  (gd->console_out.start)
>> +               membuff_putbyte((struct membuff *)&gd->console_out, c);
>> +}
>> +
>> +static void console_record_puts(const char *s)
>> +{
>> +       if  (gd->console_out.start)
>> +               membuff_put((struct membuff *)&gd->console_out, s, strlen(s));
>> +}
>> +
>> +static int console_record_getc(void)
>> +{
>> +       if (!gd->console_in.start)
>> +               return -1;
>> +
>> +       return membuff_getbyte((struct membuff *)&gd->console_in);
>> +}
>> +
>> +static int console_record_tstc(void)
>> +{
>> +       if (gd->console_in.start) {
>> +               if (membuff_peekbyte((struct membuff *)&gd->console_in) != -1)
>> +                       return 1;
>> +       }
>> +       return 0;
>> +}
>> +#else
>> +static void console_record_putc(char c)
>> +{
>> +}
>> +
>> +static void console_record_puts(const char *s)
>> +{
>> +}
>> +
>> +static int console_record_getc(void)
>> +{
>> +       return -1;
>> +}
>> +
>> +static int console_record_tstc(void)
>> +{
>> +       return 0;
>> +}
>> +#endif
>> +
>>   #if CONFIG_IS_ENABLED(SYS_CONSOLE_IS_IN_ENV)
>>   /*
>>    * if overwrite_console returns 1, the stdin, stderr and stdout
>> @@ -420,15 +470,13 @@ int getchar(void)
>>          if (!gd->have_console)
>>                  return 0;
>>
>> -#ifdef CONFIG_CONSOLE_RECORD
>> -       if (gd->console_in.start) {
>> -               int ch;
>> +       if (IS_ENABLED(CONFIG_CONSOLE_RECORD)) {
>> +               int ch = console_record_getc();
>>
>> -               ch = membuff_getbyte((struct membuff *)&gd->console_in);
>>                  if (ch != -1)
>> -                       return 1;
>> +                       return ch;
>>          }
>> -#endif
>> +
>>          if (gd->flags & GD_FLG_DEVINIT) {
>>                  /* Get from the standard input */
>>                  return fgetc(stdin);
>> @@ -445,12 +493,10 @@ int tstc(void)
>>
>>          if (!gd->have_console)
>>                  return 0;
>> -#ifdef CONFIG_CONSOLE_RECORD
>> -       if (gd->console_in.start) {
>> -               if (membuff_peekbyte((struct membuff *)&gd->console_in) != -1)
>> -                       return 1;
>> -       }
>> -#endif
>> +
>> +       if (IS_ENABLED(CONFIG_CONSOLE_RECORD) && console_record_tstc())
>> +               return 1;
>> +
>>          if (gd->flags & GD_FLG_DEVINIT) {
>>                  /* Test the standard input */
>>                  return ftstc(stdin);
>> @@ -521,10 +567,10 @@ void putc(const char c)
>>   {
>>          if (!gd)
>>                  return;
>> -#ifdef CONFIG_CONSOLE_RECORD
>> -       if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start)
>> -               membuff_putbyte((struct membuff *)&gd->console_out, c);
>> -#endif
>> +
>> +       if (IS_ENABLED(CONFIG_CONSOLE_RECORD) && (gd->flags & GD_FLG_RECORD))
>> +               console_record_putc(c);
> Given your functions above I wonder why you need the IS_ENABLED()
> here? Maybe even move the gd-.flags check into those functions?

In fact it is not needed.

I limit the difference to easy the review and to be coherent with other 
test on flags, for example:

     if (IS_ENABLED(CONFIG_DISABLE_CONSOLE) && (gd->flags & 
GD_FLG_DISABLE_CONSOLE))

     if (IS_ENABLED(CONFIG_SILENT_CONSOLE) && (gd->flags & GD_FLG_SILENT))

But you are right it is more elegant if I move the 2 tests in the helper 
function.

I will do it it in V2

Regards,

Patrick




More information about the U-Boot mailing list