Sat, 17 Nov 2012 21:28:48 +0000
ACCESS_CHECK_RD should return the right number of bits!
If the ACCESS_CHECK_RD() macro detects a page fault, it always returns a
32-bit error response ("all bus pins high"). Musashi really doesn't like it
when we pass in a 32-bit value when it expects a 16-bit one!
1 #ifndef _UTILS_H
2 #define _UTILS_H
4 #include <stdio.h>
6 #ifndef NDEBUG
7 /// Log a message to stderr
8 # define LOG(x, ...) do { fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0)
9 # define LOGS(x) do { fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); } while (0)
10 /// Log a message to stderr if 'cond' is true
11 # define LOG_IF(cond, x, ...) do { if (cond) fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0)
12 # define LOG_IFS(cond, x) do { if (cond) fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); } while (0)
13 #else
14 #define LOG(x, ...)
15 #define LOGS(x)
16 #define LOG_IF(cond, x, ...)
17 #define LOG_IFS(cond, x)
18 #endif
20 /// Get the number of elements in an array
21 #define NELEMS(x) (sizeof(x)/sizeof(x[0]))
23 #endif // _H_UTILS