char *zerobuf (void);
int super(void);
-#define swizzle16(x) (x)
-#define swizzle32(x) (x)
+extern uint16_t swizzle16(uint32_t v);
+extern uint32_t swizzle32(uint32_t v);
+extern int swizzling;
typedef struct s_queue {
char *q_base; /* Pointer to data */
argc--;
}
if (argc != 4) {
- printf("Usage: mkfs device isize fsize\n");
+ printf("Usage: mkfs [-X] device isize fsize\n");
return -1;
}
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec" };
+int swizzling = 0;
int match(char *cmd);
void usage(void);
int dev_offset;
struct u_data udata;
+extern int swizzling;
+
int fd_open(char *name)
{
char *namecopy, *sd;
fprintf(stderr, "panic: %s\n", s);
exit(1);
}
+
+uint16_t swizzle16(uint32_t v)
+{
+ if (v & 0xFFFF0000UL) {
+ fprintf(stderr, "swizzle16 given a 32bit input\n");
+ exit(1);
+ }
+ if (swizzling)
+ return (v & 0xFF) << 8 | ((v & 0xFF00) >> 8);
+ else return v;
+}
+
+uint32_t swizzle32(uint32_t v)
+{
+ if (!swizzling)
+ return v;
+
+ return (v & 0xFF) << 24 | (v & 0xFF00) << 8 | (v & 0xFF0000) >> 8 |
+ (v & 0xFF000000) >> 24;
+}