[PATCH] libcsupport: Add and use rtems_debug_putc()

Joel Sherrill joel.sherrill at OARcorp.com
Mon Aug 13 16:34:41 UTC 2012


On 08/13/2012 11:31 AM, Gedare Bloom wrote:
> Hi,
> Would there be any problem with just using 'rtems_putc'? the 
> rtems_debug_putc seems a little weird to me, because I think debug is 
> misleading here; I would expect something named as rtems_debug to be 
> only available when rtems-enable-debug is on, and otherwise 
> conditionally unavailable.
>
> Perhaps this is just me though. rtems_bsp_putc might be an ok alternative.
>
printk vs rtems_xxx_putc just isn't consistent. :(
> -Gedare
>
> On Mon, Aug 13, 2012 at 12:13 PM, Sebastian Huber 
> <sebastian.huber at embedded-brains.de 
> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>
>     This reduces code size and provides a function similar to fputc().
>     ---
>      cpukit/include/rtems/bspIo.h              |    1 +
>      cpukit/libcsupport/Makefile.am            |    1 +
>      cpukit/libcsupport/src/rtems_debug_putc.c |   24
>     ++++++++++++++++++++++++
>      cpukit/libcsupport/src/vprintk.c          |   18 +++++++++---------
>      4 files changed, 35 insertions(+), 9 deletions(-)
>      create mode 100644 cpukit/libcsupport/src/rtems_debug_putc.c
>
>     diff --git a/cpukit/include/rtems/bspIo.h
>     b/cpukit/include/rtems/bspIo.h
>     index d5a004a..f702ae9 100644
>     --- a/cpukit/include/rtems/bspIo.h
>     +++ b/cpukit/include/rtems/bspIo.h
>     @@ -53,6 +53,7 @@ extern int getchark(void);
>      extern void vprintk(const char *fmt, va_list ap);
>      extern void printk(const char *fmt, ...);
>      extern void putk(const char *s);
>     +extern void rtems_debug_putc(char c);
>
>      /*
>       *  This routine is passed into RTEMS reporting functions
>     diff --git a/cpukit/libcsupport/Makefile.am
>     b/cpukit/libcsupport/Makefile.am
>     index ae23338..45d7684 100644
>     --- a/cpukit/libcsupport/Makefile.am
>     +++ b/cpukit/libcsupport/Makefile.am
>     @@ -120,6 +120,7 @@ BSD_LIBC_C_FILES = src/strlcpy.c src/strlcat.c
>     src/issetugid.c
>
>      libcsupport_a_SOURCES = src/gxx_wrappers.c src/getchark.c
>     src/printk.c \
>          src/printk_plugin.c src/putk.c src/vprintk.c \
>     +    src/rtems_debug_putc.c \
>          src/printf_plugin.c \
>          src/sup_fs_location.c \
>          src/sup_fs_eval_path.c \
>     diff --git a/cpukit/libcsupport/src/rtems_debug_putc.c
>     b/cpukit/libcsupport/src/rtems_debug_putc.c
>     new file mode 100644
>     index 0000000..0283efd
>     --- /dev/null
>     +++ b/cpukit/libcsupport/src/rtems_debug_putc.c
>     @@ -0,0 +1,24 @@
>     +/*
>     + * Copyright (c) 2012 embedded brains GmbH.  All rights reserved.
>     + *
>     + *  embedded brains GmbH
>     + *  Obere Lagerstr. 30
>     + *  82178 Puchheim
>     + *  Germany
>     + * <rtems at embedded-brains.de <mailto:rtems at embedded-brains.de>>
>     + *
>     + * The license and distribution terms for this file may be
>     + * found in the file LICENSE in this distribution or at
>     + * http://www.rtems.com/license/LICENSE.
>     + */
>     +
>     +#if HAVE_CONFIG_H
>     +  #include "config.h"
>     +#endif
>     +
>     +#include <rtems/bspIo.h>
>     +
>     +void rtems_debug_putc(char c)
>     +{
>     +  (*BSP_output_char)(c);
>     +}
>     diff --git a/cpukit/libcsupport/src/vprintk.c
>     b/cpukit/libcsupport/src/vprintk.c
>     index 1a8d5dd..d5255a7 100644
>     --- a/cpukit/libcsupport/src/vprintk.c
>     +++ b/cpukit/libcsupport/src/vprintk.c
>     @@ -55,7 +55,7 @@ void vprintk(
>          char c;
>
>          if (*fmt != '%') {
>     -      BSP_output_char(*fmt);
>     +      rtems_debug_putc(*fmt);
>            continue;
>          }
>          fmt++;
>     @@ -80,7 +80,7 @@ void vprintk(
>          if ( c == 'c' ) {
>            /* need a cast here since va_arg() only takes fully
>     promoted types */
>            char chr = (char) va_arg(ap, int);
>     -      BSP_output_char(chr);
>     +      rtems_debug_putc(chr);
>            continue;
>          }
>          if ( c == 's' ) {
>     @@ -100,7 +100,7 @@ void vprintk(
>            /* leading spaces */
>            if ( !minus )
>              for ( i=len ; i<width ; i++ )
>     -          BSP_output_char(' ');
>     +          rtems_debug_putc(' ');
>
>            /* no width option */
>            if (width == 0) {
>     @@ -109,12 +109,12 @@ void vprintk(
>
>            /* output the string */
>            for ( i=0 ; i<width && *str ; str++ )
>     -        BSP_output_char(*str);
>     +        rtems_debug_putc(*str);
>
>            /* trailing spaces */
>            if ( minus )
>              for ( i=len ; i<width ; i++ )
>     -          BSP_output_char(' ');
>     +          rtems_debug_putc(' ');
>
>            continue;
>          }
>     @@ -132,7 +132,7 @@ void vprintk(
>          } else if ( c == 'p' ) {
>            base = 16; sign = false; lflag = true;
>          } else {
>     -      BSP_output_char(c);
>     +      rtems_debug_putc(c);
>            continue;
>          }
>
>     @@ -166,7 +166,7 @@ static void printNum(
>        char toPrint[20];
>
>        if ( sign && (num <  0) ) {
>     -    BSP_output_char('-');
>     +    rtems_debug_putc('-');
>          unsigned_num = (unsigned long) -num;
>          if (maxwidth) maxwidth--;
>        } else {
>     @@ -181,9 +181,9 @@ static void printNum(
>        toPrint[count++] = (char) unsigned_num;
>
>        for (n=maxwidth ; n > count; n-- )
>     -    BSP_output_char(lead);
>     +    rtems_debug_putc(lead);
>
>        for (n = 0; n < count; n++) {
>     -    BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]);
>     +  
>      rtems_debug_putc("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]);
>        }
>      }
>     --
>     1.7.7
>
>     _______________________________________________
>     rtems-devel mailing list
>     rtems-devel at rtems.org <mailto:rtems-devel at rtems.org>
>     http://www.rtems.org/mailman/listinfo/rtems-devel
>
>


-- 
Joel Sherrill, Ph.D.             Director of Research&   Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
     Support Available             (256) 722-9985


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20120813/be5db3c5/attachment-0001.html>


More information about the devel mailing list