Add uprintf()
[dtplug] / lib / uprintf.c
1 /****************************************************************************
2  *  lib/uprintf.c
3  *
4  * UART printf
5  * 
6  * Copyright 2012 Nathael Pajani <nathael.pajani@ed3l.fr>
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20  *
21  *************************************************************************** */
23 #include <stdarg.h>
24 #include <stdint.h>
25 #include "drivers/serial.h"
26 #include "lib/string.h"
27 #include "lib/stdio.h"
30 int uprintf(int uart_num, const char* format, ...)
31 {
32         char printf_buf[SERIAL_OUT_BUFF_SIZE];
33         va_list args;
34         int len;
36         va_start(args, format);
37     len = vsnprintf(printf_buf, SERIAL_OUT_BUFF_SIZE, format, args);
38     va_end(args);
40         serial_write(uart_num, printf_buf, len);
42     return len;
43 }