src/utils.h

Mon, 14 Jan 2013 09:48:21 +0000

author
Philip Pemberton <philpem@philpem.me.uk>
date
Mon, 14 Jan 2013 09:48:21 +0000
changeset 119
101fe02456ce
parent 98
d1af20db5f02
child 143
0fa6f5a480a6
permissions
-rw-r--r--

Handle memory more gracefully

Fixed in this cset:

* Return an 'empty space' value if the memory wraps around

* Allow the 'empty bus' value to be changed via an ifdef

* Properly handle situations where expansion memory is turned off

philpem@88 1 #ifndef _UTILS_H
philpem@88 2 #define _UTILS_H
philpem@71 3
philpem@89 4 #include <stdio.h>
philpem@89 5
philpem@71 6 #ifndef NDEBUG
philpem@71 7 /// Log a message to stderr
philpem@71 8 # define LOG(x, ...) do { fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0)
philpem@98 9 # define LOGS(x) do { fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); } while (0)
philpem@71 10 /// Log a message to stderr if 'cond' is true
philpem@71 11 # define LOG_IF(cond, x, ...) do { if (cond) fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0)
philpem@98 12 # define LOG_IFS(cond, x) do { if (cond) fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); } while (0)
philpem@71 13 #else
philpem@71 14 #define LOG(x, ...)
philpem@98 15 #define LOGS(x)
philpem@71 16 #define LOG_IF(cond, x, ...)
philpem@98 17 #define LOG_IFS(cond, x)
philpem@71 18 #endif
philpem@71 19
philpem@88 20 /// Get the number of elements in an array
philpem@88 21 #define NELEMS(x) (sizeof(x)/sizeof(x[0]))
philpem@88 22
philpem@71 23 #endif // _H_UTILS