1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

improve uart0_puts

This commit is contained in:
Ludwig Ortmann 2013-08-18 11:21:38 +02:00
parent ca6f20f384
commit 141bec6427

View File

@ -20,13 +20,26 @@ fd_set _native_uart_rfds;
inline int uart0_puts(char *astring, int length)
{
int nwritten, offset;
nwritten = 0;
offset = 0;
_native_in_syscall = 1;
/* XXX: handle short writes: */
if (write(_native_uart_out, astring, length) == -1) {
err(EXIT_FAILURE, "uart0_puts: write");
return -1;
while ((length > 0) &&(nwritten = write(_native_uart_out, astring+offset, length-offset)) > 0) {
offset += nwritten;
}
if (nwritten == -1) {
err(EXIT_FAILURE, "uart0_puts: write");
}
else if ((length > 0) && (nwritten == 0)) {
/* XXX: handle properly */
errx(EXIT_FAILURE, "uart0_puts: Could not write to stdout. I don't know what to do now.");
}
_native_in_syscall = 0;
return length;
}