summaryrefslogtreecommitdiffstats
path: root/boiler-monster/stm32/app/stdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'boiler-monster/stm32/app/stdio.c')
-rw-r--r--boiler-monster/stm32/app/stdio.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/boiler-monster/stm32/app/stdio.c b/boiler-monster/stm32/app/stdio.c
new file mode 100644
index 0000000..bcdd5c7
--- /dev/null
+++ b/boiler-monster/stm32/app/stdio.c
@@ -0,0 +1,77 @@
+#include "project.h"
+
+unsigned block_stdio;
+
+int
+_open (const char *name, int flags, int mode)
+{
+ errno = ENOSYS;
+ return -1; /* Always fails */
+
+} /* _open () */
+
+int
+_close (int file)
+{
+ errno = EBADF;
+ return -1; /* Always fails */
+
+} /* _close () */
+
+int
+_write (int file, char *buf, int nbytes)
+{
+
+ int ret = nbytes;
+
+ if (!block_stdio)
+ ret = usart1_write (buf, nbytes, 1);
+
+ if (ret < 0) {
+ errno = -ret;
+ return -1;
+ }
+
+ return ret;
+} /* _write () */
+
+
+int
+_read (int file, char *buf, int nbytes)
+{
+
+ errno = -EAGAIN;
+ return -1; /* EOF */
+
+} /* _read () */
+
+#if 0
+int
+_fstat (int file, struct stat *st)
+{
+ st->st_mode = S_IFCHR;
+ return 0;
+
+} /* _fstat () */
+#endif
+
+int
+_lseek (int file, int offset, int whence)
+{
+ return 0;
+
+} /* _lseek () */
+
+int
+isatty (int file)
+{
+ return 1;
+
+} /* _isatty () */
+
+
+void
+stdio_drain (void)
+{
+ usart1_drain();
+}