summaryrefslogtreecommitdiff
path: root/bsp/libwrap/sys
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@dabbelt.com>2017-11-21 11:10:40 -0800
committerGitHub <noreply@github.com>2017-11-21 11:10:40 -0800
commit8c43df57d93d25dd69d4fcdbf4b9f2cf28f9789e (patch)
treec79dd76d79770cd47fee875be8301cc9db741c08 /bsp/libwrap/sys
parent2f8c6978139ed7f7fd88f88a836dde12aa333961 (diff)
parent0f23aeed142a47c74ce4e636bce5260f2d294d2f (diff)
Merge pull request #79 from sifive/small-puts
Implement a smaller puts
Diffstat (limited to 'bsp/libwrap/sys')
-rw-r--r--bsp/libwrap/sys/puts.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/bsp/libwrap/sys/puts.c b/bsp/libwrap/sys/puts.c
new file mode 100644
index 0000000..f77f1a3
--- /dev/null
+++ b/bsp/libwrap/sys/puts.c
@@ -0,0 +1,26 @@
+/* See LICENSE of license details. */
+
+#include <stdint.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include "platform.h"
+#include "stub.h"
+
+int __wrap_puts(const char *s)
+{
+ while (*s != '\0') {
+ while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
+ UART0_REG(UART_REG_TXFIFO) = *s;
+
+ if (*s == '\n') {
+ while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
+ UART0_REG(UART_REG_TXFIFO) = '\r';
+ }
+
+ ++s;
+ }
+
+ return 0;
+}