diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-08-13 11:29:13 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-08-20 10:10:25 +0200 |
commit | bd5a138629771ae174927791fcc7515232a0e4fa (patch) | |
tree | 71fa47154f0364937612e79a5780e48e107d256e | |
parent | bsp/lpc32xx: Specify scratch area alignment (diff) | |
download | rtems-bd5a138629771ae174927791fcc7515232a0e4fa.tar.bz2 |
libcsupport: Add and use rtems_putc()
This reduces code size and provides a function similar to fputc().
-rw-r--r-- | cpukit/include/rtems/bspIo.h | 1 | ||||
-rw-r--r-- | cpukit/libcsupport/Makefile.am | 1 | ||||
-rw-r--r-- | cpukit/libcsupport/src/rtems_putc.c | 24 | ||||
-rw-r--r-- | cpukit/libcsupport/src/vprintk.c | 18 |
4 files changed, 35 insertions, 9 deletions
diff --git a/cpukit/include/rtems/bspIo.h b/cpukit/include/rtems/bspIo.h index d5a004a7cc..dc5f304821 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_putc(char c); /* * This routine is passed into RTEMS reporting functions diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index ae233381a1..04d2455dfd 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_putc.c \ src/printf_plugin.c \ src/sup_fs_location.c \ src/sup_fs_eval_path.c \ diff --git a/cpukit/libcsupport/src/rtems_putc.c b/cpukit/libcsupport/src/rtems_putc.c new file mode 100644 index 0000000000..8a2b022192 --- /dev/null +++ b/cpukit/libcsupport/src/rtems_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@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_putc(char c) +{ + (*BSP_output_char)(c); +} diff --git a/cpukit/libcsupport/src/vprintk.c b/cpukit/libcsupport/src/vprintk.c index 1a8d5dd2cb..2524e88a3f 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_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_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_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_putc(*str); /* trailing spaces */ if ( minus ) for ( i=len ; i<width ; i++ ) - BSP_output_char(' '); + rtems_putc(' '); continue; } @@ -132,7 +132,7 @@ void vprintk( } else if ( c == 'p' ) { base = 16; sign = false; lflag = true; } else { - BSP_output_char(c); + rtems_putc(c); continue; } @@ -166,7 +166,7 @@ static void printNum( char toPrint[20]; if ( sign && (num < 0) ) { - BSP_output_char('-'); + rtems_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_putc(lead); for (n = 0; n < count; n++) { - BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); + rtems_putc("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); } } |