[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