--- /dev/null
+/*------------------------------------------------------------------------*/\r
+/* Universal string handler for user console interface (C)ChaN, 2011 */\r
+/*------------------------------------------------------------------------*/\r
+\r
+#ifndef _STRFUNC\r
+#define _STRFUNC\r
+\r
+#define _USE_XFUNC_OUT 1 /* 1: Use output functions */\r
+#define _CR_CRLF 1 /* 1: Convert \n ==> \r\n in the output char */\r
+\r
+#define _USE_XFUNC_IN 1 /* 1: Use input function */\r
+#define _LINE_ECHO 1 /* 1: Echo back input chars in xgets function */\r
+\r
+\r
+#if _USE_XFUNC_OUT\r
+#define xdev_out(func) xfunc_out = (void(*)(unsigned char))(func)\r
+extern void (*xfunc_out)(unsigned char);\r
+void xputc (char c);\r
+void xputs (const char* str);\r
+void xfputs (void (*func)(unsigned char), const char* str);\r
+void xprintf (const char* fmt, ...);\r
+void xsprintf (char* buff, const char* fmt, ...);\r
+void xfprintf (void (*func)(unsigned char), const char* fmt, ...);\r
+void put_dump (const void* buff, unsigned long addr, int len, int width);\r
+#define DW_CHAR sizeof(char)\r
+#define DW_SHORT sizeof(short)\r
+#define DW_LONG sizeof(long)\r
+#endif\r
+\r
+#if _USE_XFUNC_IN\r
+#define xdev_in(func) xfunc_in = (unsigned char(*)(void))(func)\r
+extern unsigned char (*xfunc_in)(void);\r
+int xgets (char* buff, int len);\r
+int xfgets (unsigned char (*func)(void), char* buff, int len);\r
+int xatoi (char** str, long* res);\r
+#endif\r
+\r
+#endif\r
+\r