blob: 0485e8462888d2635a629bf54b0409d6b04dc591 [file] [log] [blame]
/*------------------------------------------------------------------------*/
/* Universal string handler for user console interface (C)ChaN, 2011 */
/*------------------------------------------------------------------------*/
#ifndef _STRFUNC
#define _STRFUNC
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
#define _USE_XFUNC_OUT 1 /* 1: Use output functions */
#define _CR_CRLF 1 /* 1: Convert \n ==> \r\n in the output char */
#define _USE_XFUNC_IN 1 /* 1: Use input function */
#define _LINE_ECHO 1 /* 1: Echo back input chars in xgets function */
#if _USE_XFUNC_OUT
#define xdev_out(func) xfunc_out = (void(*)(unsigned char))(func)
extern void (*xfunc_out)(unsigned char);
extern void xputc (char c);
extern void xputs (const char* str);
extern void xfputs (void (*func)(unsigned char), const char* str);
extern void xvprintf (const char* fmt, va_list arp);
extern void xprintf (const char* fmt, ...);
extern void xsprintf (char* buff, const char* fmt, ...);
extern void xfprintf (void (*func)(unsigned char), const char* fmt, ...);
extern void put_dump (const void* buff, unsigned long addr, int len, int width);
#define DW_CHAR sizeof(char)
#define DW_SHORT sizeof(short)
#define DW_LONG sizeof(long)
#endif
#if _USE_XFUNC_IN
#define xdev_in(func) xfunc_in = (unsigned char(*)(void))(func)
extern unsigned char (*xfunc_in)(void);
extern int xgets (char* buff, int len);
extern int xfgets (unsigned char (*func)(void), char* buff, int len);
extern int xatoi (char** str, long* res);
#endif
#ifdef __cplusplus
}
#endif
#endif