[PATCH] libcsupport: Add and use rtems_debug_putc()
Gedare Bloom
gedare at rtems.org
Mon Aug 13 16:42:16 UTC 2012
On Mon, Aug 13, 2012 at 12:34 PM, Joel Sherrill
<joel.sherrill at oarcorp.com>wrote:
> 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. :(
>
> I think that is the fault of printk.
> -Gedare
>
> On Mon, Aug 13, 2012 at 12:13 PM, Sebastian Huber <
> 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>
>> + *
>> + * 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
>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>
>
>
>
> --
> Joel Sherrill, Ph.D. Director of Research& Developmentjoel.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/5f462db4/attachment-0001.html>
More information about the devel
mailing list