Tue, 15 Jan 2013 17:02:56 +0000
Implement m68k_read_disassembler_* properly
The previous implementations of m68k_read_disassembler are unsuitable due to
interactions with the memory mapper. A read from memory by the DASM should not
mutate system state.
So we modify the m68k_read_disassembler_{8,16,32} functions to do the memory
mapping themselves without causing page faults (bus error exception) or
updating the page flag bits (which could really upset the kernel).
Now all we need is a debugger/disassembler...
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