From 15667059849148e6ee1718966ad3791cc638f3dd Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Tue, 3 Nov 2009 21:28:02 +0000 Subject: Simplify uart_printf() a bit by using vuprintf(), that also makes removing a static buffer possible. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23504 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s3c2440/uart-s3c2440.c | 34 +++++++++++++----------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'firmware') diff --git a/firmware/target/arm/s3c2440/uart-s3c2440.c b/firmware/target/arm/s3c2440/uart-s3c2440.c index 84282f731a..2308027218 100644 --- a/firmware/target/arm/s3c2440/uart-s3c2440.c +++ b/firmware/target/arm/s3c2440/uart-s3c2440.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "inttypes.h" #include "string.h" #include "cpu.h" @@ -58,38 +59,33 @@ void tx_writec(unsigned char c) } +static int uart_push(void *user_data, unsigned char ch) +{ + (void)user_data; + + uart_send_byte(DEBUG_UART_PORT, ch); + if (ch == '\n') + uart_send_byte(DEBUG_UART_PORT, '\r'); + return 1; +} + /**************************************************************************** * General purpose debug function ****************************************************************************/ - void uart_printf (const char *format, ...) { static bool debug_uart_init = false; - static char tx_buf [MAX_PRINTF_BUF]; - - int len; - unsigned char *ptr; - int j; - va_list ap; - va_start(ap, format); - - ptr = tx_buf; - len = vsnprintf(ptr, sizeof(tx_buf), format, ap); - va_end(ap); if (!debug_uart_init) { uart_init_device(DEBUG_UART_PORT); debug_uart_init = true; } - - for (j=0; j