/* trace.h 04/04/2016 D.J.Whale
*
* Simple trace output.
*
* On some platforms this is just printf.
* On others it might write to a serial port
* On others it might write to a trace buffer viewed in an emulator
* It could be configured to do nothing.
*/
#ifndef _TRACE_H
#define _TRACE_H
/* POSIX IMPLEMENTATION */
/* Printf is not available on some platforms, or not very efficient.
* These macros make it possible to re-map I/O to more efficient functions.
*/
#include <stdio.h>
#include <stdlib.h>
#define TRACE_OUTS(s) printf("%s", s)
#define TRACE_OUTN(n) printf("%d", (unsigned int)n)
#define TRACE_OUTC(c) putc(c, stdout)
#define TRACE_NL() TRACE_OUTC('\n')
#define TRACE_FAIL(msg) do { \
fprintf(stderr, "%s", msg); \
exit(-1); \
} while (0)
#endif
/***** END OF FILE *****/