Wed, 13 Mar 2013 00:43:25 +0000
[wd2010,main] WD2010 disc geometry fixes
I believe I have fixed the geometry problem with FreeBee. The geometry was set
to 17 sectors per track instead of 16, which obviously throws off addressing.
I changed it to use 16 sectors per track. However, s4diag tries to format
sector 17, so I changed the WD2010 emulation to accept any address when
formatting (since the format command doesn't actually do anything, it doesn't
matter). It is now possible to format the hard disk, initialize the file
system, and mount it. However, cpio still fails to copy the system to the hard
disk.
Author: Andrew Warkentin <andreww591 gmail com>
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