have local stdio.h file to avoid newlib issues

... we should move to -nostdinc at some point :/
diff --git a/firmware/libcommon/include/stdio.h b/firmware/libcommon/include/stdio.h
new file mode 100644
index 0000000..24bf861
--- /dev/null
+++ b/firmware/libcommon/include/stdio.h
@@ -0,0 +1,32 @@
+#pragma once
+#include <stddef.h>
+#include <stdarg.h>
+
+
+#ifndef EOF
+#define EOF (-1)
+#endif
+
+struct File;
+typedef struct File FILE;
+
+extern FILE* const stdin;
+extern FILE* const stdout;
+extern FILE* const stderr;
+
+signed int vsnprintf(char *pStr, size_t length, const char *pFormat, va_list ap);
+signed int snprintf(char *pString, size_t length, const char *pFormat, ...);
+signed int vsprintf(char *pString, const char *pFormat, va_list ap);
+signed int vfprintf(FILE *pStream, const char *pFormat, va_list ap);
+signed int vprintf(const char *pFormat, va_list ap);
+signed int fprintf(FILE *pStream, const char *pFormat, ...);
+signed int printf(const char *pFormat, ...);
+signed int sprintf(char *pStr, const char *pFormat, ...);
+signed int puts(const char *pStr);
+
+
+int fputc(int c, FILE *stream);
+int fputs(const char *s, FILE *stream);
+
+#define putc(c, stream) fputc(c, stream)
+#define putchar(c) fputc(c, stdout)
diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c
index 6b61e46..a1be34c 100644
--- a/firmware/libcommon/source/card_emu.c
+++ b/firmware/libcommon/source/card_emu.c
@@ -19,6 +19,7 @@
 
 //#define TRACE_LEVEL 6
 
+#include <stdio.h>
 #include <assert.h>
 #include <errno.h>
 #include <string.h>
diff --git a/firmware/libcommon/source/stdio.c b/firmware/libcommon/source/stdio.c
index 4d9d9f3..2183c7f 100644
--- a/firmware/libcommon/source/stdio.c
+++ b/firmware/libcommon/source/stdio.c
@@ -59,10 +59,11 @@
 //------------------------------------------------------------------------------
 //         Global Variables
 //------------------------------------------------------------------------------
+//
+FILE* const stdin = NULL;
+FILE* const stdout = NULL;
+FILE* const stderr = NULL;
 
-// Required for proper compilation.
-struct _reent r = {0, (FILE *) 0, (FILE *) 1, (FILE *) 0};
-struct _reent *_impure_ptr = &r;
 
 //------------------------------------------------------------------------------
 //         Local Functions