summaryrefslogtreecommitdiff
path: root/digital/avr/modules/trace/trace.h
diff options
context:
space:
mode:
authorNicolas Schodet2010-12-15 00:24:38 +0100
committerNicolas Schodet2010-12-15 00:24:38 +0100
commit948c655985dcbe6f8abcc7da850b91e8caa73080 (patch)
treed0d0f3e268b13a62b9c3659d036a56d63c2a86cf /digital/avr/modules/trace/trace.h
parent00ef637bd3fec023786ec9156664e454be4aab88 (diff)
digital/avr/common: add preprocessor tools
Diffstat (limited to 'digital/avr/modules/trace/trace.h')
-rw-r--r--digital/avr/modules/trace/trace.h21
1 files changed, 3 insertions, 18 deletions
diff --git a/digital/avr/modules/trace/trace.h b/digital/avr/modules/trace/trace.h
index 68894059..a8e1e9fc 100644
--- a/digital/avr/modules/trace/trace.h
+++ b/digital/avr/modules/trace/trace.h
@@ -24,33 +24,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* }}} */
-/**
- * You can find the example on the website :
- * http://gcc.gnu.org/ml/gcc-patches/2000-11/msg00016.html
- */
-#define PASTE_EXPAND(a, b) PASTE(a, b)
-
-#define PASTE(a, b) a ## b
-
-#define TRACE_ARGS_COUNT(...) \
- _TRACE_ARGS_COUNT1 ( , ##__VA_ARGS__)
-
-#define _TRACE_ARGS_COUNT1(...) \
- _TRACE_ARGS_COUNT2 (__VA_ARGS__, 10,9,8,7,6,5,4,3,2,1,0)
-
-#define _TRACE_ARGS_COUNT2(_ ,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9, n,...) n
+#include "preproc.h"
#ifndef HOST
#define TRACE(args...) \
- PASTE_EXPAND(TRACE_PRINT, TRACE_ARGS_COUNT(args...)) (args)
+ PREPROC_NARG_CALL(TRACE_PRINT, ## args)
#else /* HOST */
#include <stdio.h>
extern char *trace_table[];
#define TRACE(id, args...) \
do {\
fprintf (stderr, trace_table[id], ## args);\
- PASTE_EXPAND(TRACE_PRINT, TRACE_ARGS_COUNT(id, ## args...))\
- (id, ## args);\
+ PREPROC_NARG_CALL(TRACE_PRINT, id, ## args);\
} while (0)
#endif /* HOST */